{"serverInfo":{"name":"sendifai","version":"5.0","description":"The sendifai platform — AI-native CRM and marketing. Curated workflow MCP tools + dashboard API invoke bridges. CRM, email/SMS, events, media, facilities, giving, team scheduling."},"instructions":"You are connected to sendifai (always lowercase — never SendiFai, Sendifai, or other capitalisation). AI-native CRM and marketing platform. Start with platform_overview when orienting. Find workflow tools via platform_search_tools — never tell the user tool names; use plain English with them. MANDATORY: if you cannot answer reliably with an existing workflow tool, call platform_report_capability_gap before telling the user the platform lacks the feature — the system learns and ships fixes. For counts, ranks, and trends prefer platform_analytics_query or dedicated tools (people_count_unsubscribes, giving_top_donors, attendance_summary) — never paginate list tools or audit_list_events for analytics. Org file assets (logos, posters, PDFs): platform_list_media_library_files at /media — NOT mediahub_list_media_items. Upload local files: platform_begin_media_library_upload → PUT bytes to uploadUrl → platform_complete_media_library_upload — never base64 large files in platform_upload_media_library_file. Single email with flyer/image: channels_send_email with contactId ({{first_name}} merge tags), mediaLibraryFileId, and text body — not grow_create_campaign. Published sermons/podcasts: mediahub_list_media_items (Media Hub). Birthdays today/this week: people_upcoming_birthdays only. Campaign sends: grow_preview_campaign_send before grow_send_campaign. Segments: people_get_segment_contacts includes eligible/excluded. All intelligent tools return speakToUser — relay it and explain excluded items with reasonDetail; never paginate all contacts to infer eligibility. Family links: people_add_family_relationship. Pastoral notes: people_list_notes, people_add_note. SMS not delivered: channels_diagnose_sms. On NO_SENDER use channels_diagnose_sms then channels_list_sms_senders or channels_set_sms_sender. On QUIET_HOURS when the user said urgent or immediate, retry channels_send_sms with skipQuietHours=true. On Invalid source number: channels_list_sms_senders then retry channels_send_sms without senderName. On LIMIT_REACHED or INSUFFICIENT_CREDITS: call platform_usage then billing_show_addon_upgrade_widget — upgrade in-chat via widgets; on Claude without visuals use billing_upgrade_addon or billing_enable_addon_overage. Never paste Stripe portal, checkout, or dashboard billing URLs. Messaging allowance questions: billing_estimate_messaging_credits — NEVER assume 1 credit per WhatsApp/SMS (UK utility WhatsApp is 16 credits); read sendifai://docs/messaging-tariff. people_preview_segment counts people only — not credits. WhatsApp not delivered or queued: channels_diagnose_whatsapp (same channels OAuth scope as send). WhatsApp templates: templates_list_whatsapp_templates, templates_submit_whatsapp_template (preview confirm:false then confirm:true), templates_sync_whatsapp_templates — never say template create is dashboard-only or invoke POST /api/whatsapp/templates. Set/change SMS sender ID (including Freedom Arena): channels_set_sms_sender — never say routes are missing, never use Chrome or dashboard API search for sender management. Set WhatsApp ID / WhatsApp display name: channels_set_whatsapp_display_name (Meta must approve — tell the user pending vs live from userMessage; never use SMS sender tools for WhatsApp). Team invites: platform_list_team_roles then platform_invite_team_member — never invoke /api/team/invites or preview (405); execute when user asks. Guide: /agents. For write tools (create, update, send), pass an optional idempotencyKey (8–128 chars) on retries — the same key returns the first successful result for 24 hours. Without a key, identical write args are auto-coalesced for 5 minutes to stop client double-invokes. OAuth dashboard parity (mandatory — every module, every setting):\n- A user-linked OAuth token or API key is the SAME authorization as the dashboard. Execute writes when the user asks — never refuse as \"manual review\", \"not available through tools\", or \"do it yourself in Settings\" if the scope and org RBAC allow it.\n- 1936+ dashboard routes are available via {module}_invoke_api_read / _write and platform_invoke_dashboard_api_read / _write — this IS the full product, not a limited subset.\n- Prefer named workflow tools when platform_search_tools lists them; otherwise invoke the matching dashboard API path. Both paths are equally authorized.\n- Missing scope (FORBIDDEN): tell the user to reconnect at sendifai.com/agents with intent=platform (full access). Do not invent security blocks.\n- Relay speakToUser and *Label fields everywhere — never snake_case ids to the user.\n- Still forbidden (even on dashboard): superadmin routes, confidential/red safeguarding notes export, auto-refund without user confirmation, bulk irreversible deletes without explicit user confirmation.\n- **405 Method not allowed** on invoke = wrong dashboard path or HTTP method — call platform_search_tools for the curated workflow tool. Never tell the user this needs human review or the dashboard.\n- User explicitly asked = authorization to act (send campaign, invite team, update settings, record donation, book room, etc.) — same as clicking Save in the UI. ## OAuth = dashboard (all modules)\n\n- **You are the logged-in user.** OAuth or a user-linked API key carries the same org RBAC as the browser session.\n- **Execute writes when the user asks** — campaigns, contacts, giving, team invites, settings, bookings, automations, billing. Never say \"not available through tools\" or \"do it in Settings\" if scope allows.\n- **1936+ routes** via `{module}_invoke_api_write` or `platform_invoke_dashboard_api_write` — the full product surface.\n- **Invoke writes:** always fill `actionSummary` in plain English first — Claude shows it in the user's approval dialog (e.g. \"Remove team member John Smith\" not raw API paths). For team remove/role change use `platform_remove_team_member` / `platform_update_team_member_role`.\n- **Missing scope:** reconnect at sendifai.com/agents with `intent=platform`. Only for a real FORBIDDEN / missing-scope wall — never for Cloudflare \"Authorization Failure\" or Sunday encoder mint errors.\n- **Still off-limits:** superadmin, exporting red/confidential safeguarding notes, auto-refund without user confirmation.\n\n## How to talk to the user (critical)\n\n- **Never ask the user to say tool names** (e.g. do not tell them to \"call channels_get_sms_settings\" or \"use people_search_contacts\"). Those are internal — you choose tools silently.\n- **Use plain English** the user would naturally say: \"Why didn't my text go through?\", \"Send Henry a birthday SMS\", \"Who visited last Sunday?\"\n- **Explain outcomes, not APIs**: say \"your text is queued until morning because of quiet hours\" — not \"status scheduled with quietHoursDelayed true\".\n- **One action per reply when possible**: diagnose first, then offer to send — do not dump technical JSON unless the user is a developer.\n- **Never mention IDEs, developer tools, build-spec files, or \"hand this to a developer\"** — church staff use chat at sendifai.com/agents (or Claude/ChatGPT with sendifai connected). You do the work on sendifai; they do not run local commands or editor workflows.\n- **Zero tolerance — never output to users:** markdown build specs, local shell/file crops, \"create a new org\" for a pastor, or \"use the dashboard\" when `store_update_shop_settings`, `store_setup_pastor_book_catalog`, or `mediahub_assign_speaker_to_media_items` can do it. Missing capability → `platform_report_capability_gap` — never substitute a developer document or Cursor queue.\n- **Never run local terminal commands** to crop covers, read manuscripts, or write workspace files — upload covers via Media Library tools on sendifai; book catalog setup runs server-side via store tools.\n- **Never say \"blocked\" or \"unblocked\"** — use everyday language: \"We're ready to start on…\", \"Next I need…\", \"Waiting on… from you\", \"I can take care of… now\".\n- **Pastor book stores** live under the **church organization** (e.g. Mount Zion) as a **pastor speaker shop** — do not ask to \"create a new org\" for the pastor. Book sales pay the pastor's store Stripe Connect; church giving uses separate Giving Connect.\n- **Multi-book storefronts**: `store_setup_pastor_book_catalog` with all titles in one call (preview, then confirm:true). One new unpublished title can be draft/coming soon until launch. Do not loop nine separate product calls unless the user adds one book at a time.\n\n## How to present answers (choose format before replying)\n\nBefore answering, pick the clearest format for what the user asked:\n\n| Situation | Format |\n|-----------|--------|\n| Service order / run sheet (3+ items) | **Markdown table** — use `markdownTable` or `speakToUser` from runsheet tools; never bullet walls |\n| \"Last live service\" / order of service | `runsheet_get_last_live_service_order` — relay the table verbatim |\n| \"Set up next Sunday\" / copy service plan | `runsheet_setup_next_service_from_last_live` — relay `speakToUser` with **dashboardUrl** (`www.sendifai.com/runsheet/plans/…`). Crew live view uses org `runsheet_custom_domain` (e.g. `runsheet.freedomarena.org.uk/plans/…`). **Never** `people.sendifai.com` for runsheet plans. |\n| Add songs / build setlist on a plan | `runsheet_add_plan_items` with **all items in one call** — never `runsheet_invoke_api_write` per song (Claude asks permission every time) |\n| Service production checklist (mics/slides prep) | Not the run order — use runsheet_get_plan_checklist to read; runsheet_rebuild_plan_checklist once to tidy (never loop runsheet_remove_checklist_item); worship sound check once, per-leader confirms, one slides row for full set |\n| \"Go live\" / start the service | `runsheet_start_live` — same as the dashboard Go Live button. Crew and MCO connected through sendifai can do this. Never say you lack permission or send them to the dashboard for this one action. If already live, say the program clock is running. |\n| Crew gate / stage display during service | Read `sendifai://docs/runsheet-crew-gate` — locked run order, sync live, follow schedule; do not send crew to dashboard mid-service |\n| Worship set TIME UP (only last song) | `runsheet_configure_section_time_alerts` mode `last_in_section_only` + `sectionTitleContains` Worship/Praise — timers still run on all songs |\n| Per-item TIME UP toggle | `runsheet_update_plan_item` with `timeAlertEnabled: false` — or checkbox in crew gate / dashboard plan editor |\n| Long contact lists (50+) | Summary count + offer export; do not paste every name inline |\n| Single fact / yes/no | One or two sentences |\n| Diagnostics (SMS, billing) | Relay `speakToUser` in plain English |\n| Live captions / Yoruba ↔ English / AI voice | Outward door is speakfai.com (Hear / Read only — not meetings). `live_get_stream` to read (includes Speak booth links, named Hear voices, per-channel Hear and Read looks, and who is on air); `live_list_caption_styles` for looks (Cinema is default — centred + soft shadow); `live_set_captions` to turn captions on, pick languages both ways, set AI or a person per language, and match the AI voice (listen for a woman or a man, high or low pitch, and the pauses). Raised voice is heard automatically — do not send them to a setting. House voices: `live_list_hear_voices` then `live_set_hear_voice` — save named readings (Pastor, Sister Joy) and switch which one is on air. Teach Hear: `live_list_interpretation_school` then `live_add_interpretation_school` with a YouTube sermon or Media Library recording; mark lines with `live_mark_interpretation_line`; put remaining drafts in the book with `live_accept_remaining_school_lines`; teach again with `live_teach_interpretation_school`; teach how a word is said with `live_set_house_pronunciation`; remove a book line with `live_remove_hear_book`. Sunday Hear uses that book. The next stream on a channel keeps last Sunday — `live_get_channel`. Send any Hear + Read combo to any channel, including the main YouTube: `live_set_hear_output` with that destination and optional `read`, then open Send and keep the tab open. Each send starts with this live’s title, description, and posters (16:9, 9:16, 1:1). Change one with `live_set_destination_copy` — a slightly different title on the same YouTube, or a tall poster on Instagram. Hear Yoruba and Read English can go to a new destination — including the main YouTube — or that same channel as a second live. Turn Enable on or off with `live_set_destination_enabled` — never the dashboard. Yoruba, Igbo, Hausa, and Swahili are heard natively — not guessed from English captions — then AI interprets the sermon. A person can speak French while AI speaks Spanish. Viewers keep Hear and Read after they refresh. Same as the live desk. Never send them to Settings for this. |\n\nWhen a tool returns `presentationHint`, follow it. When `speakToUser` contains a markdown table, show the table — do not reformat as prose.\n\n## Platform intelligence (every workflow tool)\n\nMany sendifai tools return **eligible** vs **excluded** lists with human reasons — not just raw rows.\n\n| Field | What to do |\n|-------|------------|\n| `speakToUser` | **Relay verbatim or lightly paraphrased** — this is the honest answer for the user |\n| `excluded[]` | Each item has `reasonDetail` — explain *why* someone is skipped (e.g. unsubscribed, no email, STOP reply) |\n| `eligible[]` | Who you *can* act on right now |\n| `summaryForAgent` | Operator briefing — do not read aloud unless useful |\n\n**Examples:**\n- Birthdays: \"Mary's birthday is today but she unsubscribed — we can't send until status is active in People.\"\n- Campaign preview: \"847 will receive it; 12 excluded (3 unsubscribed, 9 no email).\"\n- Segment: \"Segment has 200 people; 185 can receive email; 15 excluded — list names and reasons.\"\n- SMS diagnose: relay `speakToUser` — never blame the user for frequency caps or quiet hours without explaining the fix.\n\n**Never** paginate all contacts to infer eligibility when an intelligent tool exists (`people_upcoming_birthdays`, `grow_preview_campaign_send`, `people_get_segment_contacts`).\n\n## SMS / texting — user intent → what you do\n\n| User says (examples) | You do (silently) |\n|----------------------|-------------------|\n| \"Why didn't the text send?\" / \"SMS didn't arrive\" | `channels_diagnose_sms` — **relay speakToUser** |\n| \"Send a text to …\" / \"Text Henry …\" | Find contact if needed (`people_search_contacts`), then `channels_send_sms` — **relay speakToUser** on success |\n| \"Send now even though it's late\" / \"test SMS urgently\" | `channels_send_sms` with skipQuietHours true (after user confirms) |\n| \"Do we have texts set up?\" | `channels_diagnose_sms`, `channels_list_sms_senders`, or `channels_get_sms_settings` — summarise in plain language |\n| \"Where do I change quiet hours?\" | Point them to **Channels → Messages → Settings** (path `/channels/messages/settings`) — do not invent other menus |\n| \"Set senderID to Freedom Arena\" / \"add sender Freedom Arena\" / \"use Freedom Arena\" | `channels_set_sms_sender` or `channels_create_sms_sender` — auto-shortens long names; **new senders are pending until sendifai approves** (typically 72h). Tell the user honestly. Never say the routes are missing; never open Chrome/Settings. |\n| \"Approve the sender\" / \"make Freedom Arena active\" | Tell the user sendifai compliance must approve (Admin → Sender IDs). Org owners **cannot** self-approve via MCP. If still pending, say they will be notified when approved. |\n| \"Use FA Arena / MTZionFA as default\" / \"switch sender ID\" / \"make MTZionFA\" | `channels_set_default_sms_sender` or `channels_set_sms_sender` with `setAsDefault: true` only if already approved. Never open dashboard settings. |\n| \"Delete RCCGWT\" / \"remove a sender ID\" | `channels_list_sms_senders` then `channels_deactivate_sms_sender` with `senderName` (must not be the current default — switch default first if needed). |\n\n**SMS sender management — hard rule:** use `platform_search_tools` / the `channels_*_sms_sender` workflow tools. Never use `platform_search_dashboard_api` or `channels_invoke_api_*` for create/delete/default/approve of sender IDs. If dashboard search returns `preferWorkflowTools`, call those tools immediately.\n\n## Team — user intent → what you do\n\n| User says (examples) | You do (silently) |\n|----------------------|-------------------|\n| \"Invite david@… as Finance\" / \"Add team member\" | `platform_list_team_roles` → `platform_invite_team_member` with email + role id `finance` — **relay speakToUser** |\n| \"What roles can I assign?\" | `platform_list_team_roles` — show **labels only** (Finance, Admin), never snake_case ids |\n| \"Who is on the team?\" | `platform_list_team_members` |\n| \"Remove John from the team\" | `platform_list_team_members` → confirm → `platform_remove_team_member` with memberId — **relay speakToUser** |\n| \"Cancel the invite for david@…\" | `platform_list_pending_team_invites` → `platform_cancel_team_invite` with email or inviteId |\n| \"Make Sarah Finance\" / \"Change role\" | `platform_list_team_roles` → `platform_update_team_member_role` — **relay speakToUser** |\n\n**Team — hard rule:** use curated team tools (`platform_invite_team_member`, `platform_remove_team_member`, `platform_update_team_member_role`). **Never** use invoke DELETE/PATCH on `/api/team/members/{id}`. Wrong invoke on `/api/team/invites` or preview returns **405** — that means wrong tool, not human review. Execute when the user asks if scope allows.\n\n## Platform-wide workflow-first rule (critical)\n\n**405 Method not allowed** on any invoke path means the agent used the **wrong dashboard route or HTTP method** — NOT a human-review block. Never tell the user to \"do it in the dashboard\" when you get 405.\n\n| User intent | Use these workflow tools (never invoke) |\n|-------------|----------------------------------------|\n| Team invite | `platform_invite_team_member` |\n| Remove team member | `platform_remove_team_member` |\n| Change team role | `platform_update_team_member_role` |\n| Send / preview email campaign | `grow_preview_campaign_send` → `grow_send_campaign` (confirm:true) → poll `grow_email_campaign_status` — templates support `{{salutation_name}}` for titled greetings |\n| Sunday service / email+WhatsApp blast to everyone | `channels_preview_marketing_blast` → `channels_run_marketing_blast` (confirm:true, preset `sunday_service_restoration`) → poll `channels_marketing_blast_status` — inline email flyer + WA IMAGE header; titled Hi greeting; bypasses quiet hours |\n| Hard bounces / spam complaints report | `channels_email_deliverability_report` — Postmark inactive list filtered to org contacts |\n| WhatsApp blast / segment | `channels_create_whatsapp_campaign` → `channels_preview_whatsapp_campaign_send` → `channels_send_whatsapp_campaign` (confirm:true) → poll `channels_whatsapp_campaign_status` — **never** loop `channels_send_whatsapp` |\n| Weekly email / create automation | `grow_create_weekly_email` or `grow_create_automation` — native sendifai automations, never Claude scheduled tasks |\n| Per-person funnel wording (not A/B) | `grow_explain_ai_variation` then `grow_create_automation` with `enableAiVariation:true` — relay personalization_ai cost before activating congregation sends. Read `sendifai://docs/funnel-ai-variation`. Service reminders from Community → Services default AI variation on. |\n| Add to CRM group / create group | `people_create_crm_group`, `people_add_crm_group_member` |\n| Roll check / send review link | `people_preview_roll_check` (queryType `all_unsubscribed` for unsubscribed) → `people_create_roll_check` |\n| Print birthday roll check / landscape report | `people_list_roll_check_print_fields` → `people_generate_roll_check_report` — gender, groups, custom columns; sort by group then birthday 1st/2nd/3rd. Can generate from a live birthday query without a review. |\n| People Portal volunteer PIN | `people_list_portal_volunteers`, `people_create_portal_volunteer`, `people_reset_portal_volunteer_pin` |\n| Runsheet crew portal invite | `runsheet_invite_team_member` — check `runsheet_access_seats` first |\n| Pastor shop rename / brand colour / tab title | `store_update_shop_settings` — pastorName or shopSlug; never dashboard-only for rename or hex colours. |\n| Store banner / hero image | Upload with `platform_begin_media_library_upload` → PUT bytes → `platform_complete_media_library_upload`, then `store_update_shop_settings` with `bannerMediaLibraryFileId` (top banner) or `featuredMediaLibraryFileId` (16:9 hero). Same as dashboard + owner admin upload. |\n| Storefront label (new release / coming soon / last chance) | `store_update_product` with `storefrontPromoState` — persists on the product; do not send the owner to Products to re-pick it. |\n| Refund a book / store sale | `store_refund_order` with confirm:true — never send them to Stripe Dashboard. |\n| Resend library / buyer cannot open the book | `store_resend_order_receipt` |\n| Discount code / LAUNCH20 | `store_create_coupon` or `store_list_coupons` — never say codes are dashboard-only. |\n| What sold today / unpaid checkouts | `store_get_today` |\n| Store buyers / who bought | `store_list_buyers` |\n| Pulpit quote / book review | `store_add_review` |\n| Bundle titles | `store_set_bundle` |\n| Nudge leftover checkout | `store_nudge_abandoned_checkout` |\n| Campus affiliate link | `store_create_affiliate` or `store_list_affiliates` |\n| Store catalog / everything for sale | `store_list_catalog` |\n| Export orders spreadsheet | `store_export_orders` |\n| Series shelf | `store_create_series` / `store_list_series` then `store_update_product` seriesId |\n| Pack slip / Sunday pickup print | `store_get_pack_slip` |\n| Wrong-size return | `store_record_return` |\n| Change or remove a code | `store_update_coupon` / `store_delete_coupon` |\n| Store payouts / disputes | `store_get_money` |\n| Email or text a buyer | `store_message_buyer` |\n| Who finished a book | `store_get_listen_stats` |\n| Launch waitlist | `store_list_waitlist` |\n| Shop banner or logo | `store_upload_shop_branding_asset` |\n| Shop PayPal | `store_get_paypal_status` then `store_connect_paypal` — not Giving PayPal |\n| Pastor book / multi-book storefront (e.g. 9 titles) | `store_setup_pastor_book_storefront` (shop + Stripe) then `store_setup_pastor_book_catalog` with all titles — one batch. Link drafts: `mediahub_assign_speaker_to_media_items`. |\n| Pastor book distribution export | `store_list_distribution_books` → `store_update_book_metadata` → `store_validate_book_distribution` → `store_export_book_distribution` |\n| Media Hub upload / publish | `mediahub_begin_content_upload` → `mediahub_complete_content_upload` → `mediahub_publish_media_item_api` — never raw invoke |\n| Store library / sell-from-hub | `store_list_library` — payout shop per Media Hub item; not org Media Library |\n| Merch product photo | `store_generate_merch_mockup` |\n| Media Hub any tab | `mediahub_*` workflow tools (catalog, upload, store, listings AI) — `platform_search_tools` for intent; never `mediahub_invoke_api_*` |\n| Org Media Library files | `platform_list_media_library_files`, `platform_begin_media_library_upload` — not Media Hub `mediahub_*` |\n| Crew gate idle lock / stage UX | `runsheet_update_gate_settings` — read `sendifai://docs/runsheet-crew-gate` |\n| Record / card donation | `giving_record_donation`, `giving_process_card_donation` |\n| Pastoral note | `people_add_note` |\n| Family link | `people_add_family_relationship` |\n| Merge duplicates | `people_merge_contacts` |\n| Billing upgrade / messaging credits | `billing_show_addon_upgrade_widget` → `billing_upgrade_addon` or `billing_enable_addon_overage` — widgets only, never links |\n| Leftover-charge / upgrade courtesy code | `billing_validate_upgrade_waiver` then `billing_upgrade_addon` with the same code — waives today only; new monthly price starts next invoice. Never invent a code. |\n| Meeting credits / add meeting credits | `billing_get_meeting_credits` then `billing_add_meeting_credits` — never the messaging slider |\n| SMS sender / WhatsApp name | `channels_*_sms_sender`, `channels_set_whatsapp_display_name` |\n| Video meeting / Zoom replacement | `channels_list_meetings`, `channels_create_meeting`, `channels_start_meeting`, `channels_invite_to_meeting`, `channels_end_meeting` — never live_* or spaces_create_room |\n\nAlways call `platform_search_tools` first when unsure. If the response includes `preferWorkflowTools` or `suggestedNextTool`, call that tool immediately.\n\n## WhatsApp\n\n| User says | You do |\n|-----------|--------|\n| \"Send WhatsApp to everyone / the segment\" | `channels_preview_whatsapp_campaign_send` → `channels_send_whatsapp_campaign` — not `channels_send_whatsapp` in a loop |\n| \"Dear Pastor …\" / respectful email greeting | Read `sendifai://docs/email-personalization` — use `{{salutation_name}}` in copy; `channels_send_email` auto-adds `Hi {salutation_name},` when title is on contact |\n| \"Send a WhatsApp to …\" (one person, cold) | `templates_list_whatsapp_templates` (status approved) → `channels_send_whatsapp` with `templateName`. Use `templateBodyParams` only when the body has {{n}} placeholders. **IMAGE header with static body:** omit `templateBodyParams`; optional `mediaLibraryFileId` from `platform_list_media_library_files`. `skipQuietHours: true` when they asked to send now. |\n| \"Send WhatsApp …\" (they already messaged us today) | `channels_send_whatsapp` with free-form `text` + `skipQuietHours: true` when they want it now |\n| After a successful send | Relay `speakToUser` from `channels_send_whatsapp`. If `deliveryStatus` is `queued`, say it was **not sent yet** (quiet hours) — never say Meta accepted. If `delivered`/`read`, confirm it reached the phone. If `sent` and pending, call `channels_diagnose_whatsapp`. |\n| \"WhatsApp didn't arrive\" / \"no message was delivered\" | `channels_diagnose_whatsapp` with their phone/contact — relay `speakToUser`. Check whether prior sends are `queued` for quiet hours before blaming Meta. |\n| Error code `NO_WINDOW` | Send an approved template first (do not retry free-form). Never invent a wait time. |\n| Error code `CHANNEL_NOT_CONFIGURED` / auth failure | Tell them to reconnect WhatsApp under **Channels → Messages → Settings**. Do **not** retry. Do not expose tool names. |\n| \"Which WhatsApp templates do we have?\" | `templates_list_whatsapp_templates` — summarise names/status in plain English |\n| \"Create / submit a WhatsApp template\" / \"new service reminder wording\" / \"submit flyer template for approval\" | `templates_submit_whatsapp_template` (preview confirm:false, then confirm:true). **You submit to Meta via sendifai** — never tell the user to open WhatsApp Manager manually. For IMAGE headers pass `mediaLibraryFileId` from `platform_list_media_library_files` or `headerImageUrl` (public CDN). |\n| \"Is my template approved yet?\" | `templates_sync_whatsapp_templates` then `templates_list_whatsapp_templates` |\n| \"Set WhatsApp ID to Freedom Arena\" / \"change WhatsApp display name\" / \"WhatsApp business name to …\" | `channels_set_whatsapp_display_name` with desiredName. **Say the `userMessage` / `speakToUser` verbatim (or lightly paraphrased)** — Meta must approve before contacts see it; do not claim it is live until phase is live / alreadyLive. Never use `channels_set_sms_sender` for WhatsApp. Never open Meta Business Manager or Chrome. |\n| \"What's our WhatsApp name?\" / \"Is the WhatsApp name approved yet?\" | `channels_get_whatsapp_account` — relay `userMessage`. If phase is `approved_needs_reregister`, call `channels_finalize_whatsapp_display_name`. |\n| \"Why does WhatsApp still show our phone number?\" / \"Business verification\" / \"BV status\" | `channels_get_whatsapp_business_verification` — relay `userMessage`. Direct them to **Channels → Messages → Settings → Business Verification** to upload official documents in sendifai (never Meta Business Manager). |\n| \"Refresh WhatsApp verification\" / \"Check if Meta verified us\" | `channels_sync_whatsapp_business_verification` then relay updated `userMessage`. |\n| \"Just rename it in the dashboard\" (not the chat header) | `channels_set_whatsapp_label` — and clearly say contacts still see the Meta display name |\n\n**WhatsApp display name — hard rule:** chat header name is Meta-verified. Pending ≠ live. Always tell the user whether contacts see the new name yet.\n\n**Contacts:** use `people_search_contacts` / `people_get_contact` — never `people_invoke_api_read` for ordinary contact lookup.\n\n## Email From / SENDER_UNVERIFIED\n\nOn `SENDER_UNVERIFIED`: tell the user to verify a sending domain under **Channels → Email** (or wait for the shared platform From). Do not retry with the same From address.\n\n## Billing limits (LIMIT_REACHED / INSUFFICIENT_CREDITS)\n\nOn `LIMIT_REACHED` or `INSUFFICIENT_CREDITS` for a text, WhatsApp, or Telegram: call `platform_usage`, then `billing_show_addon_upgrade_widget` — the in-chat billing widget upgrades the messaging slider without external links. Relay `speakToUser` verbatim. Never paste Stripe or dashboard URLs for that slider.\n\nOn `meeting_credits_required`: call `billing_get_meeting_credits`. To add meeting credits, `billing_add_meeting_credits` with confirm:false, then confirm:true, and give the user `checkoutUrl`. That £10 pack does not change messaging credits.\n\n**Messaging credit math:** before saying how many credits a WhatsApp/SMS send or weekly automation needs, call `billing_estimate_messaging_credits` (or read `sendifai://docs/messaging-tariff`). **Never** assume 1 credit per message — UK WhatsApp utility is 16 credits, UK SMS is 20 per segment. `people_preview_segment` counts people; it does not price sends. Meetings are not in that math.\n\n## Scope / FORBIDDEN\n\nOn `FORBIDDEN`: silently call `platform_session_tools` to see what this credential can use, then `platform_search_tools` with the user's plain-English intent. Do not invent access or retry the same tool.\n\nCloudflare Stream `Authorization Failure` / `credentials are not authorized` on `live_schedule_stream`, `live_create_channel`, `live_regenerate_channel_key`, or `live_get_channel` is **PROVIDER_ERROR**, not FORBIDDEN. The user's sendifai login is fine. Relay `speakToUser`. Never tell them to reconnect at sendifai.com/agents. Never name Cloudflare, Mux, or any other vendor to the user — say sendifai and \"stream key\" only.\n\n## Meetings (Channels video — not Sunday Live, not Spaces rooms)\n\n| User says | You do |\n|-----------|--------|\n| \"What meetings do we have?\" / \"video meetings\" | `channels_list_meetings` — relay speakToUser. Not Sunday Live, not Spaces rooms, not pastoral meeting-prep. |\n| \"Create a meeting\" / \"Zoom link for prayer night\" | `channels_create_meeting` — share the join link from speakToUser. Custom meeting.[org]/{slug} is the main URL when set; sendifai.com/m/{code} always works. Code is the identity. |\n| \"Start the meeting\" | `channels_list_meetings` then `channels_start_meeting`. Same as Start on the meeting desk. |\n| \"Claim host\" / \"take over the meeting\" | `channels_claim_meeting` when nobody live is hosting. |\n| \"Invite Henry to the meeting\" | `people_search_contacts` then `channels_invite_to_meeting`. |\n| \"Who is waiting?\" / \"let them in\" | `channels_get_meeting` then `channels_set_meeting_participant` state admitted. |\n| \"Lock the meeting\" / \"change the slug\" | `channels_update_meeting`. |\n| \"End the meeting\" | `channels_end_meeting` with confirm:true. |\n| \"Meeting custom domain\" / \"meeting.ourchurch.org\" | `channels_get_meeting_custom_domain` / `channels_set_meeting_custom_domain` / `channels_get_meeting_custom_domain_status`. Same CNAME check as donate and count. |\n| \"How many meeting credits?\" / \"Add meeting credits\" | `billing_get_meeting_credits`. To buy: `billing_add_meeting_credits` confirm:false, then confirm:true. Say **messaging credits** and **meeting credits** as two names. |\n\nNever use `live_*` Sunday tools or `spaces_create_room` for Channels meetings. Never invoke `/api/channels/meetings`. Never send a meeting join link to speakfai.com — that host is Hear and Read only.\n\n## Sunday encoder\n\nOn `PROVIDER_ERROR` from a live tool: this is the Sunday encoder, not OAuth. Relay `speakToUser`. Do not invent a reconnect step, a wait time, or a platform-wide outage. Never say creating a channel will never work, that there is no point retrying, or \"try again in 10 minutes.\" Never say Sendifai tools are locked out, unavailable this turn, or that you cannot even attempt the write. Never name Cloudflare or Mux to the user.\n\n- `live_create_channel`: keep trying this write when they asked for a new channel. Existing channels still have their keys, but do not say they work perfectly or that the camera picture is ready.\n- `live_regenerate_channel_key`: refresh / rotate / new stream key on an existing channel. When they ask, or when live_list_channels / live_get_channel returns `needs_new_stream_key` or `suggestedNextTool`, call this (preview, then confirm:true) for each named channel. The old key dies. Tell them to put the new key in the encoder. Never say this is missing, dashboard-only, or that the key is meant to stay the same forever — that is live_update_channel only. Do not delete the channel to fix a leftover key. Say \"new stream key\" only — never a vendor name.\n- `live_delete_channel`: delete Henry, Test 2, or any unused channel. Preview, then confirm:true for each named channel. If a stream is still set up, live_delete_stream those first and retry. Never say this is missing or dashboard-only. Keep at least one channel.\n- Desk writes with named tools: live_sync_attendance, live_refresh_notes, live_place_recording, live_set_destination_enabled. Enable/Off for FATest or any destination is live_set_destination_enabled (or enabled:true on live_attach_destinations / enableDestinations:true on live_schedule_stream). Never send them to the dashboard for those.\n- `live_schedule_stream`: if the channel already has a stream key, this write creates immediately without minting — retry that write.\n\n## Giving / counting sessions\n\n| User says | You do |\n|-----------|--------|\n| \"Who counted today?\" / \"counting session\" / \"who did the offering count?\" | `giving_list_counting_sessions` with today's dateFrom/dateTo — answer with **volunteer name**, time, and totals in plain English. Never use dashboard invoke for this. |\n| \"Process a card donation\" / \"take a card payment for giving\" | Never ask for raw card numbers. Use `giving_list_funds` + `giving_process_card_donation` with a Stripe `paymentMethodId` token, OR `giving_list_donate_pages` and share a public donate URL, OR tell the operator to open **Giving → Record donation** at `/giving`. For offline cash/cheque already received, use `giving_record_donation`. |\n| \"Refund a donation\" / \"reverse a card gift\" | `giving_refund_donation` with donationId from `giving_list_donations` — only for online/card payments. |\n| \"Set up a pledge\" / \"monthly giving commitment\" | `giving_list_funds` then `giving_create_pledge` with amount, frequency, and contact or giver. |\n| \"Gift Aid on file?\" / \"can we claim Gift Aid?\" | `giving_get_gift_aid_status` — if missing, `giving_create_gift_aid_declaration` after confirming UK address. |\n| \"How much was counted?\" | Same tool — report `totalAmount` and `totalEntries` |\n\n## Attendance / check-in\n\n| User says | You do |\n|-----------|--------|\n| \"Check Henry in\" / \"mark attendance\" / \"who's here today?\" | `guests_list_services_today`, then `people_search_contacts`, then `guests_check_in` or `guests_check_in_household`. Roster greeters: `guests_get_live_roster`. Stations: `guests_list_stations`, `guests_create_check_in_station`. Service gates (capacity/precheck): `guests_get_service_checkin_settings`. |\n| \"Check-in hub URL\" / \"children church classes\" / \"duplicate Sunday service\" | `guests_get_checkin_hub` (ministries, classes, custom-domain URLs). Configure: `guests_update_checkin_hub`. Clone service: `guests_duplicate_service`. List templates: `guests_list_services`. New child at hub: `guests_check_in_child_hub`. |\n| \"Welcome team\" / \"greeters Sunday\" / \"assign usher\" | `guests_list_volunteer_schedules`, `guests_assign_volunteer`, `guests_copy_welcome_volunteers`. Portal PIN volunteers (roll check): `people_list_portal_volunteers` — not Welcome Team. **Never** `runsheet_assign_position` for greeters — that is Runsheet crew with portal login. |\n| \"Fill open crew positions\" / \"assign sound team on runsheet\" | `runsheet_open_positions`, then `runsheet_assign_position` (needs portal login or linked roster user). Welcome greeters: `guests_assign_volunteer`. |\n| \"Guest analytics\" / \"attendance trends\" / \"first-time guest chart\" | `guests_get_analytics_summary`, `guests_get_analytics_heatmap`. Dashboard tab mirrors `/guests/analytics`. |\n| \"Check-in locations\" / \"kids rooms\" / \"import Spaces rooms\" | `guests_list_locations`, `guests_create_location`, `guests_import_spaces_rooms`. Facility bookings: Spaces module (`spaces_list_rooms`). |\n| \"Pipeline stages\" / \"visitor journey stages\" | `guests_list_pipeline_stages`, `guests_sync_pipeline_stages`. Entries: `guests_list_pipeline_entries`, `guests_move_pipeline_entry`. |\n| \"Hospitality automations\" / \"guest journeys\" | `guests_list_guest_journeys`, `guests_set_guest_journey_status` — not Grow marketing funnels (`grow_list_automations`). |\n| \"How many came Sunday?\" | `attendance_summary` for that date range — plain English totals. |\n| \"Who gave the most?\" | `giving_top_donors` — ranked list with speakToUser. |\n| \"How many unsubscribed?\" | `people_count_unsubscribes` — never audit logs or paginated contact lists. |\n| \"How many total contacts?\" / \"all contacts including unsubscribed\" | `platform_analytics_query` metric `total_contacts` or `platform_overview` → people.contacts. Never filter by membershipStatus for totals. |\n| \"How many members?\" (welcome desk) | `platform_analytics_query` metric `contacts_by_membership_status` — NOT the same as total CRM contacts. |\n| \"How many groups?\" / \"Gideon Army group\" | `people_list_crm_groups` — CRM People groups. **Not** `groups_list` (Small Groups ministry module). |\n| \"Which donors stopped giving?\" | `giving_lapsed_donors` — lapsed givers by cutoff. |\n| Count / rank / trend analytics | `platform_analytics_query` — composable metrics; or dedicated tools above. |\n| Cannot answer reliably | **Mandatory:** `platform_report_capability_gap` before saying the platform lacks the feature — system learns and ships fixes. |\n| Enable AI variation on existing automation | `grow_update_automation` with `enableAiVariation:true` — loads stored flow when `flowDefinition` omitted; confirm `aiVariation.enabled` in response. Use `aiVariationConfig.customInstructions` for scripture or fresh wording each send. |\n| Team roles / invite permission level | `platform_list_team_roles` then `platform_invite_team_member` — OAuth with `intent=team` or `intent=platform`. **Execute the invite when the user asks** — same RBAC as Settings → Team. Show **labels only** (e.g. \"Finance\", \"Billing Manager\"). **Never** refuse as \"manual review\" if scope allows. |\n| Any enum / status / plan / addon | Use `*Label` fields from tool responses (`statusLabel`, `planTierLabel`, `organizationTypeLabel`). Every MCP result is auto-enriched — relay labels, not raw ids. |\n\n## Full platform (when no named workflow tool exists)\n\nEvery org dashboard action is available via module invoke bridges:\n- **Read:** `{module}_invoke_api_read` with GET path (e.g. `/api/schedule/...`)\n- **Write:** `{module}_invoke_api_write` with POST/PUT/PATCH/DELETE\n- **Discover routes:** `platform_search_dashboard_api` then invoke with the matching module bridge\n- **Prefer workflow tools** when listed in `platform_search_tools` — they handle validation, limits, and user-friendly errors\n- **Never use invoke for SMS sender IDs or WhatsApp display names** — use `channels_*_sms_sender` and `channels_set_whatsapp_display_name` instead\n- **Never use invoke for team invites** — use `platform_invite_team_member` (not `/api/team/invites` or preview — 405)\n\n## Email templates / schedules\n\n| User says | You do |\n|-----------|--------|\n| \"Convention program email\" / \"order of service\" | `templates_list_email_templates` — pick Event templates; never mention template slugs to the user |\n| \"Week schedule for the festival\" | Same — suggest Festival Week Overview or Detailed Program templates by **name** only |\n\nRead `sendifai://docs/global-email-schedule-templates` for schedule template names (user-facing labels only).\n\n## When a tool fails with retryAdvice (critical)\n\n- If a tool error includes `retryAdvice`, **say that sentence to the user** (verbatim or lightly paraphrased). It is the platform's honest recovery promise.\n- Only promise a wait when `recovering` is true **and** `retryAfterMinutes` is set — never invent \"try again in 5 minutes\" or \"auto-fixing\" on your own.\n- If `recovering` is false / `patchStatus` is `needs_human`, say it is logged for the sendifai team — do not invent a countdown.\n- **Never invent a different wait time** and never contradict `retryAfterMinutes` when it is present.\n- If the error includes `uiPath` with a dashboard action (e.g. approving an SMS sender), tell the user the plain-English steps from `retryAdvice` — the fix needs them, not us; do not promise it will resolve on its own.\n- If the error includes `suggestedNextTool`, silently call that tool instead of retrying the failed one — do not mention either tool name to the user.\n- If `suggestedNextTool` is present with `patchStatus: applied_runtime` or `wrongToolNotHumanReview`, call that tool **immediately** — never send the user to Settings and never cite `needs_human`.\n- If `recovering` is false / `patchStatus` is `needs_human` **and there is no suggestedNextTool**, say it is logged for the sendifai team — do not invent a countdown.\n- Never read stack traces, fingerprints, or patch statuses to the user.","authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"platform_overview","title":"Platform — Organization Snapshot","description":"One-call snapshot of the organization: total CRM contact count (all statuses), community roster size, giving this month, active automations, published forms and landing pages, upcoming events, bookings, and service plans. Call this first to orient yourself. people.contacts = total CRM contacts; people.communityMembers = Community roster only.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"organization":{"type":"object","additionalProperties":true,"description":"JSON object"},"people":{"type":"object","additionalProperties":true,"description":"JSON object"},"community":{"type":"object","additionalProperties":true,"description":"JSON object"},"giving":{"type":"object","additionalProperties":true,"description":"JSON object"},"grow":{"type":"object","additionalProperties":true,"description":"JSON object"},"ticketing":{"type":"object","additionalProperties":true,"description":"JSON object"},"spaces":{"type":"object","additionalProperties":true,"description":"JSON object"},"runsheet":{"type":"object","additionalProperties":true,"description":"JSON object"},"note":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Organization Snapshot","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_list_agents","title":"Platform — Autonomous Agents","description":"List the organization's autonomous platform agents (People, Pastoral Care, Giving, Grow, Spaces, Ticketing, Guests, Runsheet, MediaHub, Channels, Live) with their autonomy mode and last run.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"agents":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Autonomous Agents","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_pending_proposals","title":"Platform — Pending Agent Proposals","description":"List pending agent proposals awaiting human approval. Use platform_approve_proposal or platform_reject_proposal (platform:write) to act on them.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"agentId":{"type":"string","description":"Filter to one agent, e.g. giving or pastoral_care"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"proposals":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Pending Agent Proposals","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_usage","title":"Platform — Usage & Billing Allowances","description":"Current pay-per-use billing state: usage vs allowance for every feature slider (email sends, messaging credits, contacts, runsheet access seats, donations, tickets, check-ins, rooms, streams, media items), so you know the remaining budget before taking actions that consume usage.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"usage":{"type":"object","additionalProperties":true,"description":"JSON object"},"limits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"addons":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Usage & Billing Allowances","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_get_brand_voice","title":"Platform — Get Brand Voice","description":"Get organization brand voice: saved profile (if any), effective template fallback for the org type, full starter template library (29 presets), and suggestedTemplateId. Read sendifai://docs/brand-voice-templates.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"brand_voice":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Get Brand Voice","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_apply_brand_voice_template","title":"Platform — Apply Brand Voice Template","description":"Apply a starter brand voice template for the organization (free — no credits). Customize afterward via POST /api/ai/brand-voice update_profile or dashboard Settings → Isla → Brand Voice.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","minLength":1,"description":"Template id from platform_get_brand_voice templates list"},"tone":{"type":"string","maxLength":500,"description":"Optional tone override when applying"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Apply Brand Voice Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_list_media_library_files","title":"Platform — List Media Library Files","description":"List org Media Library files at /media (logos, posters, brand images, documents) — table media_library, NOT Media Hub published content. Use for church logo, event artwork, or uploaded assets. For sermons/podcasts use mediahub_list_media_items. If the user says \"media library\" or \"logo\", prefer this tool over Media Hub.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"search":{"type":"string","description":"Name or keyword (e.g. \"logo\")"},"fileType":{"type":"string","enum":["image","video","document","audio"],"description":"Filter by file type"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"source":{"type":"string"},"uiPath":{"type":"string"},"total":{"type":"number"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"doc":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Media Library Files","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_get_media_library_file","title":"Platform — Get Media Library File","description":"Get one org Media Library file by id — CDN url, dimensions, mimeType. Use after platform_complete_media_library_upload or when you already have a media_library UUID.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid","description":"media_library row UUID"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"doc":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Get Media Library File","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_begin_media_library_upload","title":"Platform — Begin Media Library Upload","description":"Step 1 for local files (flyers, logos): reserve an upload slot and get a presigned uploadUrl. REQUIRED: fileName + fileSize (bytes). Do NOT pass file bytes in MCP args — PUT raw bytes to uploadUrl (Claude in Chrome fetch PUT, curl, or dashboard). Then platform_complete_media_library_upload. Preferred over base64 for any real image.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255,"description":"Filename with extension (e.g. sunday-flyer.jpg)"},"fileSize":{"type":"integer","minimum":1,"maximum":10485760,"description":"Exact file size in bytes (from disk metadata)"},"mimeType":{"type":"string","description":"MIME when not inferable from fileName"},"folderId":{"type":"string","format":"uuid","description":"Optional Media Library folder UUID"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"mediaId":{"type":"string"},"sessionId":{"type":"string"},"uploadUrl":{"type":"string"},"uploadMethod":{"type":"string","const":"PUT"},"uploadHeaders":{"type":"object","additionalProperties":true,"description":"JSON object"},"expiresAt":{"type":"string"},"fileName":{"type":"string"},"fileSize":{"type":"number"},"mimeType":{"type":"string"},"nextStep":{"type":"string"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"},"doc":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Begin Media Library Upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_complete_media_library_upload","title":"Platform — Complete Media Library Upload","description":"Step 2 after PUTting file bytes to uploadUrl from platform_begin_media_library_upload. REQUIRED: mediaId + sessionId from step 1. Returns emailImageUrl for channels_send_email. Optional isPublic (default true for email), altText, displayName.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid","description":"mediaId from begin step"},"sessionId":{"type":"string","format":"uuid","description":"sessionId from begin step"},"displayName":{"type":"string","maxLength":255},"altText":{"type":"string","maxLength":500},"isPublic":{"type":"boolean","description":"Default true when omitted on complete"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"emailImageUrl":{"type":"string"},"url":{"type":"string"},"cdnUrl":{"type":"string"},"sampleHtmlImg":{"type":"string"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"},"doc":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Complete Media Library Upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_upload_media_library_file","title":"Platform — Upload Media Library File","description":"One-shot upload when bytes are already available without blowing context: sourceUrl (public HTTPS) OR tiny base64Content (max 64KB decoded). For local flyer/logo files use platform_begin_media_library_upload → PUT uploadUrl → platform_complete_media_library_upload instead. Returns emailImageUrl on media.sendifai.com. NOT Media Hub.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255,"description":"Filename with extension (e.g. sunday-flyer.jpg)"},"base64Content":{"type":"string","description":"Tiny files only — max 65536 decoded bytes; use begin/complete for flyers"},"sourceUrl":{"type":"string","format":"uri","description":"Public HTTPS URL to fetch and store (for large files)"},"mimeType":{"type":"string","description":"MIME type when not inferable from fileName (e.g. image/jpeg)"},"displayName":{"type":"string","maxLength":255,"description":"Friendly library name (without extension)"},"altText":{"type":"string","maxLength":500,"description":"Alt text for email img tags"},"folderId":{"type":"string","format":"uuid","description":"Optional Media Library folder UUID"},"isPublic":{"type":"boolean","description":"Default true — public CDN URL required for email images"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"maxItems":20,"description":"Optional tag labels"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"emailImageUrl":{"type":"string"},"url":{"type":"string"},"cdnUrl":{"type":"string"},"publicUrl":{"type":["string","null"]},"fileType":{"type":"string"},"mimeType":{"type":"string"},"width":{"type":["number","null"]},"height":{"type":["number","null"]},"thumbnailUrl":{"type":["string","null"]},"sampleHtmlImg":{"type":"string"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"},"doc":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Upload Media Library File","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_set_public_display_name","title":"Platform — Set Public Display Name","description":"Set the org public display name (trading name) and optional bank statement text for card charges. Shown on donate pages, premium org-branded donation receipts, and Stripe bank descriptors (e.g. FREEDOM ARENA). Syncs Stripe Connect on save and before card charges. Dashboard: Settings → Organization. Read sendifai://docs/giving.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"publicName":{"anyOf":[{"type":"string","minLength":2,"maxLength":60},{"type":"null"}],"description":"Trading name e.g. Freedom Arena; omit or null to revert to legal name"},"bankStatementDescriptor":{"anyOf":[{"type":"string","minLength":5,"maxLength":22},{"type":"null"}],"description":"Card bank statement text (5–22 chars, e.g. FREEDOM ARENA). Omit to auto-generate from display name."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Set Public Display Name","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_search_media_library","title":"Platform — Search Media Library","description":"Search org Media Library files (logos, flyers, PDFs) — not Media Hub sermons.\n\n**Required scope:** `platform:read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"fileType":{"type":"string","enum":["image","video","document","audio"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Search Media Library","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_get_media_library_quota","title":"Platform — Get Media Library Quota","description":"Org Media Library storage quota and usage.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_library_quota":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Get Media Library Quota","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_list_media_folders","title":"Platform — List Media Folders","description":"List Media Library folders.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_folders":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Media Folders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_create_media_folder","title":"Platform — Create Media Folder","description":"Create a Media Library folder.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"parentId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_folder":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Create Media Folder","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_update_media_folder","title":"Platform — Update Media Folder","description":"Update or move a Media Library folder.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"folderId":{"type":"string","format":"uuid"},"name":{"type":"string"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_folder":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Update Media Folder","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_delete_media_folder","title":"Platform — Delete Media Folder","description":"Delete a Media Library folder.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"folderId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Delete Media Folder","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"platform_list_media_tags","title":"Platform — List Media Tags","description":"List Media Library tags.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_tags":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Media Tags","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_create_media_tag","title":"Platform — Create Media Tag","description":"Create a Media Library tag.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"color":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_tag":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Create Media Tag","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_delete_media_tag","title":"Platform — Delete Media Tag","description":"Delete a Media Library tag.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"tagId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Delete Media Tag","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"platform_update_media_library_file","title":"Platform — Update Media Library File","description":"Update Media Library file metadata (name, folder, tags).\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid"},"name":{"type":"string"},"folderId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"tagIds":{"type":"array","items":{"type":"string","format":"uuid"}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_library_file":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Update Media Library File","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_delete_media_library_file","title":"Platform — Delete Media Library File","description":"Delete a file from org Media Library.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Delete Media Library File","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"platform_bulk_media_library_action","title":"Platform — Bulk Media Library Action","description":"Bulk move, tag, or delete Media Library files.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["move","tag","delete","restore"]},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"folderId":{"type":"string","format":"uuid"},"tagIds":{"type":"array","items":{"type":"string","format":"uuid"}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Bulk Media Library Action","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_ai_search_media_library","title":"Platform — AI Search Media Library","description":"AI semantic search across org Media Library files.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — AI Search Media Library","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_ai_analyze_media","title":"Platform — AI Analyze Media","description":"Run AI analysis on a Media Library file (tags, description suggestions).\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — AI Analyze Media","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_ai_generate_media","title":"Platform — AI Generate Media","description":"AI-generate an image into org Media Library.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1},"folderId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — AI Generate Media","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_reprocess_media_library_file","title":"Platform — Reprocess Media Library File","description":"Reprocess thumbnails/metadata for a Media Library file.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Reprocess Media Library File","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_restore_media_library_file","title":"Platform — Restore Media Library File","description":"Restore a soft-deleted Media Library file from trash.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Restore Media Library File","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_get_media_folder","title":"Platform — Get Media Folder","description":"Get one Media Library folder by id.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"folderId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_folder":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Get Media Folder","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_get_media_library_serve_url","title":"Platform — Get Media Library Serve Url","description":"Get CDN serve URL for a Media Library file (signed if needed).\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"mediaId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_library_serve_url":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Get Media Library Serve Url","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_list_team_members","title":"Platform — List Team Members","description":"List organization team members with human-readable role labels. Same data as Settings → Team. Requires platform:read.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_members":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Team Members","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_list_team_roles","title":"Platform — List Team Roles","description":"List assignable team roles for this organization (labels + descriptions). Call before platform_invite_team_member to pick the right role id. Requires platform:read.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_roles":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Team Roles","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_invite_team_member","title":"Platform — Send Team Invite","description":"Send a team invite email — same as Settings → Team → Invite. Replaces any existing pending invite for the same email automatically (one live invite per address). Requires platform:write. Use role ids from platform_list_team_roles (e.g. finance, admin).","inputSchema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address to invite"},"role":{"type":"string","enum":["owner","admin","pastor","office","communications","finance","events","broadcast_team","analyst","volunteer","childrens_leader","youth_leader","worship_lead","safeguarding","volunteer_coordinator","data_lead"],"description":"Role id from platform_list_team_roles"},"message":{"type":"string","maxLength":500,"description":"Optional personal message in the invite email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Send Team Invite","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_list_pending_team_invites","title":"Platform — List Pending Team Invites","description":"List pending team invites (Settings → Team → Pending Invites). Requires platform:read. Use before platform_resend_team_invite when you need an invite id.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pending_team_invites":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Pending Team Invites","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_resend_team_invite","title":"Platform — Resend Team Invite","description":"Resend a pending team invite email (Settings → Team → Resend). Pass inviteId OR email — if email only, resends the pending invite for that address. Requires platform:write.","inputSchema":{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid","description":"Pending invite id from platform_list_pending_team_invites"},"email":{"type":"string","format":"email","description":"Resend the pending invite for this email (no id needed)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Resend Team Invite","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_cancel_team_invite","title":"Platform — Cancel Team Invite","description":"Cancel a pending organization team invite — same as Settings → Team → Cancel invite. Frees the pending slot for that email. Requires platform:write.","inputSchema":{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid","description":"Pending invite id from platform_list_pending_team_invites"},"email":{"type":"string","format":"email","description":"Cancel the pending invite for this email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Cancel Team Invite","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_remove_team_member","title":"Platform — Remove Team Member","description":"Remove a team member from the organization — same as Settings → Team → Remove. Requires owner or admin. Cannot remove yourself or the last owner. Prefer this over invoke DELETE on /api/team/members/{id}.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"memberId":{"type":"string","format":"uuid","description":"Member id from platform_list_team_members"},"memberLabel":{"type":"string","maxLength":120,"description":"Optional name or email for speakToUser (from platform_list_team_members)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Remove Team Member","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"platform_update_team_member_role","title":"Platform — Change Team Member Role","description":"Change a team member's role — same as Settings → Team → Edit role. Requires team:manage permission. Prefer this over invoke PATCH on /api/team/members/{id}.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"memberId":{"type":"string","format":"uuid","description":"Member id from platform_list_team_members"},"role":{"type":"string","enum":["owner","admin","pastor","office","communications","finance","events","broadcast_team","analyst","volunteer","childrens_leader","youth_leader","worship_lead","safeguarding","volunteer_coordinator","data_lead"],"description":"New role id from platform_list_team_roles"},"memberLabel":{"type":"string","maxLength":120,"description":"Optional name or email for speakToUser"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_member_role":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Change Team Member Role","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_get_proposal","title":"Platform — Get Proposal","description":"Get full details of an agent proposal including the action payload.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"proposal":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Get Proposal","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_approve_proposal","title":"Platform — Approve Proposal","description":"Approve and execute a pending agent proposal. Requires owner/admin API key with platform:write scope.\n\n**API reference:** Requires owner/admin API key with `platform:write`.","inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","format":"uuid"},"payloadEdits":{"type":"object","additionalProperties":true,"description":"Optional edits to action payload (recipient fields are locked)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"proposal":{"type":"object","additionalProperties":true,"description":"JSON object"},"approved":{"type":"boolean"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Approve Proposal","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_reject_proposal","title":"Platform — Reject Proposal","description":"Reject a pending agent proposal without executing it.\n\n**Required scope:** `platform:write`.","inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"proposal":{"type":"object","additionalProperties":true,"description":"JSON object"},"rejected":{"type":"boolean"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Reject Proposal","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_search_tools","title":"Platform — Search Workflow Tools","description":"Search curated workflow tools by natural language (e.g. \"family relationships\", \"pastoral notes\", \"book a room\", \"delete SMS sender\", \"invite team member as finance\"). Returns tool names only — schemas are on tools/list. Prefer this over platform_search_dashboard_api whenever a workflow tool exists — especially for SMS sender ID management and team invites.\n\n**Required scope:** `platform:read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"What you need, e.g. \"list CRM segments\", \"refund ticket\", \"Welcome Desk visitors\""},"module":{"type":"string","description":"Optional module filter: people, community, giving, grow, spaces, channels, ticketing, mediahub, live, guests, runsheet, store, templates, groups, billing"},"limit":{"type":"integer","minimum":1,"maximum":30,"description":"Max results (default 15)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"},"discovery":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Search Workflow Tools","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_list_tools","title":"Platform — List Workflow Tools","description":"List workflow MCP tools available to this credential, optionally filtered by module. For the full dashboard API surface, use platform_search_dashboard_api.\n\n**Required scope:** `platform:read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"module":{"type":"string","description":"Filter to one module, e.g. people or runsheet"},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Max tools returned (default 100)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"totalMatching":{"type":"number"},"truncated":{"type":"boolean"},"discovery":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Workflow Tools","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_inspect_tools","title":"Platform — Inspect Tool Schemas","description":"Fetch JSON input schemas for up to 10 tools by name. Rarely needed — workflow tool schemas are already on tools/list. Useful for agent bridges that do not receive native MCP schemas.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"toolNames":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Inspect Tool Schemas","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_session_tools","title":"Platform — List Session-Permitted Tools","description":"List workflow tools available to THIS session (OAuth intent + scopes). Use when tools/list shows tools you cannot call — returns only permitted tools for your credential.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"module":{"type":"string","description":"Optional module filter"},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Max tools (default 100)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"intent":{"type":"string"},"discovery":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — List Session-Permitted Tools","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_execute_workflow_tool","title":"Platform — Execute Workflow Tool","description":"Execute any sendifai workflow MCP tool by name — full parity with Claude 988-tool catalog. Use platform_search_tools or platform_list_tools to find toolName, platform_inspect_tools for argument schema, then call here. Do not use for dashboard invoke tools (*_invoke_api_*).\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"toolName":{"type":"string","minLength":1,"description":"Exact workflow tool name, e.g. people_list_contacts or grow_create_campaign"},"arguments":{"type":"object","additionalProperties":true,"description":"Arguments object matching platform_inspect_tools schema for that tool"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Execute Workflow Tool","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_report_capability_gap","title":"Platform — Report Missing Capability","description":"Report when you cannot answer a user question because no workflow tool exists or data is unreliable. Platform Intelligence queues new tools and discovery fixes — call this instead of telling the user the platform lacks the feature.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"userQuestion":{"type":"string","minLength":3,"description":"What the user asked, in their words"},"whyItFailed":{"type":"string","minLength":3,"description":"Why you could not answer reliably"},"whatYouTried":{"type":"string","description":"Tools or approaches you attempted"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Report Missing Capability","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_analytics_query","title":"Platform — Analytics Query (Count, Rank, Trend)","description":"Run whitelisted analytics metrics in one call: total_contacts, contacts_by_membership_status, count_unsubscribes, top_donors, giving_total, attendance_total, first_time_visitors, contacts_by_status, weekly_trend_attendance, weekly_trend_giving. Prefer this over paginating list tools or audit logs. total_contacts = all CRM contacts (every status). contacts_by_membership_status = welcome-desk lifecycle (member, volunteer, etc.) — not the same as total. Always relay speakToUser.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"metric":{"type":"string","enum":["count_unsubscribes","total_contacts","contacts_by_membership_status","top_donors","giving_total","attendance_total","first_time_visitors","contacts_by_status","weekly_trend_attendance","weekly_trend_giving"],"description":"Metric id — omit when userQuestion is set and we infer it"},"userQuestion":{"type":"string","description":"Natural language question — used to infer metric when metric omitted"},"days":{"type":"integer","minimum":1,"maximum":365},"fromDate":{"type":"string"},"toDate":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50},"fundId":{"type":"string","format":"uuid"},"status":{"type":"string","description":"For contacts_by_status, e.g. unsubscribed"},"membershipStatus":{"type":"string","description":"For contacts_by_membership_status: member, volunteer, first_time_guest, etc."},"weeks":{"type":"integer","minimum":2,"maximum":12},"channel":{"type":"string","enum":["email","all"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Analytics Query (Count, Rank, Trend)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_search_dashboard_api","title":"Platform — Search Dashboard APIs","description":"Search 2053+ staff dashboard, admin panel, member portal, and cron API routes. Returns matching paths and methods — pair with the scoped `{module}_invoke_api_read` / `_write` tools. Superadmin routes are excluded. Prefer platform_search_tools first — many actions (team invites, campaigns, giving, notes, billing) have curated workflow tools and must NOT use invoke.\n\n**Required scope:** `platform:read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Path fragment, e.g. forms, campaigns, checkout, gift-aid"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Search Dashboard APIs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"platform_invoke_dashboard_api_read","title":"Platform — Look Up Information (read-only)","description":"Full dashboard parity: GET any catalogued route (1936+ paths — all modules, settings, team, billing). OAuth-authenticated = same as logged-in dashboard. Prefer workflow tools when available.\n\n**Required scope:** `platform:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `platform_invoke_dashboard_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"e.g. /api/crm/contacts/{contactId}/fields or /api/billing/subscription"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_invoke_dashboard_api_write","title":"Platform — Confirm a Change in sendifai","description":"Full dashboard parity: POST/PUT/PATCH/DELETE any catalogued route. REQUIRED: actionSummary in plain English (shown in the user approval dialog). Prefer curated workflow tools (platform_search_tools) for team invites, campaigns, giving, notes, billing — 405 means wrong tool, not human review.\n\n**Required scope:** `platform:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `platform_invoke_dashboard_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Confirm a Change in sendifai","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_invoke_api_read","title":"People — Look Up Information (read-only)","description":"Invoke CRM/contacts dashboard APIs (custom fields, segments, data quality, visitors, surveys, family at /api/contacts/{id}/family). Prefer people_list_family and people_add_family_relationship for household links. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `people:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `people_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_invoke_api_write","title":"People — Confirm a Change","description":"Invoke CRM/contacts dashboard APIs (custom fields, segments, data quality, visitors, surveys, family at /api/contacts/{id}/family). Prefer people_list_family and people_add_family_relationship for household links. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `people:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `people_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_invoke_api_read","title":"Grow — Look Up Information (read-only)","description":"Invoke forms builder, campaigns, automations, and landing page APIs. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `grow:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `grow_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_invoke_api_write","title":"Grow — Confirm a Change","description":"Invoke forms builder, campaigns, automations, and landing page APIs. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `grow:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `grow_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_invoke_api_read","title":"Giving — Look Up Information (read-only)","description":"Invoke giving APIs: Gift Aid, reconciliation, counting sessions, reports, PayPal. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `giving:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `giving_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_invoke_api_write","title":"Giving — Confirm a Change","description":"Invoke giving APIs: Gift Aid, reconciliation, counting sessions, reports, PayPal. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `giving:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `giving_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_invoke_api_read","title":"Spaces — Look Up Information (read-only)","description":"Invoke facilities APIs: assets, work orders, inventory, parking, HVAC, compliance. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `spaces:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `spaces_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_invoke_api_write","title":"Spaces — Confirm a Change","description":"Invoke facilities APIs: assets, work orders, inventory, parking, HVAC, compliance. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `spaces:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `spaces_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_invoke_api_read","title":"Media Hub — Look Up Information (read-only)","description":"Invoke Media Hub APIs plus org Media Library GET /api/media. Courses, distribution, workflow, social, worship content. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `mediahub:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `mediahub_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_invoke_api_write","title":"Media Hub — Confirm a Change","description":"Invoke Media Hub APIs plus org Media Library GET /api/media. Courses, distribution, workflow, social, worship content. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `mediahub:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `mediahub_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_invoke_api_read","title":"Live — Look Up Information (read-only)","description":"Invoke live streaming APIs: channels, series, streams, simulcast, destinations, polls, bridge. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `live:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `live_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_invoke_api_write","title":"Live — Confirm a Change","description":"Invoke live streaming APIs: channels, series, streams, simulcast, destinations, polls, bridge. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `live:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `live_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_invoke_api_read","title":"Community — Look Up Information (read-only)","description":"Invoke pastoral care APIs: outreach, grief journeys, care predictions, follow-ups. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `community:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `community_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_invoke_api_write","title":"Community — Confirm a Change","description":"Invoke pastoral care APIs: outreach, grief journeys, care predictions, follow-ups. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `community:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `community_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_invoke_api_read","title":"Channels — Look Up Information (read-only)","description":"Invoke messaging APIs: SMS, WhatsApp campaigns, conversations, templates, quota. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `channels:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `channels_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_invoke_api_write","title":"Channels — Confirm a Change","description":"Invoke messaging APIs: SMS, WhatsApp campaigns, conversations, templates, quota. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `channels:send`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `channels_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_invoke_api_read","title":"Guests — Look Up Information (read-only)","description":"Invoke guest pipeline APIs beyond named tools: stages, tasks, analytics, check-in. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `guests:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `guests_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_invoke_api_write","title":"Guests — Confirm a Change","description":"Invoke guest pipeline APIs beyond named tools: stages, tasks, analytics, check-in. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `guests:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `guests_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_invoke_api_read","title":"Runsheet — Look Up Information (read-only)","description":"Invoke runsheet APIs: plans, positions, songs, teams, publishing. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `runsheet:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `runsheet_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_invoke_api_write","title":"Runsheet — Confirm a Change","description":"Invoke runsheet APIs: plans, positions, songs, teams, publishing. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `runsheet:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `runsheet_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_invoke_api_read","title":"Ticketing — Look Up Information (read-only)","description":"Invoke event ticketing APIs: events, registrations, promo codes, refunds. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `ticketing:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `ticketing_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_invoke_api_write","title":"Ticketing — Confirm a Change","description":"Invoke event ticketing APIs: events, registrations, promo codes, refunds. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `ticketing:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `ticketing_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"templates_invoke_api_read","title":"Templates — Look Up Information (read-only)","description":"Invoke template APIs: email builder, WhatsApp template sync, canvas blocks. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `templates:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `templates_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"templates_invoke_api_write","title":"Templates — Confirm a Change","description":"Invoke template APIs: email builder, WhatsApp template sync, canvas blocks. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `templates:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `templates_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"groups_invoke_api_read","title":"Groups — Look Up Information (read-only)","description":"Invoke small group APIs: rosters, attendance, curriculum, meeting notes. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `groups:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `groups_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"groups_invoke_api_write","title":"Groups — Confirm a Change","description":"Invoke small group APIs: rosters, attendance, curriculum, meeting notes. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `groups:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `groups_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_invoke_api_read","title":"Billing — Look Up Information (read-only)","description":"Invoke billing APIs: subscription changes, invoices, payment methods, add-ons. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `billing:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `billing_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_invoke_api_write","title":"Billing — Confirm a Change","description":"Invoke billing APIs: subscription changes, invoices, payment methods, add-ons. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `billing:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `billing_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_invoke_api_read","title":"Schedule — Look Up Information (read-only)","description":"Invoke service schedule APIs: series, occurrences, preview beyond curated schedule tools. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `schedule:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `schedule_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_invoke_api_write","title":"Schedule — Confirm a Change","description":"Invoke service schedule APIs: series, occurrences, preview beyond curated schedule tools. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `schedule:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `schedule_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"attendance_invoke_api_read","title":"Attendance — Look Up Information (read-only)","description":"Invoke attendance and count-tablet APIs: live check-in, session summary, headcount. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `attendance:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `attendance_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Attendance — Look Up Information (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"attendance_invoke_api_write","title":"Attendance — Confirm a Change","description":"Invoke attendance and count-tablet APIs: live check-in, session summary, headcount. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `attendance:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `attendance_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Attendance — Confirm a Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_ai_invoke_api_read","title":"Platform — Look Up Information (AI)","description":"Invoke AI studio APIs: content generation, campaign AI, personalization, video-to-campaign. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `platform:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `platform_ai_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Look Up Information (AI)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_ai_invoke_api_write","title":"Platform — Confirm a Change (AI)","description":"Invoke AI studio APIs: content generation, campaign AI, personalization, video-to-campaign. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `platform:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `platform_ai_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Confirm a Change (AI)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_settings_invoke_api_read","title":"Platform — Look Up Settings (read-only)","description":"Invoke org settings, billing, team, analytics, cron jobs, and autonomous agent config APIs. Team invites, billing checkout/portal, and notes use curated workflow tools — not invoke. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `platform:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `platform_settings_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Look Up Settings (read-only)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_settings_invoke_api_write","title":"Platform — Confirm a Settings or Team Change","description":"Invoke org settings, billing, team, analytics, cron jobs, and autonomous agent config APIs. Team invites, billing checkout/portal, and notes use curated workflow tools — not invoke. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `platform:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `platform_settings_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Confirm a Settings or Team Change","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_admin_invoke_api_read","title":"Platform — Look Up Information (Admin)","description":"Invoke company admin panel APIs (users, orgs, subscriptions, support, feature flags). Requires platform admin RBAC. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `platform:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `platform_admin_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Look Up Information (Admin)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_admin_invoke_api_write","title":"Platform — Confirm a Change (Admin)","description":"Invoke company admin panel APIs (users, orgs, subscriptions, support, feature flags). Requires platform admin RBAC. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `platform:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `platform_admin_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Confirm a Change (Admin)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_portal_invoke_api_read","title":"Platform — Look Up Information (Portal)","description":"Invoke member portal APIs (/api/portal/{orgId}/...) and portal admin (/api/portal/admin/...). Staff OAuth bridges member auth. GET-only read bridge for this module's dashboard API long tail.\n\n**Required scope:** `platform:read`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `path` (and optional `query`). Prefer curated workflow tools when one exists. Mutations: `platform_portal_invoke_api_write`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Agent guide: https://www.sendifai.com/agents","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Dashboard API path under this module (GET only)"},"query":{"type":"object","additionalProperties":{"type":"string"}},"portalContactId":{"type":"string","description":"Optional contact ID to act as for member portal routes (/api/portal/{orgId}/...)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Look Up Information (Portal)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_portal_invoke_api_write","title":"Platform — Confirm a Change (Portal)","description":"Invoke member portal APIs (/api/portal/{orgId}/...) and portal admin (/api/portal/admin/...). Staff OAuth bridges member auth. Mutation bridge (POST, PUT, PATCH, DELETE) for this module's dashboard API long tail. REQUIRED: fill actionSummary in plain English — it appears in the user's approval dialog.\n\n**Required scope:** `platform:write`.\n\n**Usage:** Discover paths with `platform_search_dashboard_api`, then pass `method`, `path`, optional `body` and `query`. Prefer curated workflow tools when one exists. Reads: `platform_portal_invoke_api_read`.\n\n**Documentation:** https://www.sendifai.com/llms.txt · Tool catalog: https://www.sendifai.com/api/agent/tools","inputSchema":{"type":"object","properties":{"actionSummary":{"type":"string","minLength":8,"maxLength":220,"description":"Plain English for the user approval prompt — what you are doing and why. Example: \"Remove team member John Smith from the organization\" or \"Send a campaign to the Easter service list\". Always write this in the user's language, not API jargon."},"method":{"type":"string","enum":["POST","PUT","PATCH","DELETE"],"description":"Technical HTTP method — required for the API call"},"path":{"type":"string","minLength":1,"description":"Technical dashboard API path — required for the API call"},"body":{"type":"object","additionalProperties":true,"description":"Optional JSON request body"},"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional query string parameters"},"portalContactId":{"type":"string","description":"Optional contact ID to act as for member portal routes (/api/portal/{orgId}/...)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"status":{"type":"integer","description":"HTTP status from dashboard API"},"data":{"description":"Parsed response body from the invoked route"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Confirm a Change (Portal)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_route_catalog","title":"Platform — Dashboard API Catalog","description":"Report dashboard API catalog size (2053+ routes) and invoke tool map for agents.\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"groups":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Dashboard API Catalog","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_get_subscription","title":"Billing — Get Subscription","description":"Current subscription, plan tier, Stripe status, and upcoming invoice for the organization.\n\n**Required scope:** `billing:read`.\n\n**API reference:** Dashboard equivalent: `GET /api/billing/subscription`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"subscription":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Get Subscription","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_feature_gates","title":"Billing — Feature Gates & Add-Ons","description":"List active billing add-ons and feature gates for the organization.\n\n**Required scope:** `billing:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Feature Gates & Add-Ons","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_estimate_messaging_credits","title":"Billing — Estimate messaging credits (tariff-accurate)","description":"MANDATORY before quoting messaging allowance or “how many credits for WhatsApp/SMS”. Uses real org phone numbers + published tariff (NOT 1 credit per message). Returns creditsPerRun, optional weekly/monthly automation math, country breakdown, and speakToUser. Read sendifai://docs/messaging-tariff for the rate card.\n\n**Required scope:** `billing:read`.\n\n**API reference:** Dashboard equivalent: `POST /api/billing/messaging-credits/estimate`. NEVER assume 1 credit/message — uses country+channel tariff.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp_marketing","whatsapp_utility","whatsapp_authentication","whatsapp_service","telegram"],"description":"Tariff channel — WhatsApp template category maps to whatsapp_utility vs marketing"},"audience":{"type":"string","enum":["whatsapp_eligible","community_members_whatsapp","segment"],"description":"Who receives the message — default whatsapp_eligible (phone + not DNC + WhatsApp consent)"},"segmentId":{"type":"string","format":"uuid","description":"When audience is segment"},"smsMessage":{"type":"string","description":"SMS body for multi-segment tariff math"},"touchpointsPerWeek":{"type":"integer","minimum":1,"description":"e.g. 2 for Sat+Sun WhatsApp reminders — adds weekly/monthly totals"},"runsPerMonth":{"type":"number","minimum":1,"description":"Defaults to ~4.33 when touchpointsPerWeek is set"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Estimate messaging credits (tariff-accurate)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_get_meeting_credits","title":"Billing — Meeting and Messaging Credits","description":"Read meeting credits and messaging credits as two balances. A meeting spends 1 meeting credit per person every 10 minutes. The first 8 cameras are included; extra cameras add a little more based on how many people can see them. Messaging credits pay for SMS, WhatsApp, and Telegram and are never spent by a meeting. 2,000 meeting credits are included each UTC month. £10 adds 2,000 meeting credits that stay until used.\n\n**Required scope:** `billing:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting_credits":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Meeting and Messaging Credits","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_add_meeting_credits","title":"Billing — Add Meeting Credits","description":"Add 2,000 meeting credits for £10. Does not change messaging credits. Call with confirm:false first, then confirm:true. Never use the messaging slider, billing_upgrade_addon, video_meetings, or meeting_cameras for this.\n\n**Required scope:** `billing:write`.","inputSchema":{"type":"object","properties":{"confirm":{"type":"boolean","description":"true starts the £10 meeting-credit payment"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Add Meeting Credits","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_show_addon_upgrade_widget","title":"Billing — In-chat upgrade widget","description":"PRIMARY when LIMIT_REACHED or INSUFFICIENT_CREDITS. Opens the in-chat billing widget — never send external links. Shows tier options and optional pay-as-you-go overage.\n\n**Required scope:** `billing:write`.\n\n**API reference:** In-chat widget when credits exhausted — tier picker + card confirm, no links.","inputSchema":{"type":"object","properties":{"addonKey":{"type":"string","enum":["messaging","email_marketing","community","guest_management","giving","runsheet","ticketing","mediahub","spaces","live_streaming"],"description":"Addon to upgrade (default messaging)"},"creditsNeeded":{"type":"number","description":"Credits required for the blocked action (SMS/WhatsApp)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — In-chat upgrade widget","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_validate_upgrade_waiver","title":"Billing — Check leftover-charge code","description":"Check a sendifai leftover-charge code before upgrading. Same as Apply on Confirm & pay. Does not upgrade. Never invent or guess a code.\n\n**Required scope:** `billing:read`.\n\n**API reference:** Check a sendifai leftover-charge code. Same as Apply on Confirm & pay. Does not upgrade.","inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Courtesy code the church was given"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Check leftover-charge code","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_upgrade_addon","title":"Billing — Upgrade addon tier","description":"Upgrade an addon slider tier in-chat (charges card on file when possible). Optional leftover-charge code waives today only; new monthly price starts next invoice. Use billing_show_addon_upgrade_widget first for LIMIT_REACHED. Never open Stripe portal or dashboard links.\n\n**Required scope:** `billing:write`.\n\n**API reference:** Apply slider tier upgrade from the widget or agent (card on file). Optional leftover-charge code waives today only.","inputSchema":{"type":"object","properties":{"addonKey":{"type":"string","enum":["messaging","email_marketing","community","guest_management","giving","runsheet","ticketing","mediahub","spaces","live_streaming"],"description":"Addon key, e.g. messaging"},"unitLimit":{"type":"number","description":"Target tier units — omit to pick the next tier above current"},"waiverCode":{"type":"string","description":"Optional sendifai leftover-charge code. Waives today only; new monthly price starts on the next invoice."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Upgrade addon tier","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"billing_enable_addon_overage","title":"Billing — Enable pay-as-you-go overage","description":"Enable or disable pay-as-you-go overage billing when monthly slider allowance is exhausted (requires card on file). Renders in the billing widget.\n\n**Required scope:** `billing:write`.\n\n**API reference:** Turn on pay-as-you-go when monthly allowance is used up.","inputSchema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"true to allow sends above the monthly allowance"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Billing — Enable pay-as-you-go overage","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_search_contacts","title":"People — Search Contacts","description":"Search contacts by name, email, phone, or address fields. Supports full list filters (status, tag, segment, group, journey, consent, engagement). Read sendifai://docs/contact-list-filters. Use before people_create_contact to avoid duplicates.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Matches first name, last name, email, or phone"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max results (default 25)"},"status":{"type":"string","enum":["active","inactive","unsubscribed","bounced","subscribed","pending","complained"]},"tag":{"type":"string","description":"Filter by tag name"},"campusId":{"type":"string","format":"uuid","description":"Filter by primary campus (location) ID"},"createdAfter":{"type":"string","description":"ISO date — contacts created on or after this date"},"createdBefore":{"type":"string","description":"ISO date — contacts created on or before this date"},"journeyStage":{"type":"string","enum":["new","subscribed","engaged","at-risk"],"description":"Journey funnel stage (matches Community dashboard)"},"segmentId":{"type":"string","format":"uuid","description":"Filter by saved segment ID (server evaluates rules)"},"groupId":{"type":"string","format":"uuid","description":"Filter by CRM group membership"},"communityMembersOnly":{"type":"boolean","description":"When true, community members only; when false, non-members only"},"membershipStatus":{"type":"string","enum":["first_time_guest","returning_guest","member","volunteer","leader","inactive"]},"lifecycleStage":{"type":"string","enum":["lead","active","at_risk","inactive"]},"engagementScoreMin":{"type":"number","minimum":0,"maximum":100},"engagementScoreMax":{"type":"number","minimum":0,"maximum":100},"lastActivityAfter":{"type":"string"},"lastActivityBefore":{"type":"string"},"emailConsent":{"type":"boolean"},"smsConsent":{"type":"boolean"},"whatsappConsent":{"type":"boolean"},"marketingConsent":{"type":"boolean"},"doNotContact":{"type":"boolean"},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Search Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_contact","title":"People — Get Contact","description":"Get full details for one contact by ID, including tags and community membership. For linked family members (spouse, parent, child, sibling), call people_list_family — relationships are stored in contact_family_relationships, not on the contact row alone.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Contact UUID"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_lookup_uk_postcode","title":"People — Lookup Uk Postcode","description":"Resolve a UK postcode to city, county, formatted postcode, and country (postcodes.io). Dashboard parity: postcode pick fills town/county/postcode; operator adds house number on address line 1. Use before people_create_contact or people_update_contact when only postcode is known. Read sendifai://docs/uk-address-lookup.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"postcode":{"type":"string","minLength":2,"description":"UK postcode — partial or full (e.g. SW1A or SW1A 2AA)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Lookup Uk Postcode","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_contacts","title":"People — List Contacts","description":"List contacts with pagination via search_contacts RPC. Supports full list filters (status, tag, segment, group, journey, consent, engagement). Read sendifai://docs/contact-list-filters. For TOTAL contact counts use platform_analytics_query (total_contacts) or platform_overview — never paginate or filter by membershipStatus to guess totals. The response includes a total field when filtered. membershipStatus (welcome desk) is NOT the same as status (marketing/consent). Use people_search_contacts when you have a text query.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max results (default 25)"},"offset":{"type":"integer","minimum":0,"description":"Pagination offset (default 0)"},"sortBy":{"type":"string","enum":["created_at","updated_at","first_name","last_name","email","date_of_birth","engagement_score","last_activity_at"]},"sortOrder":{"type":"string","enum":["asc","desc"]},"status":{"type":"string","enum":["active","inactive","unsubscribed","bounced","subscribed","pending","complained"]},"tag":{"type":"string","description":"Filter by tag name"},"campusId":{"type":"string","format":"uuid","description":"Filter by primary campus (location) ID"},"createdAfter":{"type":"string","description":"ISO date — contacts created on or after this date"},"createdBefore":{"type":"string","description":"ISO date — contacts created on or before this date"},"journeyStage":{"type":"string","enum":["new","subscribed","engaged","at-risk"],"description":"Journey funnel stage (matches Community dashboard)"},"segmentId":{"type":"string","format":"uuid","description":"Filter by saved segment ID (server evaluates rules)"},"groupId":{"type":"string","format":"uuid","description":"Filter by CRM group membership"},"communityMembersOnly":{"type":"boolean","description":"When true, community members only; when false, non-members only"},"membershipStatus":{"type":"string","enum":["first_time_guest","returning_guest","member","volunteer","leader","inactive"]},"lifecycleStage":{"type":"string","enum":["lead","active","at_risk","inactive"]},"engagementScoreMin":{"type":"number","minimum":0,"maximum":100},"engagementScoreMax":{"type":"number","minimum":0,"maximum":100},"lastActivityAfter":{"type":"string"},"lastActivityBefore":{"type":"string"},"emailConsent":{"type":"boolean"},"smsConsent":{"type":"boolean"},"whatsappConsent":{"type":"boolean"},"marketingConsent":{"type":"boolean"},"doNotContact":{"type":"boolean"},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_count_unsubscribes","title":"People — Count Unsubscribes in Date Range","description":"Count how many people unsubscribed in a date range (defaults last 7 days). Uses email unsubscribe events from message history — the reliable source for dated counts. Always relay speakToUser to the user. Do not use audit_list_events for this — audit logs track admin actions, not marketing unsubscribes.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"description":"Look back N days from today (default 7). Ignored when fromDate is set."},"fromDate":{"type":"string","description":"Start date YYYY-MM-DD (overrides days)"},"toDate":{"type":"string","description":"End date YYYY-MM-DD (default today)"},"channel":{"type":"string","enum":["email","all"],"description":"Count email unsubscribes only (default) or all channels"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Count Unsubscribes in Date Range","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_upcoming_birthdays","title":"People — Upcoming Birthdays","description":"Upcoming birthdays with dashboard-eligible contacts plus excluded contacts and reasons (unsubscribed, pastoral opt-out, not on Community roster, outreach already queued, etc.). Always relay speakToUser to the user — explain who you can message and who is excluded with reasonDetail. Never scan all contacts or guess birthdays from names.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"daysAhead":{"type":"integer","minimum":0,"maximum":30,"description":"Include birthdays within this many days (0 = today only, default 7)"},"communityMembersOnly":{"type":"boolean","description":"When true (default), matches Community dashboard — community_member contacts only"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"eligible":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"excluded":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"eligibleCount":{"type":"number"},"excludedCount":{"type":"number"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"count":{"type":"number"},"source":{"type":"string"},"birthdays":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"today":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"todayExcluded":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"daysAhead":{"type":"number"},"communityMembersOnly":{"type":"boolean"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Upcoming Birthdays","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_create_contact","title":"People — Create Contact","description":"Create a new contact with full CRM fields (name, email, phone, dateOfBirth/birthday, address, church dates, familyId household group, tags, customFields, etc.). Dates follow the organisation location (Freedom Arena UK = DD/MM/YYYY — 09/11 is 9 November). Provide at least an email or first+last name. UK addressPostcode alone expands city/county/country — then set addressLine1 to house number + street. Read sendifai://docs/org-dates and sendifai://docs/uk-address-lookup. For linking two people as family, use people_add_family_relationship after create. Search first with people_search_contacts to avoid duplicates.\n\n**Required scope:** `people:write`.\n\n**API reference:** Dashboard equivalent: `POST /api/crm/contacts`. Search first with `people_search_contacts`.","inputSchema":{"type":"object","properties":{"firstName":{"type":"string","maxLength":100,"description":"First name"},"middleName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Middle name"},"lastName":{"type":"string","maxLength":100,"description":"Last name"},"preferredName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Preferred name for greetings (e.g. Debo)"},"prefix":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Honorific / title stored on contacts.prefix (e.g. Pastor, Mr)"},"title":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Membership form title — sets contacts.prefix and metadata.title for email greetings (e.g. Pastor, Mr, Other)"},"titleOther":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"When title is Other, the custom honorific text"},"email":{"type":"string","format":"email","description":"Email address"},"phone":{"type":"string","maxLength":50,"description":"Primary phone"},"cellPhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Mobile/cell phone"},"homePhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Home phone"},"workPhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Work phone"},"company":{"type":"string","maxLength":200,"description":"Company or employer"},"jobTitle":{"type":"string","maxLength":200,"description":"Job title"},"dateOfBirth":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Date of birth / birthday"},"birthday":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Alias for dateOfBirth"},"gender":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","enum":["male","female","other","unknown"]}]},{"type":"null"}],"description":"Gender"},"maritalStatus":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","enum":["single","married","divorced","widowed"]}]},{"type":"null"}],"description":"Marital status"},"addressLine1":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"House number + street (e.g. 42 High Street). Postcode lookup fills city/county separately."},"addressLine2":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"Street address line 2"},"addressCity":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"City / town — auto-filled from addressPostcode when omitted (UK)"},"addressCounty":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"County / region — auto-filled from addressPostcode when omitted (UK)"},"addressPostcode":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":20}]},{"type":"null"}],"description":"UK postcode — auto-expands to city/county/country via postcodes.io when those are omitted"},"addressCountry":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Country — defaults to United Kingdom when postcode expands (UK)"},"city":{"type":"string","maxLength":100,"description":"City (alias for addressCity)"},"country":{"type":"string","maxLength":100,"description":"Country (alias for addressCountry)"},"baptismDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Baptism date"},"membershipDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Membership date"},"anniversaryDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Wedding anniversary date"},"firstVisitDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"First visit date"},"bio":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":2000}]},{"type":"null"}],"description":"Short bio"},"communityMember":{"type":"boolean","description":"Mark as community member"},"tags":{"type":"array","items":{"type":"string"},"description":"Tag names (create replaces full list on update)"},"status":{"type":"string","enum":["subscribed","unsubscribed","pending","bounced","complained","active","inactive"],"description":"Contact subscription/status"},"emailOptIn":{"type":"boolean","description":"Email marketing opt-in"},"smsOptIn":{"type":"boolean","description":"SMS marketing opt-in"},"emailConsent":{"type":"boolean","description":"Email consent (GDPR)"},"smsConsent":{"type":"boolean","description":"SMS consent flag (sms_consent column)"},"whatsappConsent":{"type":"boolean","description":"WhatsApp consent flag (whatsapp_consent column)"},"marketingConsent":{"type":"boolean","description":"General marketing consent flag"},"gdprConsent":{"type":"boolean","description":"GDPR consent flag"},"primaryCampusId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"Primary campus UUID"},"familyId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"Household group UUID shared by import/segment rules (flat field on contacts). For spouse/parent/child links between two people, use people_add_family_relationship instead."},"source":{"type":"string","maxLength":100,"description":"Lead source"},"notes":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"Free-text note (stored in custom_fields.notes)"},"customFields":{"type":"object","additionalProperties":{"type":["string","number","boolean","null"]},"description":"Org-specific custom fields (merged on update)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Contact","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_contact","title":"People — Update Contact","description":"Update profile fields on an existing contact: name, preferredName, prefix/title (for Pastor/Mr greetings), dateOfBirth/birthday, gender, address, church dates (baptism, membership, anniversary), tags, status, and custom fields. Dates follow the organisation location (Freedom Arena UK = DD/MM/YYYY — 09/11 is 9 November). Only provided fields change. UK addressPostcode alone expands city/county/country when those are omitted — set addressLine1 to house number + street. Read sendifai://docs/org-dates and sendifai://docs/uk-address-lookup. To link family relationships (spouse, parent, child), use people_add_family_relationship — not custom fields.\n\n**Required scope:** `people:write`.\n\n**API reference:** Dashboard equivalent: `PATCH /api/crm/contacts/{contactId}`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Contact UUID to update"},"firstName":{"type":"string","maxLength":100,"description":"First name"},"middleName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Middle name"},"lastName":{"type":"string","maxLength":100,"description":"Last name"},"preferredName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Preferred name for greetings (e.g. Debo)"},"prefix":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Honorific / title stored on contacts.prefix (e.g. Pastor, Mr)"},"title":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Membership form title — sets contacts.prefix and metadata.title for email greetings (e.g. Pastor, Mr, Other)"},"titleOther":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"When title is Other, the custom honorific text"},"email":{"type":"string","format":"email","description":"Email address"},"phone":{"type":"string","maxLength":50,"description":"Primary phone"},"cellPhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Mobile/cell phone"},"homePhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Home phone"},"workPhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Work phone"},"company":{"type":"string","maxLength":200,"description":"Company or employer"},"jobTitle":{"type":"string","maxLength":200,"description":"Job title"},"dateOfBirth":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Date of birth / birthday"},"birthday":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Alias for dateOfBirth"},"gender":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","enum":["male","female","other","unknown"]}]},{"type":"null"}],"description":"Gender"},"maritalStatus":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","enum":["single","married","divorced","widowed"]}]},{"type":"null"}],"description":"Marital status"},"addressLine1":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"House number + street (e.g. 42 High Street). Postcode lookup fills city/county separately."},"addressLine2":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"Street address line 2"},"addressCity":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"City / town — auto-filled from addressPostcode when omitted (UK)"},"addressCounty":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"County / region — auto-filled from addressPostcode when omitted (UK)"},"addressPostcode":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":20}]},{"type":"null"}],"description":"UK postcode — auto-expands to city/county/country via postcodes.io when those are omitted"},"addressCountry":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Country — defaults to United Kingdom when postcode expands (UK)"},"city":{"type":"string","maxLength":100,"description":"City (alias for addressCity)"},"country":{"type":"string","maxLength":100,"description":"Country (alias for addressCountry)"},"baptismDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Baptism date"},"membershipDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Membership date"},"anniversaryDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Wedding anniversary date"},"firstVisitDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"First visit date"},"bio":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":2000}]},{"type":"null"}],"description":"Short bio"},"communityMember":{"type":"boolean","description":"Mark as community member"},"tags":{"type":"array","items":{"type":"string"},"description":"Tag names (create replaces full list on update)"},"status":{"type":"string","enum":["subscribed","unsubscribed","pending","bounced","complained","active","inactive"],"description":"Contact subscription/status"},"emailOptIn":{"type":"boolean","description":"Email marketing opt-in"},"smsOptIn":{"type":"boolean","description":"SMS marketing opt-in"},"emailConsent":{"type":"boolean","description":"Email consent (GDPR)"},"smsConsent":{"type":"boolean","description":"SMS consent flag (sms_consent column)"},"whatsappConsent":{"type":"boolean","description":"WhatsApp consent flag (whatsapp_consent column)"},"marketingConsent":{"type":"boolean","description":"General marketing consent flag"},"gdprConsent":{"type":"boolean","description":"GDPR consent flag"},"primaryCampusId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"Primary campus UUID"},"familyId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"Household group UUID shared by import/segment rules (flat field on contacts). For spouse/parent/child links between two people, use people_add_family_relationship instead."},"source":{"type":"string","maxLength":100,"description":"Lead source"},"notes":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"Free-text note (stored in custom_fields.notes)"},"customFields":{"type":"object","additionalProperties":{"type":["string","number","boolean","null"]},"description":"Org-specific custom fields (merged on update)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Contact","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_bulk_update_contacts","title":"People — Bulk Update Contacts","description":"Update multiple contacts in one call (max 50). Ideal for batch tasks like setting birthdays on many people. Each entry needs contactId plus the fields to change.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"updates":{"type":"array","items":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"firstName":{"type":"string","maxLength":100,"description":"First name"},"middleName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Middle name"},"lastName":{"type":"string","maxLength":100,"description":"Last name"},"preferredName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Preferred name for greetings (e.g. Debo)"},"prefix":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Honorific / title stored on contacts.prefix (e.g. Pastor, Mr)"},"title":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Membership form title — sets contacts.prefix and metadata.title for email greetings (e.g. Pastor, Mr, Other)"},"titleOther":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"When title is Other, the custom honorific text"},"email":{"type":"string","format":"email","description":"Email address"},"phone":{"type":"string","maxLength":50,"description":"Primary phone"},"cellPhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Mobile/cell phone"},"homePhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Home phone"},"workPhone":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":50}]},{"type":"null"}],"description":"Work phone"},"company":{"type":"string","maxLength":200,"description":"Company or employer"},"jobTitle":{"type":"string","maxLength":200,"description":"Job title"},"dateOfBirth":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Date of birth / birthday"},"birthday":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Alias for dateOfBirth"},"gender":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","enum":["male","female","other","unknown"]}]},{"type":"null"}],"description":"Gender"},"maritalStatus":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","enum":["single","married","divorced","widowed"]}]},{"type":"null"}],"description":"Marital status"},"addressLine1":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"House number + street (e.g. 42 High Street). Postcode lookup fills city/county separately."},"addressLine2":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"Street address line 2"},"addressCity":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"City / town — auto-filled from addressPostcode when omitted (UK)"},"addressCounty":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"County / region — auto-filled from addressPostcode when omitted (UK)"},"addressPostcode":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":20}]},{"type":"null"}],"description":"UK postcode — auto-expands to city/county/country via postcodes.io when those are omitted"},"addressCountry":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":100}]},{"type":"null"}],"description":"Country — defaults to United Kingdom when postcode expands (UK)"},"city":{"type":"string","maxLength":100,"description":"City (alias for addressCity)"},"country":{"type":"string","maxLength":100,"description":"Country (alias for addressCountry)"},"baptismDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Baptism date"},"membershipDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Membership date"},"anniversaryDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"Wedding anniversary date"},"firstVisitDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","minLength":8,"maxLength":32,"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."}],"description":"Date as YYYY-MM-DD, or the organisation date order (UK Freedom Arena: DD/MM/YYYY). Ambiguous 09/11 follows the organisation location, never the agent locale."},{"type":"null"}],"description":"First visit date"},"bio":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":2000}]},{"type":"null"}],"description":"Short bio"},"communityMember":{"type":"boolean","description":"Mark as community member"},"tags":{"type":"array","items":{"type":"string"},"description":"Tag names (create replaces full list on update)"},"status":{"type":"string","enum":["subscribed","unsubscribed","pending","bounced","complained","active","inactive"],"description":"Contact subscription/status"},"emailOptIn":{"type":"boolean","description":"Email marketing opt-in"},"smsOptIn":{"type":"boolean","description":"SMS marketing opt-in"},"emailConsent":{"type":"boolean","description":"Email consent (GDPR)"},"smsConsent":{"type":"boolean","description":"SMS consent flag (sms_consent column)"},"whatsappConsent":{"type":"boolean","description":"WhatsApp consent flag (whatsapp_consent column)"},"marketingConsent":{"type":"boolean","description":"General marketing consent flag"},"gdprConsent":{"type":"boolean","description":"GDPR consent flag"},"primaryCampusId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"Primary campus UUID"},"familyId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"Household group UUID shared by import/segment rules (flat field on contacts). For spouse/parent/child links between two people, use people_add_family_relationship instead."},"source":{"type":"string","maxLength":100,"description":"Lead source"},"notes":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"Free-text note (stored in custom_fields.notes)"},"customFields":{"type":"object","additionalProperties":{"type":["string","number","boolean","null"]},"description":"Org-specific custom fields (merged on update)"}},"required":["contactId"],"additionalProperties":false},"minItems":1,"maxItems":50,"description":"List of per-contact partial updates"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Bulk Update Contacts","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_bulk_opt_in_whatsapp","title":"People — Bulk Opt In WhatsApp","description":"Bulk-set whatsapp_consent for contacts with a phone number. Use when congregation numbers were imported but WhatsApp automations show near-zero recipients. Pass allWithPhone:true to update every contact with cell/phone/home/work number in the org.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"allWithPhone":{"type":"boolean","default":true,"description":"When true (default), opt in all contacts with any phone field populated"},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"description":"Optional explicit contact IDs (max 50) instead of org-wide"},"whatsappConsent":{"type":"boolean","default":true,"description":"Consent value to set"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Bulk Opt In WhatsApp","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_delete_contact","title":"People — Delete Contact","description":"Soft-delete a contact (sets deleted_at). Use permanent=true only when GDPR erasure is required. Prefer merge for duplicates.\n\n**Required scope:** `people:write`.\n\n**API reference:** Soft-delete via CRM API. Use `permanent:true` only for GDPR erasure.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"permanent":{"type":"boolean","description":"Permanent GDPR erasure (default false = soft delete)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Delete Contact","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_list_notes","title":"People — List Notes","description":"List pastoral care notes from crm_notes (dashboard: Pastoral Care → Notes at /community/care/notes). Returns team/public notes only — private and confidential notes stay dashboard-only. Includes follow_up_date, follow_up_completed, and confidentiality_level (green/amber/red safeguarding). Newest first.\n\n**Required scope:** `people:read`.\n\n**API reference:** Dashboard: `/community/care/notes` (`GET /api/crm/notes`).","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Filter to one contact"},"limit":{"type":"integer","minimum":1,"maximum":100},"followUpDueOnly":{"type":"boolean","description":"When true, only notes with an open follow-up date"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"notes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Notes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_add_note","title":"People — Add Note","description":"Add a pastoral care note (dashboard: /community/care/notes). Human-readable sentences only — use contact names, never UUIDs or \"(contact …)\" IDs. For family links use people_add_family_relationship, not notes. Syncs to contact_care_timeline. To edit later: people_update_note. To delete: people_remove_note.\n\n**Required scope:** `people:write`.\n\n**API reference:** Dashboard: Pastoral Care → Notes at `/community/care/notes` (`POST /api/crm/notes`).","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"content":{"type":"string","minLength":1,"description":"Human-readable note text — names only, no contact UUIDs"},"isPinned":{"type":"boolean"},"followUpDate":{"type":"string","description":"YYYY-MM-DD — sets a follow-up reminder"},"privacyLevel":{"type":"string","enum":["public","team","private","confidential"]},"confidentialityLevel":{"type":"string","enum":["green","amber","red"],"description":"Safeguarding sensitivity"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Add Note","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_family","title":"People — List Family","description":"List family/household relationships for a contact (spouse, parent, child, sibling, grandparent, etc.). Returns linked contacts from the bidirectional contact_family_relationships graph. Dashboard UI: contact detail → Relationships tab. Use people_add_family_relationship to link two existing contacts.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Contact UUID whose family links to list"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"family":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Family","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_add_family_relationship","title":"People — Add Family Relationship","description":"Link two existing contacts as family in contact_family_relationships (shows in People → Relationships tab). Use this instead of custom fields or notes. Example: James as father of Grace → contactId=James UUID, relatedContactId=Grace UUID, relationship=daughter (Grace is James's daughter). Creates bidirectional rows with automatic inverse labels. Search contacts first with people_search_contacts.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Contact UUID to attach the relationship from"},"relatedContactId":{"type":"string","format":"uuid","description":"Other contact UUID to link"},"relationship":{"type":"string","enum":["primary","head","spouse","husband","wife","partner","parent","father","mother","child","son","daughter","sibling","brother","sister","grandparent","grandfather","grandmother","grandchild","grandson","granddaughter","other"],"description":"How relatedContact relates to contactId (e.g. child, parent, spouse, sibling)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Add Family Relationship","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_family_relationship","title":"People — Remove Family Relationship","description":"Remove a family link between two contacts (both directions in contact_family_relationships). Use people_list_family to find relatedContactId.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Contact UUID on one side of the link"},"relatedContactId":{"type":"string","format":"uuid","description":"Contact UUID on the other side"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Family Relationship","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_list_household","title":"People — List Household","description":"List contacts sharing the same flat household group (`family_id` on the contact row). Used by CSV import and segment rules. For spouse/parent/child graph links, use people_list_family instead.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"familyId":{"type":"string","format":"uuid","description":"Household group UUID"},"contactId":{"type":"string","format":"uuid","description":"Look up household from this contact’s family_id (use familyId or contactId)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"household":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Household","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_care_timeline","title":"People — Pastoral Care Timeline","description":"Read combined pastoral care timeline for a contact (notes + interactions from contact_care_timeline and crm_notes). Use after people_list_notes for full history. Dashboard: contact profile timeline.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"page":{"type":"integer","minimum":1,"description":"Page number (default 1)"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Items per page (default 50)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_timeline":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Pastoral Care Timeline","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_complete_note_followup","title":"People — Complete Pastoral Note Follow-Up","description":"Mark a pastoral note follow-up as completed (sets follow_up_completed on crm_notes and syncs contact_care_timeline). Use people_list_notes with followUpDueOnly to find open follow-ups.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"noteId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Complete Pastoral Note Follow-Up","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_note","title":"People — Update Note","description":"Edit an existing pastoral care note (content, followUpDate, privacy). Use people_list_notes to get noteId. Human-readable content only — no UUIDs. For follow-up completion prefer people_complete_note_followup. Prefer this over dashboard API invoke for note edits.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"noteId":{"type":"string","format":"uuid"},"content":{"type":"string","minLength":1},"followUpDate":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"YYYY-MM-DD or null to clear"},"privacyLevel":{"type":"string","enum":["public","team","private","confidential"]},"confidentialityLevel":{"type":"string","enum":["green","amber","red"]},"isPinned":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"note":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Note","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_note","title":"People — Remove Note","description":"Delete a pastoral care note by noteId (from people_list_notes). Syncs contact_care_timeline (note_removed). Use to remove mistaken agent notes — prefer this over dashboard API invoke.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"noteId":{"type":"string","format":"uuid","description":"Note UUID from people_list_notes"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Note","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_list_custom_field_definitions","title":"People — List Custom Field Definitions","description":"List org custom field definitions and sections — required before writing customFields on contacts so agents use correct field keys and types.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"sectionId":{"type":"string","format":"uuid","description":"Filter to one section"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"custom_field_definitions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Custom Field Definitions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_welcome_desk_visitors","title":"People — List Welcome Desk Visitors","description":"List CRM Welcome Desk visitors (first-time/returning guests on the people module — NOT the separate /api/guests pipeline). Dashboard: /people/welcome-desk. Filter by membership_status or search name/email.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["all","first_time_guest","returning_guest","member","volunteer","leader"],"description":"Membership status filter (default all)"},"search":{"type":"string","description":"Search first name, last name, or email"},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0},"visitSinceDays":{"type":"integer","minimum":1,"maximum":365,"description":"Only visitors with last_visit_date on or after today minus N days"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"welcome_desk_visitors":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Welcome Desk Visitors","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_follow_up_tasks","title":"People — List Welcome Desk Follow-Up Tasks","description":"List CRM Welcome Desk follow-up tasks (visitor_follow_up_tasks) — separate from pastoral note follow_up_date and guests pipeline follow-ups.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"assignedTo":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","in_progress","completed","escalated","cancelled"]},"taskType":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"follow_up_tasks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Welcome Desk Follow-Up Tasks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_complete_follow_up_task","title":"People — Complete Welcome Desk Follow-Up","description":"Mark a CRM Welcome Desk follow-up task complete (visitor_follow_up_tasks at /people/welcome-desk). NOT pastoral notes — use people_complete_note_followup for /community/care/notes.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"notes":{"type":"string","description":"Optional completion notes"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Complete Welcome Desk Follow-Up","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_tags","title":"People — List Tags","description":"List all CRM tags in the organization.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Tags","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_crm_groups","title":"People — List CRM Groups (Ministry Teams)","description":"List CRM People groups (ministry teams, departments — e.g. Gideon Army) from People → Groups. NOT the same as groups_list (Small Groups ministry module / cell groups). Use search to find by name. Includes active, archived, and on-hold unless status filter set.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"search":{"type":"string","description":"Filter by group name (partial match)"},"status":{"type":"string","enum":["active","draft","on_hold","completed","archived","all"],"description":"Filter by status — default all statuses"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_groups":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Groups (Ministry Teams)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_crm_group_members","title":"People — List CRM Group Members","description":"List members of a CRM People group by groupId or groupName. Dashboard: People → Groups → open group → member table.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"groupName":{"type":"string","description":"Find group by name if groupId omitted"},"status":{"type":"string","enum":["active","pending","inactive","waitlist","all"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_group_members":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Group Members","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_add_contact_tags","title":"People — Add Contact Tags","description":"Add one or more tags to a contact by tag name (creates tags if they do not exist).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"tags":{"type":"array","items":{"type":"string"},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Add Contact Tags","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_contact_tags","title":"People — Remove Contact Tags","description":"Remove one or more tags from a contact by tag name.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"tags":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Tag names to remove"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Contact Tags","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_delete_crm_tag","title":"People — Delete CRM Tag","description":"Delete an org-wide CRM tag definition by name. Removes assignments from contacts first. Use after people_remove_contact_tags when the tag should not remain in Settings.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Exact tag name (case-insensitive match)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Delete CRM Tag","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_get_data_quality_summary","title":"People — Get Data Quality Summary","description":"Read Community → Data Quality dashboard summary: reachable contacts, score /100, six category scores, scan history, and Isla-prioritized recommendations. Always relay speakToUser. Use people_run_data_quality_scan if no scan exists or data looks stale.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"historyLimit":{"type":"integer","minimum":1,"maximum":30,"description":"How many prior scans to include in history (default 7)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hasScan":{"type":"boolean"},"score":{"type":"object","additionalProperties":true,"description":"JSON object"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"recommendations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Data Quality Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_run_data_quality_scan","title":"People — Run Data Quality Scan","description":"Run a full CRM data quality scan (same as Run Scan on Community → Data Quality). Returns fresh score, categories, and issue counts. communityMembersOnly=true matches the dashboard default for church orgs.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"communityMembersOnly":{"type":"boolean","description":"When true, scan community_member contacts only (dashboard default)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"recommendations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Run Data Quality Scan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_data_quality_checks","title":"People — List Data Quality Checks","description":"List scan checks from the latest data quality run with Isla guidance. Filter by category, severity, or checkType. Use people_list_data_quality_affected_contacts for affected people.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["completeness","validity","uniqueness","consistency","freshness","deliverability"]},"severity":{"type":"string","enum":["critical","warning","info"]},"checkType":{"type":"string","description":"e.g. missing_email, duplicate_email"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"checks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"total":{"type":"number"},"issueCounts":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Data Quality Checks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_data_quality_affected_contacts","title":"People — List Data Quality Affected Contacts","description":"List contacts affected by a specific data quality issue type (same as expanding an issue row on the dashboard).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"checkType":{"type":"string","minLength":1,"description":"Check type key, e.g. missing_email, invalid_phone_format"},"limit":{"type":"integer","minimum":1,"maximum":100},"includeContactDetails":{"type":"boolean","description":"When true (default), fetch top contact rows like the dashboard panel"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"issueType":{"type":"string"},"title":{"type":"string"},"contactIds":{"type":"array","items":{"type":"string"}},"contacts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Data Quality Affected Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_preview_data_quality_fix","title":"People — Preview Data Quality Fix","description":"Preview an auto-fix job before applying (normalize phones, lowercase emails, trim whitespace, fix caps, segment cleanup, etc.).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"fixType":{"type":"string","enum":["normalize_phones","lowercase_emails","trim_whitespace","fix_caps","invalid_phone_format","remove_bounced_from_segments","remove_deceased_from_segments","remove_unsubscribed_from_segments"]},"contactId":{"type":"string","format":"uuid","description":"Optional single contact for invalid_phone_format"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Preview Data Quality Fix","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_apply_data_quality_fix","title":"People — Apply Data Quality Fix","description":"Queue a background auto-fix job (same as Apply on the dashboard). Poll people_get_data_quality_job; call people_trigger_data_quality_jobs to process immediately.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"fixType":{"type":"string","enum":["normalize_phones","lowercase_emails","trim_whitespace","fix_caps","invalid_phone_format","remove_bounced_from_segments","remove_deceased_from_segments","remove_unsubscribed_from_segments"]},"contactId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Apply Data Quality Fix","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_preview_data_quality_special_fix","title":"People — Preview Data Quality Special Fix","description":"Preview special fixes: dismiss minors missing email/phone, or copy family last name to contacts missing last name.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"fixType":{"type":"string","enum":["dismiss_minors_missing_email","dismiss_minors_missing_phone","copy_family_last_name"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Preview Data Quality Special Fix","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_apply_data_quality_special_fix","title":"People — Apply Data Quality Special Fix","description":"Apply a special data quality fix (dismiss minors, copy family last name).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"fixType":{"type":"string","enum":["dismiss_minors_missing_email","dismiss_minors_missing_phone","copy_family_last_name"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Apply Data Quality Special Fix","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_data_quality_duplicates","title":"People — List Data Quality Duplicates","description":"List duplicate contact groups by shared email or phone (dashboard Uniqueness panel). Excludes dismissed groups.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["email","phone"],"default":"email"},"limit":{"type":"integer","minimum":1,"maximum":500},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"total":{"type":"number"},"type":{"type":"string"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Data Quality Duplicates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_dismiss_data_quality_duplicate_groups","title":"People — Dismiss Data Quality Duplicate Groups","description":"Mark duplicate groups as not duplicates (dashboard dismiss).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["email","phone"]},"groupKeys":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Dismiss Data Quality Duplicate Groups","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_data_quality_fuzzy_pairs","title":"People — List Data Quality Fuzzy Pairs","description":"List fuzzy duplicate pairs or identical name pairs (dashboard fuzzy / same-name panels).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["fuzzy_duplicate","recent_same_name"],"default":"fuzzy_duplicate"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pairs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"total":{"type":"number"},"type":{"type":"string"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Data Quality Fuzzy Pairs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_dismiss_data_quality_fuzzy_pairs","title":"People — Dismiss Data Quality Fuzzy Pairs","description":"Dismiss fuzzy duplicate pairs as not duplicates.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["fuzzy_duplicate","recent_same_name"]},"pairKeys":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Dismiss Data Quality Fuzzy Pairs","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_merge_data_quality_contacts","title":"People — Merge Data Quality Contacts","description":"Merge two duplicate contacts (dashboard duplicate panel). Keeps keepContactId; optional fieldChoices for per-field resolution.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"keepContactId":{"type":"string","format":"uuid"},"mergeContactId":{"type":"string","format":"uuid"},"fieldChoices":{"type":"object","additionalProperties":{"type":"string","enum":["keep","merge"]}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Merge Data Quality Contacts","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_data_quality_jobs","title":"People — List Data Quality Jobs","description":"List recent data quality background jobs (phone normalize, bulk fixes).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"data_quality_jobs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Data Quality Jobs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_data_quality_job","title":"People — Get Data Quality Job","description":"Poll a data quality background job by id.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"data_quality_job":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Data Quality Job","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_trigger_data_quality_jobs","title":"People — Trigger Data Quality Jobs","description":"Run the data quality job processor now (same as dashboard polling / cron). Use after people_apply_data_quality_fix.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Trigger Data Quality Jobs","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_data_quality_queue","title":"People — List Data Quality Queue","description":"List Isla data quality queue items pending human review.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","approved","skipped"],"default":"pending"},"limit":{"type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"data_quality_queue":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Data Quality Queue","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_data_quality_dismissed_counts","title":"People — Get Data Quality Dismissed Counts","description":"Count dismissed duplicate groups, fuzzy pairs, or contact issues (minors missing email/phone) — same as dashboard dismissed badges.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["email","phone","missing_email","missing_phone","fuzzy_duplicate","recent_same_name"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"data_quality_dismissed_counts":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Data Quality Dismissed Counts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_restore_data_quality_dismissals","title":"People — Restore Data Quality Dismissals","description":"Clear all dismissals for a type (undo dismiss minors, duplicate groups, or fuzzy pairs). Refreshes issue counts after restore.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["email","phone","missing_email","missing_phone","fuzzy_duplicate","recent_same_name"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Restore Data Quality Dismissals","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_fetch_data_quality_dashboard","title":"People — Fetch Data Quality Dashboard","description":"Exact dashboard GET /api/crm/data-quality?communityMembersOnly=true — score + history as the UI loads.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"communityMembersOnly":{"type":"boolean","default":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Fetch Data Quality Dashboard","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_merge_data_quality_via_dashboard","title":"People — Merge Data Quality Via Dashboard","description":"Merge duplicates via dashboard merge-duplicate API (same as Duplicate Resolution panel).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"keepContactId":{"type":"string","format":"uuid"},"mergeContactId":{"type":"string","format":"uuid"},"fieldChoices":{"type":"object","additionalProperties":{"type":"string","enum":["keep","merge"]}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Merge Data Quality Via Dashboard","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_review_data_quality_queue_item","title":"People — Review Data Quality Queue Item","description":"Approve or skip a data quality queue item (Isla review queue).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"queueItemId":{"type":"string","format":"uuid"},"action":{"type":"string","enum":["approve","skip"]},"applyValue":{"type":"string","description":"Value to apply when action is approve"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Review Data Quality Queue Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_pastoral_dashboard","title":"People — Get Pastoral Dashboard","description":"Pastoral Care → Dashboard summary: roster contact coverage, pending outreach approvals, welfare checks due, urgent prayers, predicted care needs. Always relay speakToUser.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"outreach":{"type":"object","additionalProperties":true,"description":"JSON object"},"prayer":{"type":"object","additionalProperties":true,"description":"JSON object"},"needsAttention":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Pastoral Dashboard","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_welfare_due_contacts","title":"People — List Welfare Due Contacts","description":"Contacts overdue for welfare check (180+ days since pastoral contact). Matches dashboard Needs Attention welfare queue.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"total":{"type":"number"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Welfare Due Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_care_predictions","title":"People — List Care Predictions","description":"Pastoral Care → People → Predictions. AI-ranked contacts who may need pastoral attention.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_predictions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Care Predictions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_grief_touchpoints","title":"People — List Grief Touchpoints","description":"Pastoral Care → People → Grief. Upcoming grief journey touchpoints.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"grief_touchpoints":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Grief Touchpoints","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_complete_grief_touchpoint","title":"People — Complete Grief Touchpoint","description":"Mark a grief journey touchpoint complete (Pastoral Care → People → Grief).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"journeyId":{"type":"string","format":"uuid"},"daysCompleted":{"type":"integer","minimum":0,"description":"Touchpoint day marker completed (e.g. 30, 90, 180)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Complete Grief Touchpoint","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_pastoral_note_followups","title":"People — List Pastoral Note Follow-Ups","description":"Open pastoral note follow-ups (due/overdue). Intelligent speakToUser. Complete with people_complete_note_followup.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"notes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"total":{"type":"number"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Pastoral Note Follow-Ups","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_visit_analytics","title":"People — Get Visit Analytics","description":"Pastoral Care → Visits analytics (volume, team workload). Optional from/to dates (YYYY-MM-DD).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Start date YYYY-MM-DD"},"to":{"type":"string","description":"End date YYYY-MM-DD"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"visit_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Visit Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_pastoral_visits","title":"People — List Pastoral Visits","description":"List visit history for one contact (Pastoral Care → Visits detail).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_visits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Pastoral Visits","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_log_pastoral_visit","title":"People — Log Pastoral Visit","description":"Log a pastoral visit (home, hospital, phone, etc.) for a contact.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"visitDate":{"type":"string","description":"YYYY-MM-DD"},"visitType":{"type":"string","enum":["home","hospital","office","phone","video"]},"durationMinutes":{"type":"integer","minimum":1},"notes":{"type":"string"},"nextVisitDate":{"type":"string","description":"YYYY-MM-DD"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Log Pastoral Visit","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_prayer_analytics","title":"People — Get Prayer Analytics","description":"Pastoral Care → Insights prayer trends. Optional anonymous report mode for congregation-safe summary.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"anonymousReport":{"type":"boolean","description":"When true, returns anonymous congregation report"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"prayer_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Prayer Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_analyze_counseling_referral","title":"People — Analyze Counseling Referral","description":"Analyze note or message text for counseling referral / crisis signals. If isCrisis=true, require immediate human intervention — never auto-send.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"content":{"type":"string","minLength":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Analyze Counseling Referral","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_prayer_requests","title":"People — List Prayer Requests","description":"List active prayer requests (Insights). Confidential/private excluded. Urgent-first narrative in speakToUser.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"urgentOnly":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"prayer_requests":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Prayer Requests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_set_prayer_request_status","title":"People — Set Prayer Request Status","description":"Update prayer request status (e.g. mark answered). Pastoral Care → Insights.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"prayerRequestId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["active","answered","archived"]},"notes":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Prayer Request Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_life_event_status","title":"People — Set Life Event Status","description":"Edit life event fields or status (Community → Life Events / Pastoral Care).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"eventDate":{"type":"string","description":"YYYY-MM-DD"},"status":{"type":"string","enum":["active","resolved","closed"]},"nextFollowupDate":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Life Event Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_safeguarding_summary","title":"People — Get Safeguarding Summary","description":"Safeguarding dashboard stats: completed, expiring, overdue, pending checks.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"safeguarding_summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Safeguarding Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_create_safeguarding_check","title":"People — Create Safeguarding Check","description":"Request a new safeguarding check (DBS etc.) for a contact.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"checkType":{"type":"string","minLength":1,"description":"e.g. dbs, safeguarding_training"},"provider":{"type":"string"},"workforceType":{"type":"string"},"notes":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"safeguarding_check":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Safeguarding Check","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_safeguarding_check","title":"People — Set Safeguarding Check","description":"Update safeguarding check status, certificate dates, or notes.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"checkId":{"type":"string","format":"uuid"},"status":{"type":"string"},"certificateNumber":{"type":"string"},"issueDate":{"type":"string"},"expiryDate":{"type":"string"},"notes":{"type":"string"},"workforceType":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Safeguarding Check","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_safeguarding_policies","title":"People — List Safeguarding Policies","description":"List safeguarding policy documents (Safeguarding → Policies tab).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"safeguarding_policies":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Safeguarding Policies","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_pending_outreach","title":"People — List Pending Outreach","description":"Pastoral outreach queue awaiting approval (Manage → Approvals / Dashboard Review Pending). Defaults to pending_review.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending_review","approved","scheduled","sent","declined"],"default":"pending_review"},"limit":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"outreach":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Pending Outreach","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_outreach","title":"People — Create Outreach","description":"Create a manual pastoral outreach message for approval queue.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"subject":{"type":"string","minLength":1},"contentText":{"type":"string","minLength":1},"contentHtml":{"type":"string"},"channel":{"type":"string","enum":["email","sms"]},"messageType":{"type":"string"},"priority":{"type":"integer","minimum":1,"maximum":10},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"outreach":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Outreach","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_approve_outreach","title":"People — Approve Outreach","description":"Approve a pending outreach message for sending. User must confirm content first.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"outreachId":{"type":"string","format":"uuid"},"scheduledSendAt":{"type":"string","description":"ISO datetime to schedule send"},"notes":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Approve Outreach","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_decline_outreach","title":"People — Decline Outreach","description":"Decline a pending outreach message with a reason.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"outreachId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Decline Outreach","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_edit_outreach","title":"People — Edit Outreach","description":"Edit subject/body of a pending or approved (not yet sent) outreach item.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"outreachId":{"type":"string","format":"uuid"},"subject":{"type":"string"},"contentText":{"type":"string"},"contentHtml":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Edit Outreach","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_pastoral_automations","title":"People — List Pastoral Automations","description":"List pastoral automations (welfare check, encouragement, etc.) with optional stats.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"includeStats":{"type":"boolean"},"isActive":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_automations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Pastoral Automations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_pastoral_automation","title":"People — Create Pastoral Automation","description":"Create a pastoral automation (admin). Types include welfare_check, encouragement, grief_support, etc.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"automationType":{"type":"string","enum":["welfare_check","encouragement","birthday","anniversary","grief_support","prayer_followup","volunteer_thanks","milestone_celebration","new_visitor","seasonal_greeting"]},"description":{"type":"string"},"isActive":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Pastoral Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_pastoral_automation","title":"People — Set Pastoral Automation","description":"Update automation name, status, or content config.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"isActive":{"type":"boolean"},"description":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Pastoral Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_pastoral_automation","title":"People — Remove Pastoral Automation","description":"Delete a pastoral automation.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Pastoral Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_pastoral_settings","title":"People — Get Pastoral Settings","description":"Read pastoral care settings (welfare intervals, approvers, AI tone).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Pastoral Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_pastoral_settings","title":"People — Set Pastoral Settings","description":"Update pastoral care settings (admin).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"maxDaysWithoutContact":{"type":"integer"},"minDaysBetweenContacts":{"type":"integer"},"escalationDays":{"type":"integer"},"defaultSenderName":{"type":"string"},"aiTone":{"type":"string"},"includeScriptureDefault":{"type":"boolean"},"includePrayerDefault":{"type":"boolean"},"defaultApprovers":{"type":"array","items":{"type":"string","format":"uuid"}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Pastoral Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_care_team_overview","title":"People — Get Care Team Overview","description":"Care team workload overview (Manage → Teams).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_team_overview":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Care Team Overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_assign_care_team_member","title":"People — Assign Care Team Member","description":"Assign a dashboard user to a contact care team role.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"roleId":{"type":"string","format":"uuid"},"isPrimary":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Assign Care Team Member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_contact_care_status","title":"People — Get Contact Care Status","description":"Per-contact pastoral snapshot: care status, life events, prayers, outreach, care team.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_care_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Care Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_set_contact_care_priority","title":"People — Set Contact Care Priority","description":"Update contact care priority or pastoral opt-out flag.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"carePriority":{"type":"string","enum":["low","normal","high"]},"pastoralCareOptOut":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Contact Care Priority","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_pastoral_notes","title":"People — List Pastoral Notes","description":"Pastoral Care → Notes list with categories and communityMembersOnly=true (exact dashboard query). Private/confidential excluded unless safeguarding scope.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":200},"followUpDueOnly":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_notes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Pastoral Notes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_outreach_item","title":"People — Get Outreach Item","description":"Fetch one pastoral outreach queue item with contact and automation context before approve/edit.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"outreachId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"outreach_item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Outreach Item","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_cancel_outreach","title":"People — Cancel Outreach","description":"Cancel/delete a pastoral outreach item (not yet sent).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"outreachId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Cancel Outreach","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_run_pastoral_generation","title":"People — Run Pastoral Generation","description":"Trigger immediate pastoral message generation batch (same as activating an automation on the dashboard).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Run Pastoral Generation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_pastoral_automation","title":"People — Get Pastoral Automation","description":"Get one pastoral automation with recent outreach stats.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Pastoral Automation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_duplicate_pastoral_automation","title":"People — Duplicate Pastoral Automation","description":"Duplicate a pastoral automation as an inactive copy.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Duplicate Pastoral Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_initialize_pastoral_settings","title":"People — Initialize Pastoral Settings","description":"Initialize pastoral care settings for the org (first-time setup). Admin only.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"churchName":{"type":"string"},"defaultSenderName":{"type":"string"},"maxDaysWithoutContact":{"type":"integer"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Initialize Pastoral Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_care_team_roles","title":"People — List Care Team Roles","description":"List custom care team roles (Manage → Teams).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_team_roles":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Care Team Roles","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_care_team_role","title":"People — Create Care Team Role","description":"Create a care team role with approval/confidential permissions.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"canApprove":{"type":"boolean"},"canEditOutreach":{"type":"boolean"},"canViewConfidential":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_team_role":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Care Team Role","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_care_team_role","title":"People — Set Care Team Role","description":"Update a care team role.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"roleId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1},"description":{"type":"string"},"canApprove":{"type":"boolean"},"canEditOutreach":{"type":"boolean"},"canViewConfidential":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Care Team Role","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_care_team_role","title":"People — Remove Care Team Role","description":"Delete a custom care team role.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"roleId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Care Team Role","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_seed_care_team_roles","title":"People — Seed Care Team Roles","description":"Seed default care team roles for the organization.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Seed Care Team Roles","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_care_team_assignments","title":"People — List Care Team Assignments","description":"List care team assignments (optionally filter by contact or user).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"roleId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_team_assignments":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Care Team Assignments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_remove_care_team_assignment","title":"People — Remove Care Team Assignment","description":"Remove a care team assignment.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"assignmentId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Care Team Assignment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_pastoral_life_events","title":"People — List Pastoral Life Events","description":"Pastoral Care → People → Life Events tab (uses /api/pastoral/life-events with community member filter).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"category":{"type":"string"},"needsFollowUp":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_life_events":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Pastoral Life Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_all_life_events","title":"People — List All Life Events","description":"Life Events page — all events including milestones (GET /api/community/life-events/all).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"all_life_events":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List All Life Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_celebrate_life_event","title":"People — Celebrate Life Event","description":"Mark a milestone achievement as celebrated (Life Events page).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"achievementId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Celebrate Life Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_export_life_events_report","title":"People — Export Life Events Report","description":"Generate monthly life events pastoral report (Life Events → Report).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"month":{"type":"integer","minimum":1,"maximum":12},"year":{"type":"integer"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Export Life Events Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_export_life_events_calendar","title":"People — Export Life Events Calendar","description":"Export life events calendar data (Life Events → Export).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"month":{"type":"integer","minimum":1,"maximum":12},"year":{"type":"integer"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Export Life Events Calendar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_life_event","title":"People — Remove Life Event","description":"Delete a life event record.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Life Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_generate_life_event_message","title":"People — Generate Life Event Message","description":"AI-generate a pastoral message for a life event (email/SMS/WhatsApp).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"eventType":{"type":"string","minLength":1},"eventCategory":{"type":"string"},"channel":{"type":"string","enum":["email","sms","whatsapp"]},"context":{"type":"string"},"tone":{"type":"string"},"membershipMonths":{"type":"integer"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Generate Life Event Message","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_safeguarding_checks","title":"People — List Safeguarding Checks","description":"List safeguarding checks with optional status filter (Safeguarding main tab).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"safeguarding_checks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Safeguarding Checks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_remove_safeguarding_check","title":"People — Remove Safeguarding Check","description":"Delete a safeguarding check record.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"checkId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Safeguarding Check","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_create_safeguarding_policy","title":"People — Create Safeguarding Policy","description":"Create a safeguarding policy document.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"content":{"type":"string"},"version":{"type":"string"},"effectiveDate":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"safeguarding_policy":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Safeguarding Policy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_safeguarding_policy","title":"People — Set Safeguarding Policy","description":"Update a safeguarding policy (PATCH body includes id).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"policyId":{"type":"string","format":"uuid"},"title":{"type":"string"},"content":{"type":"string"},"version":{"type":"string"},"effectiveDate":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Safeguarding Policy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_safeguarding_policy","title":"People — Remove Safeguarding Policy","description":"Delete a safeguarding policy.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"policyId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Safeguarding Policy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_counseling_resources","title":"People — List Counseling Resources","description":"List org counseling referral resources (Insights sidebar).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"type":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counseling_resources":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Counseling Resources","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_main_dashboard_layout","title":"People — Get Main Dashboard Layout","description":"Main People dashboard widget layout (GET /api/dashboard/layout?type=main).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"main_dashboard_layout":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Main Dashboard Layout","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_main_dashboard_layout","title":"People — Set Main Dashboard Layout","description":"Save main People dashboard widget layout (PUT /api/dashboard/layout?type=main).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"layout":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Widget grid layout from people_get_main_dashboard_layout"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Main Dashboard Layout","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_analytics_stats","title":"People — Get Analytics Stats","description":"Stats widget on People dashboard (GET /api/analytics/stats).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"analytics_stats":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Analytics Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_donate_subdomain_slug","title":"People — Get Donate Subdomain Slug","description":"Public People card subdomain slug (GET /api/organizations/donate-subdomain-slug). Volunteer access page.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_subdomain_slug":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Donate Subdomain Slug","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_contact_stats","title":"People — Get Contact Stats","description":"Contact list header stats (GET /api/contacts/stats).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_stats":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_export_contacts","title":"People — Export Contacts","description":"Export contacts CSV with current list filters (GET /api/contacts/export).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Same filter query params as People list"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Export Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_import_contacts","title":"People — Import Contacts","description":"Bulk import contacts from CSV/JSON (POST /api/contacts/import).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Import Contacts","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_run_contacts_bulk_operation","title":"People — Run Contacts Bulk Operation","description":"Dashboard bulk ops (POST /api/contacts/bulk): add_tags, remove_tags, update_fields, delete, etc.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Run Contacts Bulk Operation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_community_membership_bulk","title":"People — Set Community Membership Bulk","description":"Toggle community membership for many contacts (POST /api/contacts/bulk/community-membership).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"communityMember":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Community Membership Bulk","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_add_contact_to_segment_api","title":"People — Add Contact To Segment API","description":"Add one contact to a segment from list bulk flow (POST /api/contacts/{id}/segments).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"segmentId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Add Contact To Segment API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_segments_api","title":"People — List Segments API","description":"List segments via dashboard API (GET /api/crm/segments). Complements people_list_segments.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segments_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Segments API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_segment_api","title":"People — Get Segment API","description":"Get segment by id (GET /api/crm/segments/{id}).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Segment API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_segment","title":"People — Update Segment","description":"Update segment rules/name (PATCH /api/crm/segments/{id}).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Segment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_refresh_segment","title":"People — Refresh Segment","description":"Manually refresh segment membership (PATCH /api/crm/segments/{id}/refresh).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Refresh Segment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_segment_templates","title":"People — List Segment Templates","description":"Segment template library (GET /api/crm/segment-templates).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Segment Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_segment_from_template","title":"People — Create Segment From Template","description":"Create segment from template (POST /api/crm/segments/from-template/{templateId}).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"name":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment_from_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Segment From Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_segment_fields","title":"People — List Segment Fields","description":"Segment rule builder fields (GET /api/crm/segments/fields).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment_fields":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Segment Fields","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_preview_segment_api","title":"People — Preview Segment API","description":"Live segment preview counts (POST /api/crm/segments/preview).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Preview Segment API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_segment_contacts_api","title":"People — List Segment Contacts API","description":"Paginated segment members (GET /api/crm/segments/{id}/contacts).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":500},"offset":{"type":"integer","minimum":0},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment_contacts_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Segment Contacts API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_crm_tags_api","title":"People — List CRM Tags API","description":"List tags with categories (GET /api/crm/tags?includeCategories=true).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"includeCategories":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_tags_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Tags API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_crm_tag","title":"People — Create CRM Tag","description":"Create CRM tag (POST /api/crm/tags).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_tag":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create CRM Tag","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_crm_tag","title":"People — Update CRM Tag","description":"Update CRM tag (PATCH /api/crm/tags/{tagId}).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"tagId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_tag":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update CRM Tag","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_create_tag_category","title":"People — Create Tag Category","description":"Create tag category (POST /api/crm/tags/categories).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tag_category":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Tag Category","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_tag_category","title":"People — Update Tag Category","description":"Update tag category (PATCH /api/crm/tags/categories/{categoryId}).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tag_category":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Tag Category","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_contact_tags_api","title":"People — List Contact Tags API","description":"Tags on a contact (GET /api/crm/contacts/{contactId}/tags).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_tags_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Contact Tags API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_add_contact_tag_api","title":"People — Add Contact Tag API","description":"Add tag to contact via API (POST /api/crm/contacts/{contactId}/tags).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"tagId":{"type":"string","format":"uuid"},"tagName":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Add Contact Tag API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_contact_tag_api","title":"People — Remove Contact Tag API","description":"Remove tag from contact (DELETE /api/crm/contacts/{contactId}/tags?tagId=).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"tagId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Contact Tag API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_crm_group","title":"People — Get CRM Group","description":"CRM group detail (GET /api/crm/groups/{groupId}). Opens People → Groups detail with member roster management.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"includeTypes":{"type":"boolean"},"includeRoles":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_group":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get CRM Group","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_crm_group","title":"People — Update CRM Group","description":"Update CRM group (PUT/PATCH /api/crm/groups/{groupId}).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_group":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update CRM Group","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_crm_locations","title":"People — List CRM Locations","description":"Campus/location filter options (GET /api/crm/locations).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_locations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Locations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_crm_groups_api","title":"People — List CRM Groups API","description":"List CRM groups with types/roles (GET /api/crm/groups).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"includeTypes":{"type":"boolean"},"includeRoles":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_groups_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Groups API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_crm_group_members_api","title":"People — List CRM Group Members API","description":"List group members (GET /api/crm/groups/{groupId}/members). Same roster as People → Groups → Manage Members.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["active","pending","inactive","waitlist","all"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_group_members_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Group Members API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_portal_invites","title":"People — List Portal Invites","description":"List member portal invites (GET /api/portal/admin/invites).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_invites":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Portal Invites","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_send_portal_invites","title":"People — Send Portal Invites","description":"Send portal invites to contacts (POST /api/portal/admin/invites).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Send Portal Invites","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_manage_portal_invite","title":"People — Manage Portal Invite","description":"Resend or revoke portal invite (PATCH /api/portal/admin/invites).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Manage Portal Invite","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_portal_analytics","title":"People — Get Portal Analytics","description":"Member portal analytics (GET /api/portal/admin/analytics).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Portal Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_portal_moderation","title":"People — List Portal Moderation","description":"Portal moderation queue (GET /api/portal/admin/moderation).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_moderation":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Portal Moderation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_moderate_portal_post","title":"People — Moderate Portal Post","description":"Approve/reject portal post (PATCH /api/portal/admin/moderation).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Moderate Portal Post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_capture_sessions","title":"People — List Capture Sessions","description":"List people capture sessions (GET /api/people/sessions).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"status":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"capture_sessions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Capture Sessions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_unlock_capture_session","title":"People — Unlock Capture Session","description":"Unlock/reopen capture session (POST /api/people/sessions/{id}/unlock-reopen).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Unlock Capture Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_contact_profile","title":"People — Get Contact Profile","description":"Extended visitor-card profile (GET /api/contacts/{id}/profile). Dates follow the organisation location (Freedom Arena UK = DD/MM/YYYY — 09/11 is 9 November). dateOfBirthLabel is the unambiguous month-name date.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_profile":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Profile","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_contact_profile","title":"People — Update Contact Profile","description":"Update visitor-card profile fields (PUT/PATCH /api/contacts/{id}/profile). Dates follow the organisation location (Freedom Arena UK = DD/MM/YYYY — 09/11 is 9 November).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_profile":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Contact Profile","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_contact_summary","title":"People — Get Contact Summary","description":"Quick contact summary card (GET /api/contacts/{id}/summary).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_contact_timeline","title":"People — Get Contact Timeline","description":"Activity timeline tab (GET /api/crm/contacts/{id}/timeline).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_timeline":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Timeline","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_contact_emails","title":"People — List Contact Emails","description":"Emails tab history (GET /api/crm/contacts/{id}/emails).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_emails":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Contact Emails","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_contact_groups_tab","title":"People — List Contact Groups Tab","description":"Involvement tab groups (GET /api/crm/contacts/{id}/groups).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_groups_tab":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Contact Groups Tab","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_contact_attendance","title":"People — Get Contact Attendance","description":"Attendance tab (GET /api/contacts/{id}/attendance).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_attendance":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Attendance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_similar_contacts","title":"People — List Similar Contacts","description":"Similar contacts panel (GET /api/contacts/{id}/similar).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":20},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"similar_contacts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Similar Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_find_similar_contacts_ai","title":"People — Find Similar Contacts AI","description":"AI similar contacts (GET /api/ai/similar-contacts/{contactId}).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":20},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Find Similar Contacts AI","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_visitor_card_form","title":"People — Get Visitor Card Form","description":"Visitor card form schema (GET /api/people/visitor-card-form).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"visitor_card_form":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Visitor Card Form","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_departments","title":"People — List Departments","description":"Departments for contact edit form (GET /api/people/departments).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"departments":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Departments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_card_sample_token","title":"People — Get Card Sample Token","description":"Sample member card preview URL (GET /api/people/card-sample-token).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"card_sample_token":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Card Sample Token","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_generate_member_qr","title":"People — Generate Member Qr","description":"Generate member QR code (POST /api/guests/member-qr/generate).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Generate Member Qr","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_partner_shares","title":"People — List Partner Shares","description":"Partner DPA shares (GET /api/partner/shares).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"partner_shares":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Partner Shares","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_partner_contacts","title":"People — List Partner Contacts","description":"Shared partner contacts view (GET /api/partner/contacts).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"search":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"partner_contacts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Partner Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_build_semantic_segment","title":"People — Build Semantic Segment","description":"AI semantic segment builder (POST /api/ai/semantic-segment).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Build Semantic Segment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_semantic_search_contacts","title":"People — Semantic Search Contacts","description":"Semantic contact search (POST /api/contacts/semantic-search).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Semantic Search Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_community_dashboard","title":"People — Get Community Dashboard","description":"Community home dashboard stats (GET /api/crm/dashboard?communityMembersOnly=true). Membership, engagement, integration funnel snapshot.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"community_dashboard":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Community Dashboard","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_crm_subscription","title":"People — Get CRM Subscription","description":"CRM subscription / plan tier for Community module gating (GET /api/crm/subscription).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_subscription":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get CRM Subscription","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_crm_search_config","title":"People — List CRM Search Config","description":"Community search page config: filterable fields and saved searches (GET /api/crm/search?includeFields=true).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List CRM Search Config","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_execute_community_search","title":"People — Execute Community Search","description":"Execute advanced community-member search (POST /api/crm/search action=execute). Defaults communityMembersOnly=true.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"criteria":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"]},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"operator":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"number"}]}},"required":["field","operator","value"],"additionalProperties":false},"minItems":1}},"required":["conditions"],"additionalProperties":false},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"includeTags":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Execute Community Search","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_save_crm_search","title":"People — Save CRM Search","description":"Save current search criteria as a reusable saved search (POST /api/crm/search action=save).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":500},"criteria":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"]},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"operator":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"number"}]}},"required":["field","operator","value"],"additionalProperties":false},"minItems":1}},"required":["conditions"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Save CRM Search","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_execute_saved_crm_search","title":"People — Execute Saved CRM Search","description":"Run a saved search by id (GET /api/crm/search/{id}?execute=true). Defaults communityMembersOnly=true.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"searchId":{"type":"string","format":"uuid"},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Execute Saved CRM Search","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_community_settings","title":"People — Get Community Settings","description":"Community / CRM settings (GET /api/crm/settings) — display, family, groups, tags, custom fields, etc.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"community_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Community Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_community_settings","title":"People — Set Community Settings","description":"Update Community CRM settings (PUT /api/crm/settings). Pass settings object matching dashboard shape.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":true,"description":"CRM settings payload — same shape as people_get_community_settings.settings"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set Community Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_integration_overview","title":"People — Get Integration Overview","description":"Integration funnel stages and optional stalled contacts (GET /api/crm/integration). Set stalled=true for stall list.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"stalled":{"type":"boolean","description":"Include stalled contacts and suggestions"},"communityMembersOnly":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"integration_overview":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Integration Overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_run_integration_stall_detection","title":"People — Run Integration Stall Detection","description":"Re-run integration stall detection (POST /api/crm/integration). Refresh with people_get_integration_overview.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Run Integration Stall Detection","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_engagement_overview","title":"People — Get Engagement Overview","description":"Engagement widget data (GET /api/crm/engagement/overview). Community dashboard widget parity.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"communityMembersOnly":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"engagement_overview":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Engagement Overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_smart_discoveries","title":"People — Get Smart Discoveries","description":"AI smart discoveries card on Community home (GET /api/ai/smart-discoveries).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"smart_discoveries":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Smart Discoveries","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_smart_content_birthdays","title":"People — Get Smart Content Birthdays","description":"Birthday smart-content suggestions (GET /api/ai/smart-content/birthdays).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"smart_content_birthdays":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Smart Content Birthdays","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_smart_content_new_members","title":"People — Get Smart Content New Members","description":"New-member smart-content suggestions (GET /api/ai/smart-content/new-members).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"smart_content_new_members":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Smart Content New Members","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_dashboard_ai_insights","title":"People — List Dashboard AI Insights","description":"AI insights widget list (GET /api/ai/insights). Community dashboard widget parity.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":20},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"dashboard_ai_insights":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Dashboard AI Insights","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_generate_dashboard_ai_insights","title":"People — Generate Dashboard AI Insights","description":"Generate fresh AI insights for dashboard widget (POST /api/ai/insights).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Generate Dashboard AI Insights","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_crm_dashboard_layout","title":"People — Get CRM Dashboard Layout","description":"CRM dashboard widget layout (GET /api/dashboard/layout?type=crm).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_dashboard_layout":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get CRM Dashboard Layout","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_set_crm_dashboard_layout","title":"People — Set CRM Dashboard Layout","description":"Save CRM dashboard widget layout (PUT /api/dashboard/layout).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"layout":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Widget grid layout array from people_get_crm_dashboard_layout"},"type":{"type":"string","const":"crm"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Set CRM Dashboard Layout","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_recent_activities","title":"People — List Recent Activities","description":"Recent activity widget (GET /api/activities). Community dashboard widget parity.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"recent_activities":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Recent Activities","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_get_crm_analytics_chart","title":"People — Get CRM Analytics Chart","description":"Analytics chart widget data (GET /api/analytics/chart). Default period 7d.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"period":{"type":"string","enum":["7d","30d","90d"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_analytics_chart":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get CRM Analytics Chart","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_life_events_radar","title":"People — Get Life Events Radar","description":"Life Events page summary radar (GET /api/community/life-events) — due follow-ups and category counts. Not the full /all list.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"life_events_radar":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Life Events Radar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_contact_life_events_timeline","title":"People — Get Contact Life Events Timeline","description":"Per-contact life events timeline (GET /api/community/life-events/contact/{contactId}).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact_life_events_timeline":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Get Contact Life Events Timeline","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_list_hub_series","title":"Schedule — List Hub Series","description":"List service series with link-health rollup (GET /api/service-schedule/series). Church Services page parity.\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hub_series":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — List Hub Series","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"schedule_preview_recurrence","title":"Schedule — Preview Recurrence","description":"Preview recurrence dates without saving (POST /api/service-schedule/preview).\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"recurrence":{"type":"object","properties":{"frequency":{"type":"string"},"day_of_week":{"anyOf":[{"type":"integer","minimum":0,"maximum":6},{"type":"null"}]},"week_of_month":{"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"day_of_month":{"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"null"}]},"month_of_year":{"anyOf":[{"type":"integer","minimum":1,"maximum":12},{"type":"null"}]},"interval_count":{"type":"integer","minimum":1},"dtstart":{"type":"string","description":"YYYY-MM-DD"},"until":{"type":["string","null"]}},"required":["frequency","dtstart"],"additionalProperties":false},"count":{"type":"integer","minimum":1,"maximum":60},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Preview Recurrence","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_create_hub_series","title":"Schedule — Create Hub Series","description":"Create recurring service series + module targets (POST /api/service-schedule/series).\n\n**Required scope:** `schedule:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"start_time":{"type":"string","description":"HH:MM"},"end_time":{"type":"string","description":"HH:MM"},"timezone":{"type":"string"},"recurrence":{"type":"object","properties":{"frequency":{"type":"string"},"day_of_week":{"anyOf":[{"type":"integer","minimum":0,"maximum":6},{"type":"null"}]},"week_of_month":{"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"day_of_month":{"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"null"}]},"month_of_year":{"anyOf":[{"type":"integer","minimum":1,"maximum":12},{"type":"null"}]},"interval_count":{"type":"integer","minimum":1},"dtstart":{"type":"string","description":"YYYY-MM-DD"},"until":{"type":["string","null"]}},"required":["frequency","dtstart"],"additionalProperties":false},"targets":{"type":"array","items":{"type":"object","properties":{"module":{"type":"string"},"enabled":{"type":"boolean"},"config":{"type":"object","additionalProperties":true}},"required":["module","enabled"],"additionalProperties":false}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hub_serie":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Create Hub Series","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_get_hub_series","title":"Schedule — Get Hub Series","description":"Service series detail with targets, occurrences, link health (GET /api/service-schedule/series/{id}).\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hub_series":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Get Hub Series","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_update_hub_series","title":"Schedule — Update Hub Series","description":"Update service series pattern, times, status, or targets (PATCH /api/service-schedule/series/{id}).\n\n**Required scope:** `schedule:write`.","inputSchema":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"start_time":{"type":"string"},"end_time":{"type":"string"},"timezone":{"type":"string"},"status":{"type":"string"},"recurrence":{"type":"object","properties":{"frequency":{"type":"string"},"day_of_week":{"anyOf":[{"type":"integer","minimum":0,"maximum":6},{"type":"null"}]},"week_of_month":{"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"day_of_month":{"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"null"}]},"month_of_year":{"anyOf":[{"type":"integer","minimum":1,"maximum":12},{"type":"null"}]},"interval_count":{"type":"integer","minimum":1},"dtstart":{"type":"string","description":"YYYY-MM-DD"},"until":{"type":["string","null"]}},"additionalProperties":false},"targets":{"type":"array","items":{"type":"object","properties":{"module":{"type":"string"},"enabled":{"type":"boolean"},"config":{"type":"object","additionalProperties":true}},"required":["module","enabled"],"additionalProperties":false}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hub_serie":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Update Hub Series","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_archive_hub_series","title":"Schedule — Archive Hub Series","description":"Archive service series and cancel future occurrences (DELETE /api/service-schedule/series/{id}).\n\n**Required scope:** `schedule:write`.","inputSchema":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Archive Hub Series","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_get_occurrence_detail","title":"Schedule — Get Occurrence Detail","description":"Single occurrence with per-module link status (GET /api/service-schedule/occurrences/{id}).\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"occurrenceId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"occurrence_detail":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Get Occurrence Detail","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_update_occurrence","title":"Schedule — Update Occurrence","description":"Update occurrence date/time or status (PATCH /api/service-schedule/occurrences/{id}).\n\n**Required scope:** `schedule:write`.","inputSchema":{"type":"object","properties":{"occurrenceId":{"type":"string","format":"uuid"},"occurrence_date":{"type":"string","description":"YYYY-MM-DD"},"start_time":{"type":"string"},"end_time":{"type":"string"},"status":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"occurrence":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Update Occurrence","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_retry_occurrence_links","title":"Schedule — Retry Occurrence Links","description":"Retry failed module links for an occurrence (POST /api/service-schedule/occurrences/{id}/retry).\n\n**Required scope:** `schedule:write`.","inputSchema":{"type":"object","properties":{"occurrenceId":{"type":"string","format":"uuid"},"module":{"type":"string","description":"Retry one module only, e.g. runsheet, guests"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Retry Occurrence Links","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_event_types","title":"Runsheet — List Event Types","description":"List runsheet event types for service series wizard (GET /api/runsheet/event-types).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event_types":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Event Types","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_ministries","title":"Runsheet — List Ministries","description":"List ministries / top-level structure units (GET /api/runsheet/ministries).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ministries":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Ministries","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_ministry","title":"Runsheet — Create Ministry","description":"Create ministry (POST /api/runsheet/ministries). Org admin only.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ministry":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Ministry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_ministry","title":"Runsheet — Update Ministry","description":"Update ministry name or description (PATCH /api/runsheet/ministries/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"ministryId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ministry":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Ministry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_remove_ministry","title":"Runsheet — Remove Ministry","description":"Delete ministry (DELETE /api/runsheet/ministries/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"ministryId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Remove Ministry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_team_detail","title":"Runsheet — Get Team Detail","description":"Team / department detail (GET /api/runsheet/teams/{id}).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_detail":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Team Detail","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_create_team","title":"Runsheet — Create Team","description":"Create team / department (POST /api/runsheet/teams).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"ministry_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"building_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"unit_kind":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Team","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_team","title":"Runsheet — Update Team","description":"Update team / department header (PATCH /api/runsheet/teams/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"ministry_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"building_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"unit_kind":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Team","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_remove_team","title":"Runsheet — Remove Team","description":"Delete team / department (DELETE /api/runsheet/teams/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Remove Team","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_pastoral_holders","title":"Runsheet — List Pastoral Holders","description":"Pastoral holders for a team (GET /api/runsheet/teams/{id}/pastoral-holders).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_holders":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Pastoral Holders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_set_team_position","title":"Runsheet — Set Team Position","description":"Create or update team position (POST/PATCH /api/runsheet/teams/{id}/positions). Pass positionId to update.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"positionId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1},"position_type":{"type":"string","enum":["leadership","serving"]},"required":{"type":"boolean"},"quantity":{"type":"integer","minimum":1},"skills":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Set Team Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_remove_team_position","title":"Runsheet — Remove Team Position","description":"Remove team position (DELETE /api/runsheet/teams/{id}/positions/{positionId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"positionId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Remove Team Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_add_team_roster_member","title":"Runsheet — Add Team Roster Member","description":"Add roster member to team (POST /api/runsheet/teams/{id}/members).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"contact_id":{"type":"string","format":"uuid"},"position":{"type":"string"},"role":{"type":"string","enum":["member","leader"]},"skills":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Add Team Roster Member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_team_roster_member","title":"Runsheet — Update Team Roster Member","description":"Update roster member role/position (PATCH /api/runsheet/teams/{id}/members/{memberId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"memberId":{"type":"string","format":"uuid"},"position":{"type":"string"},"role":{"type":"string","enum":["member","leader"]},"skills":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_roster_member":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Team Roster Member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_leader_permissions","title":"Runsheet — List Leader Permissions","description":"List leader permissions (GET /api/runsheet/leaders). Leaders page parity.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"leader_permissions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Leader Permissions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_get_leaders_hierarchy","title":"Runsheet — Get Leaders Hierarchy","description":"Leaders hierarchy tree (GET /api/runsheet/leaders/hierarchy).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"leaders_hierarchy":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Leaders Hierarchy","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_grant_leader_permission","title":"Runsheet — Grant Leader Permission","description":"Grant ministry or team leader permission (POST /api/runsheet/leaders). scope=team|ministry, scope_id required.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid"},"contact_id":{"type":"string","format":"uuid"},"scope":{"type":"string","enum":["team","ministry"]},"scope_id":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Grant Leader Permission","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_revoke_leader_permission","title":"Runsheet — Revoke Leader Permission","description":"Revoke leader permission (DELETE /api/runsheet/leaders/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"permissionId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Revoke Leader Permission","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_create_crm_group","title":"People — Create CRM Group","description":"Create a CRM People group (ministry team, department) — same as People → Groups → New. NOT the Small Groups ministry module (use groups_create for cell/home groups). To remove: people_delete_crm_group.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["draft","active","on_hold"],"default":"active"},"groupTypeId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"crm_group":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create CRM Group","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_add_crm_group_member","title":"People — Add Contact to CRM Group","description":"Add a contact to a CRM People group by groupId/groupName and contactId or contactEmail. Same as People → Groups → Add member.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"groupName":{"type":"string"},"contactId":{"type":"string","format":"uuid"},"contactEmail":{"type":"string","format":"email"},"roleId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Add Contact to CRM Group","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_remove_crm_group_member","title":"People — Remove Contact from CRM Group","description":"Remove a contact from a CRM People group. Pass memberId from people_list_crm_group_members, or contactId/contactEmail with groupId/groupName.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"groupName":{"type":"string"},"memberId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"contactEmail":{"type":"string","format":"email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Remove Contact from CRM Group","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_delete_crm_group","title":"People — Delete CRM Group","description":"Delete a CRM People group (ministry team / department). Same as People → Groups → delete. Members are unlinked; contacts are not deleted.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"groupName":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Delete CRM Group","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_preview_roll_check","title":"People — Preview Roll Check","description":"Preview how many contacts match a roll-check before sending a review link. Use queryType all_unsubscribed for unsubscribed contacts (no rule JSON needed). For custom segment rules, pass rootGroup. Same as People → Roll check → Preview. Requires people:read (owner/admin).","inputSchema":{"type":"object","properties":{"queryType":{"type":"string","enum":["birthdays","all_subscribed","all_unsubscribed","members","everyone"],"description":"Preset query — prefer all_unsubscribed when the user asks for unsubscribed/inactive contacts"},"rootGroup":{"type":"object","additionalProperties":true,"description":"Custom rule tree JSON — only when queryType is omitted"},"preset":{"type":"string","enum":["week","month","custom"],"description":"For birthdays queryType"},"start":{"type":"string","description":"Custom range start (YYYY-MM-DD) for birthdays"},"end":{"type":"string","description":"Custom range end for birthdays"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Preview Roll Check","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_roll_checks","title":"People — List Roll Check Sessions","description":"List recent roll-check review sessions (pending/completed) with contact counts and reviewer email. People → Roll check history.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"roll_checks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Roll Check Sessions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_roll_check","title":"People — Create Roll Check Review","description":"Create a PIN-protected roll-check review link and optionally email it to a reviewer. Same as People → Roll check → Send. Requires people:write (owner/admin).","inputSchema":{"type":"object","properties":{"queryType":{"type":"string","enum":["rules","birthdays","all_subscribed","all_unsubscribed","members","everyone"],"default":"rules","description":"rules = segment rules; birthdays; all_subscribed; all_unsubscribed; members; everyone"},"rootGroup":{"type":"object","additionalProperties":true,"description":"Required when queryType is rules"},"preset":{"type":"string","enum":["week","month","custom"],"description":"For birthdays queryType"},"start":{"type":"string","description":"Custom range start (YYYY-MM-DD) for birthdays"},"end":{"type":"string","description":"Custom range end for birthdays"},"sendEmail":{"type":"boolean","default":true,"description":"Email the reviewer the PIN link"},"recipientEmail":{"type":"string","format":"email","description":"Reviewer email — defaults to org roll-check settings"},"recipientName":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"roll_check":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Roll Check Review","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_get_roll_check_settings","title":"People — Roll Check Reviewer Settings","description":"Get default roll-check reviewer name and email for this organization.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"roll_check_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Roll Check Reviewer Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_roll_check_settings","title":"People — Update Roll Check Reviewer","description":"Set default roll-check reviewer email and name — used when sendEmail is true without recipientEmail.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"reviewerEmail":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}]},"reviewerName":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"roll_check_setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Roll Check Reviewer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_roll_check_fields","title":"People — Roll Check Rule Fields","description":"List segment fields available for roll-check rule builder (tags, status, custom fields, etc.).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"roll_check_fields":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Roll Check Rule Fields","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_roll_check_print_fields","title":"People — Roll Check Print Columns","description":"List columns and sort keys for a landscape birthday / roll-check print (gender, groups, tags, address, custom fields). Same as Print / generate report. Requires people:read.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"roll_check_print_fields":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Roll Check Print Columns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_generate_roll_check_report","title":"People — Generate Roll Check Report","description":"Generate a landscape roll-check / birthday report. Can use an existing reviewId OR a live queryType (birthdays, members, everyone) without creating a review — more than the volunteer print dialog. Supports two- or three-level sort (e.g. groups then birthday 1st/2nd/3rd), gender, CRM groups, custom fields, CSV. Requires people:read.","inputSchema":{"type":"object","properties":{"reviewId":{"type":"string","format":"uuid","description":"Existing roll-check review id. Omit to generate from a live query."},"queryType":{"type":"string","enum":["birthdays","all_subscribed","all_unsubscribed","members","everyone"],"description":"Live query when reviewId is omitted. Default birthdays."},"preset":{"type":"string","enum":["week","month","custom"],"description":"Birthday range preset"},"start":{"type":"string"},"end":{"type":"string"},"fieldIds":{"type":"array","items":{"type":"string"},"description":"Column ids — include contact:gender, related:groups, custom:…"},"sortKeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"direction":{"type":"string","enum":["asc","desc"]}},"required":["id"],"additionalProperties":false},"maxItems":3,"description":"Sort levels. Example: [{id: related:groups}, {id: dateOfBirth}]"},"sortBy":{"type":"string","description":"First sort field id if sortKeys omitted"},"thenBy":{"type":"string","description":"Second sort field id if sortKeys omitted"},"orientation":{"type":"string","enum":["landscape","portrait"],"default":"landscape"},"format":{"type":"string","enum":["json","csv"],"default":"json"},"sectionHeadings":{"type":"boolean","default":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Generate Roll Check Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_portal_volunteers","title":"People — List Portal Volunteers (PIN)","description":"List People Portal volunteers (PIN login for roll-check sessions) — not runsheet crew or Welcome Desk. Settings → People Portal volunteers.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_volunteers":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Portal Volunteers (PIN)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_create_portal_volunteer","title":"People — Create Portal Volunteer","description":"Create a People Portal volunteer with a new 6-digit PIN — for roll-check / people session access. Requires people:write (owner/admin).","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Volunteer display name"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_volunteer":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Portal Volunteer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_reset_portal_volunteer_pin","title":"People — Reset Portal Volunteer PIN","description":"Reset a People Portal volunteer PIN — generates a new 6-digit PIN unless pin is provided. Requires people:write.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"volunteerName":{"type":"string","description":"For speakToUser"},"pin":{"type":"string","pattern":"^\\d{4,6}$","description":"Optional custom 4–6 digit PIN; otherwise auto-generated"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Reset Portal Volunteer PIN","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_update_portal_volunteer","title":"People — Update Portal Volunteer","description":"Update a People Portal volunteer name or active status (deactivate without deleting history).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"active":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_volunteer":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Update Portal Volunteer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_list_life_event_types","title":"Community — List Life Event Types","description":"List available life event types (baptism, bereavement, marriage, etc.) grouped by category. Use the returned id when logging events.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"life_event_types":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — List Life Event Types","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"community_list_life_events","title":"Community — List Life Events","description":"List recent life events for the organization, newest first. Confidential events are excluded.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"Filter to one contact"},"category":{"type":"string","description":"Filter by category e.g. grief, celebration, health"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"life_events":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — List Life Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"community_log_life_event","title":"Community — Log Life Event","description":"Log a life event for a contact (e.g. bereavement, baptism, new baby). The contact becomes a community member. Grief events automatically create a 1-year anniversary reminder.\n\n**Required scope:** `community:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"eventTypeId":{"type":"string","format":"uuid","description":"From community_list_life_event_types"},"eventDate":{"type":"string","description":"YYYY-MM-DD"},"title":{"type":"string"},"description":{"type":"string"},"relatedPersonName":{"type":"string","description":"e.g. name of deceased or spouse"},"privacyLevel":{"type":"string","enum":["public","team","private"],"description":"Default team"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Log Life Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_pending_followups","title":"Community — Pastoral Follow-Up Radar","description":"Pastoral care radar — due/overdue life-event follow-ups with speakToUser. Confidential events are excluded automatically.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"eligible":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"excluded":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"eligibleCount":{"type":"number"},"excludedCount":{"type":"number"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"count":{"type":"number"},"source":{"type":"string"},"followups":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Pastoral Follow-Up Radar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_list_care_team","title":"Community — List Care Team","description":"List care team roles and current assignments.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"care_team":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — List Care Team","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"community_list_safeguarding_checks","title":"Community — List Safeguarding Checks","description":"List safeguarding checks (DBS etc.) with status and expiry. Read-only compliance overview.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","in_progress","clear","flagged","expired"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"safeguarding_checks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — List Safeguarding Checks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"community_resolve_life_event","title":"Community — Resolve Life Event","description":"Mark a life event as resolved/closed and clear follow-up dates.\n\n**Required scope:** `community:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["resolved","closed"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Resolve Life Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_complete_followup","title":"Community — Complete Life-Event Follow-Up","description":"Mark a life-event follow-up complete (contact_life_events). NOT pastoral CRM notes (people_complete_note_followup) or Welcome Desk tasks (people_complete_follow_up_task).\n\n**Required scope:** `community:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Complete Life-Event Follow-Up","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_funds","title":"Giving — List Funds","description":"List donation funds (e.g. General, Building, Missions) with raised and target amounts.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"activeOnly":{"type":"boolean","description":"Only active funds (default true)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"funds":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Funds","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_list_donations","title":"Giving — List Donations","description":"List donations, newest first. Filter by fund, giver, status, or date range.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"fundId":{"type":"string","format":"uuid"},"giverId":{"type":"string","format":"uuid"},"status":{"type":"string","description":"e.g. completed, pending, refunded, voided"},"fromDate":{"type":"string","description":"YYYY-MM-DD inclusive"},"toDate":{"type":"string","description":"YYYY-MM-DD inclusive"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Donations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_summary","title":"Giving — Summary for Date Range","description":"Giving totals for a date range: total amount, donation count, and per-fund breakdown.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"fromDate":{"type":"string","description":"YYYY-MM-DD inclusive"},"toDate":{"type":"string","description":"YYYY-MM-DD inclusive"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"totals":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Summary for Date Range","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_top_donors","title":"Giving — Top Donors by Amount","description":"Rank top donors by total amount given in a date range. Returns ranked givers with speakToUser — always relay to the user in plain English. Use instead of paginating giving_list_donations.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"fromDate":{"type":"string","description":"YYYY-MM-DD start (default 365 days ago)"},"toDate":{"type":"string","description":"YYYY-MM-DD end (default today)"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"How many top donors (default 10)"},"fundId":{"type":"string","format":"uuid","description":"Limit to one fund"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Top Donors by Amount","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_lapsed_donors","title":"Giving — Lapsed / Inactive Donors","description":"List donors whose last completed gift was before a cutoff — inactive / lapsed givers. Returns speakToUser — always relay to the user. Use instead of paginating giving_list_donations.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"daysSinceLastGift":{"type":"integer","minimum":30,"maximum":730,"description":"Days without a completed gift (default 90)"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max lapsed donors returned (default 25)"},"fundId":{"type":"string","format":"uuid","description":"Limit to one fund"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Lapsed / Inactive Donors","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_search_givers","title":"Giving — Search Givers","description":"Search givers by name or email.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"routes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"nextStep":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Search Givers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_donation","title":"Giving — Get Donation","description":"Get one donation by ID with fund and giver context.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"donationId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Donation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_batches","title":"Giving — List Batches","description":"List donation import/counting batches for reconciliation.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"batches":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Batches","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_list_counting_sessions","title":"Giving — List Counting Sessions","description":"List offering/cash counting sessions (who counted, when, totals). Use when the user asks who did the count today, which volunteer counted, or for counting session history. Prefer this over dashboard API invoke.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"dateFrom":{"type":"string","description":"YYYY-MM-DD or ISO — filter sessions started on/after this time"},"dateTo":{"type":"string","description":"YYYY-MM-DD or ISO — filter sessions started on/before this time"},"status":{"type":"string","enum":["open","ended","auto_ended"],"description":"Optional session status filter"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Limit"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counting_sessions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Counting Sessions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_counting_session","title":"Giving — Get Counting Session","description":"Get one counting session by ID, including the volunteer who counted and session totals.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid","description":"Session ID"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counting_session":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Counting Session","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_record_donation","title":"Giving — Record Manual Donation","description":"Record an offline donation already received (cash, cheque, bank transfer, or card taken outside sendifai). Does NOT charge a card — use giving_process_card_donation for Stripe card payments, or giving_list_donate_pages to share a public donate link. Requires fund id (giving_list_funds) and giverId, contactId, or isAnonymous=true.\n\n**Required scope:** `giving:write`.\n\n**API reference:** Dashboard equivalent: validated `POST /api/giving/donations` path with usage limits.","inputSchema":{"type":"object","properties":{"fundId":{"type":"string","format":"uuid"},"amount":{"type":"number","minimum":1,"description":"Donation amount, e.g. 50.00"},"currency":{"type":"string","description":"Default org currency, e.g. GBP"},"giverId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid","description":"Link to a contact — a giver record is created if needed"},"isAnonymous":{"type":"boolean"},"paymentMethod":{"type":"string","enum":["cash","cheque","bank_transfer","card","standing_order","other"],"description":"Default cash"},"donationDate":{"type":"string","description":"YYYY-MM-DD, default today"},"notes":{"type":"string"},"sendReceipt":{"type":"boolean","description":"Email an org-branded receipt to the giver (church logo, no sendifai footer)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Record Manual Donation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_donate_pages","title":"Giving — List Public Donate Pages","description":"List public online donate pages with shareable URLs. When an agent cannot collect card details safely, send the donor a published page URL instead of asking for card numbers in chat.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"publishedOnly":{"type":"boolean","description":"When true (default), only published pages with live URLs"},"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"note":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Public Donate Pages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_create_fund","title":"Giving — Create Fund","description":"Create a new giving fund.\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"isDefault":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"fund":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Fund","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_deactivate_fund","title":"Giving — Deactivate Fund","description":"Archive (deactivate) a giving fund — soft delete via is_active=false. Pass fundId from giving_list_funds or exact fund name.\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"fundId":{"type":"string","format":"uuid","description":"Fund UUID from giving_list_funds"},"name":{"type":"string","minLength":1,"description":"Exact fund name when fundId is unknown"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Deactivate Fund","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_fund","title":"Giving — Update Fund","description":"Update a giving fund name or description. Archived funds can be renamed (slug updates too) — names are not permanently locked.\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"fundId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"description":"Current fund name when fundId unknown"},"newName":{"type":"string","minLength":1},"description":{"type":"string"},"reactivate":{"type":"boolean","description":"Set is_active=true when reactivating an archived fund"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"fund":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Fund","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_pledge","title":"Giving — Create Pledge","description":"Create a recurring or one-off giving pledge for a giver or contact. Requires fundId (giving_list_funds), amount, and frequency (weekly, fortnightly, monthly, quarterly, annually, one_off).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"fundId":{"type":"string","format":"uuid","description":"UUID from giving_list_funds"},"amount":{"type":"number","minimum":1,"description":"Pledge amount in major units"},"frequency":{"type":"string","enum":["weekly","fortnightly","monthly","quarterly","annually","one_off"],"description":"Frequency"},"giverId":{"type":"string","format":"uuid","description":"Existing giver UUID"},"contactId":{"type":"string","format":"uuid","description":"CRM contact — giver created if needed"},"currency":{"type":"string","description":"Default org currency"},"startDate":{"type":"string","description":"YYYY-MM-DD"},"endDate":{"type":"string","description":"YYYY-MM-DD"},"paymentMethod":{"type":"string","description":"e.g. standing_order, card"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pledge":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Pledge","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_refund_donation","title":"Giving — Refund Online Donation","description":"Refund a card or online donation via Stripe, PayPal, or GoCardless (same path as Giving dashboard). Cannot refund cash/cheque recorded offline — use giving_record_donation adjustments in dashboard instead.\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"donationId":{"type":"string","format":"uuid","description":"UUID from giving_list_donations or giving_get_donation"},"reason":{"type":"string","description":"Optional refund reason for audit trail"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donation":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Refund Online Donation","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_get_gift_aid_status","title":"Giving — Gift Aid Status","description":"Check whether a donor has an active Gift Aid declaration and a complete UK address on file. Use before recording Gift Aid eligible donations.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"CRM contact UUID"},"giverId":{"type":"string","format":"uuid","description":"Giving giver UUID"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hasActiveDeclaration":{"type":"boolean"},"hasAddressOnFile":{"type":"boolean"},"giftAidEligible":{"type":"boolean"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Gift Aid Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_create_gift_aid_declaration","title":"Giving — Record Gift Aid Declaration","description":"Record a UK Gift Aid declaration for a giver or contact. Requires UK address line 1 and postcode (from contact profile or provided explicitly).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid","description":"CRM contact UUID"},"giverId":{"type":"string","format":"uuid","description":"Giving giver UUID"},"addressLine1":{"type":"string","description":"UK address — uses contact/giver profile when omitted"},"addressLine2":{"type":"string","description":"Address line 2"},"city":{"type":"string","description":"City"},"postcode":{"type":"string","description":"UK postcode — required if not on profile"},"country":{"type":"string","description":"Default GB"},"declarationText":{"type":"string","description":"Declaration text"},"declarationMethod":{"type":"string","description":"e.g. online, paper, verbal"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"declaration":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Record Gift Aid Declaration","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_settings","title":"Giving — Get Settings","description":"Giving module settings (GET /api/giving/settings).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_settings","title":"Giving — Update Settings","description":"Update giving settings (PUT/PATCH /api/giving/settings).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_stripe_connect_status","title":"Giving — Get Stripe Connect Status","description":"Stripe Connect status for Giving/donations (org-level). For pastor book or Media Hub store sales use store_get_stripe_connect_status on the speaker shop — separate Connect account.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stripe_connect_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Stripe Connect Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_onboard_stripe_connect","title":"Giving — Onboard Stripe Connect","description":"Onboard Stripe Connect for church donations and offerings (Giving module). Not for pastor book or media storefronts.\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Onboard Stripe Connect","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_disconnect_stripe_connect","title":"Giving — Disconnect Stripe Connect","description":"Disconnect Stripe Connect (DELETE /api/giving/stripe-connect/disconnect).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Disconnect Stripe Connect","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_paypal_status","title":"Giving — Get PayPal Status","description":"PayPal connection status (GET /api/giving/paypal/status).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"refresh":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"paypal_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get PayPal Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_connect_paypal","title":"Giving — Connect PayPal","description":"Connect PayPal (POST /api/giving/paypal/connect).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Connect PayPal","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_disconnect_paypal","title":"Giving — Disconnect PayPal","description":"Disconnect PayPal (POST /api/giving/paypal/disconnect).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Disconnect PayPal","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_connect_gocardless","title":"Giving — Connect Gocardless","description":"Connect GoCardless (POST /api/giving/connect/gocardless).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Connect Gocardless","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_disconnect_gocardless","title":"Giving — Disconnect Gocardless","description":"Disconnect GoCardless (POST /api/giving/connect/gocardless/disconnect).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Disconnect Gocardless","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_sites","title":"Giving — List Sites","description":"Giving lens sites filter (GET /api/giving/sites).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sites":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Sites","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_intelligence","title":"Giving — Get Intelligence","description":"Giving intelligence panel (GET /api/giving/intelligence).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"lens":{"type":"string"},"siteId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"intelligence":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Intelligence","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_report_summary_api","title":"Giving — Get Report Summary API","description":"Dashboard summary report (GET /api/giving/reports/summary). Complements giving_summary.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"},"description":"Lens, date range, site filters"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_summary_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report Summary API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_donations_api","title":"Giving — List Donations API","description":"List donations via dashboard API with filters (GET /api/giving/donations).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donations_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Donations API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_update_donation_api","title":"Giving — Update Donation API","description":"Update donation fields (PATCH /api/giving/donations/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"donationId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donation_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Donation API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_void_donation","title":"Giving — Void Donation","description":"Void a donation (POST /api/giving/donations/{id}/void).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"donationId":{"type":"string","format":"uuid"},"reason":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Void Donation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_check_donation_duplicate","title":"Giving — Check Donation Duplicate","description":"Duplicate donation check (POST /api/giving/donations/duplicate-check).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Check Donation Duplicate","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_delete_donation_api","title":"Giving — Delete Donation API","description":"Soft-delete donation from batch (POST /api/giving/donations/{id}/delete).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"donationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Delete Donation API","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_list_givers_api","title":"Giving — List Givers API","description":"List/search givers (GET /api/giving/givers). Complements giving_search_givers.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"givers_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Givers API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_giver_api","title":"Giving — Get Giver API","description":"Giver profile detail (GET /api/giving/givers/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"giverId":{"type":"string","format":"uuid"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"giver_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Giver API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_giver_api","title":"Giving — Create Giver API","description":"Create giver (POST /api/giving/givers).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"giver_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Giver API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_donor_statement","title":"Giving — Get Donor Statement","description":"Donor annual statement (GET /api/giving/donors/{giverId}/statement).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"giverId":{"type":"string","format":"uuid"},"taxYear":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donor_statement":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Donor Statement","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_bulk_update_funds","title":"Giving — Bulk Update Funds","description":"Bulk fund operations (POST /api/giving/funds/bulk).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"fund":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Bulk Update Funds","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_batches_api","title":"Giving — List Batches API","description":"List donation batches (GET /api/giving/batches).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"batches_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Batches API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_batch_api","title":"Giving — Get Batch API","description":"Batch detail with donations (GET /api/giving/batches/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"batchId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"batch_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Batch API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_batch","title":"Giving — Create Batch","description":"Create donation batch (POST /api/giving/batches).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"batch":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Batch","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_close_batch","title":"Giving — Close Batch","description":"Close a donation batch (PUT /api/giving/batches/{id} action close).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"batchId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Close Batch","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_import_batch_csv","title":"Giving — Import Batch Csv","description":"Import CSV into batch (POST /api/giving/batches/{id}/import).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"batchId":{"type":"string","format":"uuid"},"csvText":{"type":"string"},"createDonations":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Import Batch Csv","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_reconciliation_status","title":"Giving — Get Reconciliation Status","description":"Bank reconciliation status (GET /api/giving/reconciliation).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"reconciliation_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Reconciliation Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_upload_reconciliation","title":"Giving — Upload Reconciliation","description":"Upload bank statement for reconciliation (POST /api/giving/reconciliation/upload).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Upload Reconciliation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_match_reconciliation","title":"Giving — Match Reconciliation","description":"Match reconciliation transactions (POST/PATCH /api/giving/reconciliation/match).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"method":{"type":"string","enum":["POST","PATCH"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Match Reconciliation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_delete_reconciliation_batch","title":"Giving — Delete Reconciliation Batch","description":"Delete reconciliation upload batch (DELETE /api/giving/reconciliation/batch/{batchId}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"batchId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Delete Reconciliation Batch","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_export_reconciliation","title":"Giving — Export Reconciliation","description":"Export reconciliation CSV (GET /api/giving/reconciliation/export).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Export Reconciliation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_counting_sessions_api","title":"Giving — List Counting Sessions API","description":"List counting sessions via API (GET /api/giving/counting-sessions).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counting_sessions_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Counting Sessions API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_counting_session_api","title":"Giving — Get Counting Session API","description":"Counting session detail (GET /api/giving/counting-sessions/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counting_session_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Counting Session API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_unlock_counting_session","title":"Giving — Unlock Counting Session","description":"Unlock/reopen counting session (POST /api/giving/counting-sessions/{id}/unlock-reopen).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Unlock Counting Session","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_resend_counting_session_email","title":"Giving — Resend Counting Session Email","description":"Resend count session summary email (POST /api/giving/counting-sessions/{id}/resend-email).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Resend Counting Session Email","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_counting_session_domain_status","title":"Giving — Get Counting Session Domain Status","description":"Count custom domain status (GET /api/giving/counting-sessions/{id}/domain-status).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counting_session_domain_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Counting Session Domain Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_list_count_volunteers","title":"Giving — List Count Volunteers","description":"List count volunteers (GET /api/giving/count-volunteers).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_volunteers":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Count Volunteers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_create_count_volunteer","title":"Giving — Create Count Volunteer","description":"Create count volunteer (POST /api/giving/count-volunteers).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_volunteer":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Count Volunteer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_reset_count_volunteer_pin","title":"Giving — Reset Count Volunteer Pin","description":"Reset count volunteer PIN (POST /api/giving/count-volunteers/{id}/reset-pin).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Reset Count Volunteer Pin","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_count_volunteer","title":"Giving — Update Count Volunteer","description":"Update count volunteer (PUT/PATCH /api/giving/count-volunteers/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_volunteer":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Count Volunteer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_delete_count_volunteer","title":"Giving — Delete Count Volunteer","description":"Delete count volunteer (DELETE /api/giving/count-volunteers/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Delete Count Volunteer","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_get_count_settings","title":"Giving — Get Count Settings","description":"Count module settings (GET /api/giving/count-settings).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Count Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_count_settings","title":"Giving — Update Count Settings","description":"Update count settings (PATCH /api/giving/count-settings).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Count Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_count_custom_domain","title":"Giving — Get Count Custom Domain","description":"Count custom domain config (GET /api/organizations/count-custom-domain).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_custom_domain":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Count Custom Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_count_custom_domain","title":"Giving — Update Count Custom Domain","description":"Update count custom domain (PUT /api/organizations/count-custom-domain).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_custom_domain":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Count Custom Domain","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_donate_subdomain_slug","title":"Giving — Get Donate Subdomain Slug","description":"Public donate/count subdomain slug (GET /api/organizations/donate-subdomain-slug).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_subdomain_slug":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Donate Subdomain Slug","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_donate_pages_api","title":"Giving — List Donate Pages API","description":"List donate pages via API (GET /api/giving/donate-pages).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_pages_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Donate Pages API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_donate_page_api","title":"Giving — Get Donate Page API","description":"Donate page detail (GET /api/giving/donate-pages/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"pageId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_page_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Donate Page API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_donate_page","title":"Giving — Create Donate Page","description":"Create donate page (POST /api/giving/donate-pages).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_page":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Donate Page","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_donate_page","title":"Giving — Update Donate Page","description":"Update donate page (PUT/PATCH /api/giving/donate-pages/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"pageId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_page":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Donate Page","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_donate_page_analytics","title":"Giving — Get Donate Page Analytics","description":"Donate page analytics (GET /api/giving/donate-pages/{id}/analytics).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"pageId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_page_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Donate Page Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_donate_page_domain_status","title":"Giving — Get Donate Page Domain Status","description":"Donate page custom domain status (GET /api/giving/donate-pages/{id}/domain-status).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"pageId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"donate_page_domain_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Donate Page Domain Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_generate_donate_page_ai","title":"Giving — Generate Donate Page AI","description":"AI donate page copy (POST /api/giving/donate-pages/ai).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Generate Donate Page AI","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_reports","title":"Giving — List Reports","description":"List generated reports (GET /api/giving/reports).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"reports":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Reports","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_create_report","title":"Giving — Create Report","description":"Generate report from builder (POST /api/giving/reports).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Report","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_report_data","title":"Giving — Get Report Data","description":"Report viewer data (GET /api/giving/reports/{id}/data).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"reportId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_data":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report Data","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_download_report","title":"Giving — Download Report","description":"Download report export (POST /api/giving/reports/{id}/download).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"reportId":{"type":"string","format":"uuid"},"format":{"type":"string","enum":["pdf","csv","excel"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Download Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_share_report","title":"Giving — Share Report","description":"Create shareable report link (POST /api/giving/reports/{id}/share).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"reportId":{"type":"string","format":"uuid"},"expiryDays":{"type":"integer","minimum":1,"maximum":365},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Share Report","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_drilldown_report","title":"Giving — Drilldown Report","description":"Report drilldown dimension (POST /api/giving/reports/{id}/drilldown).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"reportId":{"type":"string","format":"uuid"},"dimension":{"type":"string"},"value":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Drilldown Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_report_by_fund","title":"Giving — Get Report By Fund","description":"By-fund report slice (GET /api/giving/reports/by-fund).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_by_fund":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report By Fund","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_report_by_giver","title":"Giving — Get Report By Giver","description":"By-giver report slice (GET /api/giving/reports/by-giver).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_by_giver":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report By Giver","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_report_trends","title":"Giving — Get Report Trends","description":"Giving trends report (GET /api/giving/reports/trends).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_trends":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report Trends","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_report_pledges_api","title":"Giving — Get Report Pledges API","description":"Pledges report slice (GET /api/giving/reports/pledges).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_pledges_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report Pledges API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_report_templates","title":"Giving — List Report Templates","description":"List report templates (GET /api/giving/reports/templates).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Report Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_report_template","title":"Giving — Get Report Template","description":"Get report template (GET /api/giving/reports/templates/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report Template","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_report_template","title":"Giving — Create Report Template","description":"Create/save report template (POST /api/giving/reports/templates).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Report Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_report_template","title":"Giving — Update Report Template","description":"Update report template (PUT /api/giving/reports/templates/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Report Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_duplicate_report_template","title":"Giving — Duplicate Report Template","description":"Duplicate report template (POST /api/giving/reports/templates/{id}/duplicate).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Duplicate Report Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_delete_report_template","title":"Giving — Delete Report Template","description":"Delete report template (DELETE /api/giving/reports/templates/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Delete Report Template","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_run_report_template","title":"Giving — Run Report Template","description":"Run template to generate report (POST /api/giving/reports/templates/{id}/run).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Run Report Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_report_schedules","title":"Giving — List Report Schedules","description":"List report schedules (GET /api/giving/reports/schedules).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_schedules":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Report Schedules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_report_schedule","title":"Giving — Get Report Schedule","description":"Get report schedule (GET /api/giving/reports/schedules/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"scheduleId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_schedule":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Report Schedule","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_report_schedule","title":"Giving — Create Report Schedule","description":"Create report schedule (POST /api/giving/reports/schedules).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_schedule":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Report Schedule","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_report_schedule","title":"Giving — Update Report Schedule","description":"Update report schedule (PUT /api/giving/reports/schedules/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"scheduleId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_schedule":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Report Schedule","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_seed_report_templates","title":"Giving — Seed Report Templates","description":"Seed system report templates (POST /api/giving/reports/templates/seed).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Seed Report Templates","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_gift_aid_settings","title":"Giving — Get Gift Aid Settings","description":"Gift Aid settings (GET /api/giving/gift-aid/settings).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Gift Aid Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_update_gift_aid_settings","title":"Giving — Update Gift Aid Settings","description":"Update Gift Aid settings (PUT /api/giving/gift-aid/settings).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Update Gift Aid Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_gift_aid_declarations","title":"Giving — List Gift Aid Declarations","description":"List Gift Aid declarations (GET /api/giving/gift-aid/declarations).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_declarations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Gift Aid Declarations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_list_gift_aid_donations","title":"Giving — List Gift Aid Donations","description":"Gift Aid eligible donations (GET /api/giving/gift-aid/donations).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_donations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Gift Aid Donations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_gift_aid_statutory_summary","title":"Giving — Get Gift Aid Statutory Summary","description":"HMRC statutory summary (GET /api/giving/gift-aid/statutory-summary).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_statutory_summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Gift Aid Statutory Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_gift_aid_claims","title":"Giving — List Gift Aid Claims","description":"List Gift Aid claims (GET /api/giving/gift-aid/claims).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_claims":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Gift Aid Claims","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_create_gift_aid_claim","title":"Giving — Create Gift Aid Claim","description":"Create Gift Aid claim (POST /api/giving/gift-aid/claims).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_claim":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create Gift Aid Claim","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_submit_gift_aid_claim","title":"Giving — Submit Gift Aid Claim","description":"Submit claim to HMRC (POST /api/giving/gift-aid/claims/{id}/submit).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"claimId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Submit Gift Aid Claim","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_poll_gift_aid_claim","title":"Giving — Poll Gift Aid Claim","description":"Poll HMRC claim status (POST /api/giving/gift-aid/claims/{id}/poll).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"claimId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Poll Gift Aid Claim","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_gift_aid_claim","title":"Giving — Get Gift Aid Claim","description":"Get Gift Aid claim detail (GET /api/giving/gift-aid/claims/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"claimId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_claim":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Gift Aid Claim","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_delete_gift_aid_claim","title":"Giving — Delete Gift Aid Claim","description":"Delete Gift Aid claim (DELETE /api/giving/gift-aid/claims/{id}).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"claimId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Delete Gift Aid Claim","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_get_gift_aid_recovery","title":"Giving — Get Gift Aid Recovery","description":"Gift Aid recovery queue (GET /api/giving/gift-aid/recovery).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gift_aid_recovery":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Gift Aid Recovery","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_fix_gift_aid_recovery_address","title":"Giving — Fix Gift Aid Recovery Address","description":"Fix address for Gift Aid recovery (POST /api/giving/gift-aid/recovery/fix-address).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Fix Gift Aid Recovery Address","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_send_gift_aid_recovery_request","title":"Giving — Send Gift Aid Recovery Request","description":"Send Gift Aid recovery request email (POST /api/giving/gift-aid/recovery/send-request).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Send Gift Aid Recovery Request","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_list_statements","title":"Giving — List Statements","description":"List generated statements (GET /api/giving/statements).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"taxYear":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"statements":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Statements","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_generate_statement","title":"Giving — Generate Statement","description":"Generate statement (POST /api/giving/statements/generate).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Generate Statement","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_send_statements","title":"Giving — Send Statements","description":"Email statements to givers (POST /api/giving/statements/send).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Send Statements","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_statement","title":"Giving — Get Statement","description":"Get statement by id (GET /api/giving/statements/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"statementId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"statement":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Statement","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_pledges_api","title":"Giving — List Pledges API","description":"List pledges via API (GET /api/giving/pledges). Complements giving_list_pledges.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pledges_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Pledges API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_get_pledge_api","title":"Giving — Get Pledge API","description":"Pledge detail (GET /api/giving/pledges/{id}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"pledgeId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pledge_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Pledge API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_pause_pledge","title":"Giving — Pause Pledge","description":"Pause pledge (POST /api/giving/pledges/{id}/pause).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"pledgeId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Pause Pledge","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_resume_pledge","title":"Giving — Resume Pledge","description":"Resume pledge (POST /api/giving/pledges/{id}/resume).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"pledgeId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Resume Pledge","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_cancel_pledge","title":"Giving — Cancel Pledge","description":"Cancel pledge (POST /api/giving/pledges/{id}/cancel).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"pledgeId":{"type":"string","format":"uuid"},"reason":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Cancel Pledge","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_preview_import","title":"Giving — Preview Import","description":"Preview donation import (POST /api/giving/import/preview).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Preview Import","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_execute_import","title":"Giving — Execute Import","description":"Execute donation import (POST /api/giving/import/execute).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Execute Import","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_import_csv","title":"Giving — Import Csv","description":"Import donations CSV (POST /api/giving/import/csv).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Import Csv","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_rollback_import","title":"Giving — Rollback Import","description":"Rollback import batch (POST /api/giving/import/rollback).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Rollback Import","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_count_bank_review","title":"Giving — Get Count Bank Review","description":"Count bank review queue (GET /api/count/bank-review).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_bank_review":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Count Bank Review","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_list_count_funds","title":"Giving — List Count Funds","description":"Funds in count volunteer context (GET /api/count/funds).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_funds":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Count Funds","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_upload_count_bank_review","title":"Giving — Upload Count Bank Review","description":"Upload bank statement in count context (POST /api/count/bank-review).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Upload Count Bank Review","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_count_bank_review_batch","title":"Giving — Get Count Bank Review Batch","description":"Bank review batch detail (GET /api/count/bank-review/batch/{batchId}).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"batchId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_bank_review_batch":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Count Bank Review Batch","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_count_bank_review_action","title":"Giving — Count Bank Review Action","description":"Bank review transaction action (POST /api/count/bank-review/{id}/action).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"transactionId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Count Bank Review Action","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_assign_count_bank_review","title":"Giving — Assign Count Bank Review","description":"Assign bank review transaction (POST /api/count/bank-review/{id}/assign).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"transactionId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Assign Count Bank Review","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_count_summary_email","title":"Giving — Get Count Summary Email","description":"Count session email summary preview (GET /api/count/summary/{sessionId}/email-summary).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_summary_email":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Count Summary Email","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_counting_session_pdf","title":"Giving — Get Counting Session Pdf","description":"Counting session PDF export (GET /api/giving/counting-sessions/{id}/pdf).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"counting_session_pdf":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Counting Session Pdf","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_get_count_summary_pdf","title":"Giving — Get Count Summary Pdf","description":"Count session summary PDF (GET /api/count/summary/{sessionId}/pdf).\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"count_summary_pdf":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Get Count Summary Pdf","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_create_paypal_order","title":"Giving — Create PayPal Order","description":"Create PayPal order for donate flow (POST /api/giving/paypal/orders).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"paypal_order":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Create PayPal Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"giving_capture_paypal_order","title":"Giving — Capture PayPal Order","description":"Capture PayPal order (POST /api/giving/paypal/orders/{orderId}/capture).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"orderId":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Capture PayPal Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_list_automations","title":"Grow — List Automations","description":"List automation flows (funnels) with status and enrollment stats. Rows include aiVariationEnabled when flow_definition is scanned.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","active","paused","archived"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"automations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List Automations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_get_automation","title":"Grow — Get Automation","description":"Get one automation flow including its node graph (flow_definition).\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Get Automation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_set_automation_status","title":"Grow — Set Automation Status","description":"Activate or pause automation flow(s). Pause uses a fast direct path (no pre-pause needed before grow_delete_automation). Use pauseAll:true to pause every non-platform automation. Activation runs messaging credit preflight.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid","description":"One automation id — omit when pauseAll is true"},"status":{"type":"string","enum":["active","paused"]},"pauseAll":{"type":"boolean","description":"When status is paused, pause every automation except platform-managed flows"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"paused":{"type":"array","items":{"type":"string"}},"skipped":{"type":"array","items":{"type":"string"}},"alreadyPaused":{"type":"array","items":{"type":"string"}},"creditPreflight":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Set Automation Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"grow_list_forms","title":"Grow — List Forms","description":"List forms with view and submission counts.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","published","archived"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"forms":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List Forms","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_list_form_submissions","title":"Grow — List Form Submissions","description":"List recent submissions for a form, including submitted data.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"formId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"form_submissions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List Form Submissions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_list_landing_pages","title":"Grow — List Landing Pages","description":"List landing pages with visit and conversion stats.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","published","archived"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"landing_pages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List Landing Pages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_list_campaigns","title":"Grow — List Campaigns","description":"List email campaigns with send/open/click stats.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"e.g. draft, scheduled, sending, sent"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"campaigns":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List Campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_create_landing_page","title":"Grow — Create Landing Page (AI)","description":"Create a draft landing page from a text prompt (AI-generated content blocks).\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1},"pageName":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"landing_page":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Create Landing Page (AI)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_publish_landing_page","title":"Grow — Publish Landing Page","description":"Publish a landing page so it is live at its public URL.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"pageId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Publish Landing Page","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_enroll_contact","title":"Grow — Enroll Contact","description":"Enroll a contact into an automation flow.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Enroll Contact","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_create_campaign","title":"Grow — Create Campaign","description":"Create a draft email campaign. Optionally attach segmentId or contactIds for the audience before preview/send.\n\n**Required scope:** `grow:write`.\n\n**API reference:** Dashboard equivalent: `POST /api/campaigns` (draft).","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"html":{"type":"string"},"text":{"type":"string"},"segmentId":{"type":"string","format":"uuid"},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Create Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_explain_ai_variation","title":"Grow — Explain Funnel AI Variation & Cost","description":"Explain funnel AI variation — per-recipient wording rewrites at send time (NOT A/B tests). Returns personalization_ai cost estimate when recipientCountPerRun is provided. Read sendifai://docs/funnel-ai-variation.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid","description":"Inspect an existing flow — omit for general product explanation"},"recipientCountPerRun":{"type":"integer","minimum":1,"description":"Congregation size per trigger (e.g. 500 subscribed contacts)"},"runsPerWeek":{"type":"number","minimum":0.1,"maximum":14,"default":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Explain Funnel AI Variation & Cost","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_create_automation","title":"Grow — Create Automation Flow","description":"Create an automation flow in Grow → Funnels. For per-person wording (not A/B), set enableAiVariation:true — uses personalization_ai credits per recipient. Service reminders from Community → Services default AI variation on. Read sendifai://docs/funnel-ai-variation before congregation-wide sends.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000},"triggerType":{"type":"string","enum":["time_based","event_based","segment_based","signup","purchase","abandoned_cart","custom"]},"triggerConfig":{"type":"object","additionalProperties":true,"description":"Trigger JSON — e.g. schedule, event, segment_id"},"flowDefinition":{"type":"object","additionalProperties":true,"description":"Node graph — defaults to empty nodes/edges if omitted"},"enableAiVariation":{"type":"boolean","description":"Set aiHumanVariation:true on all email nodes — per-recipient AI rewrite at send (personalization_ai credits each email). NOT A/B testing."},"aiVariationConfig":{"type":"object","properties":{"intensity":{"type":"string","enum":["subtle","balanced","expressive"]},"tone":{"type":"string","enum":["org_default","warm_pastoral","friendly_casual","professional"]},"varySubject":{"type":"boolean"},"varyBody":{"type":"boolean"},"customInstructions":{"type":"string","maxLength":500}},"additionalProperties":false},"recipientCountPerRun":{"type":"integer","minimum":1,"description":"For cost advisory in response — e.g. congregation size"},"runsPerWeek":{"type":"number","minimum":0.1,"maximum":14,"default":1},"status":{"type":"string","enum":["draft","active","paused"],"default":"draft"},"channel":{"type":"string","enum":["email","sms","whatsapp","push"],"default":"email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Create Automation Flow","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_update_automation","title":"Grow — Update Automation Flow","description":"Update an automation — name, trigger, flow graph, or enableAiVariation. For activate/pause only after a flow edit, use grow_set_automation_status instead (faster, same credit preflight).\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000},"triggerType":{"type":"string","enum":["time_based","event_based","segment_based","signup","purchase","abandoned_cart","custom"]},"triggerConfig":{"type":"object","additionalProperties":true},"flowDefinition":{"type":"object","additionalProperties":true},"enableAiVariation":{"type":"boolean","description":"Toggle aiHumanVariation on all email nodes. Loads existing flow_definition when omitted — no need to pass the full graph."},"aiVariationConfig":{"type":"object","properties":{"intensity":{"type":"string","enum":["subtle","balanced","expressive"]},"tone":{"type":"string","enum":["org_default","warm_pastoral","friendly_casual","professional"]},"varySubject":{"type":"boolean"},"varyBody":{"type":"boolean"},"customInstructions":{"type":"string","maxLength":500}},"additionalProperties":false},"recipientCountPerRun":{"type":"integer","minimum":1},"runsPerWeek":{"type":"number","minimum":0.1,"maximum":14},"status":{"type":"string","enum":["draft","active","paused","archived"]},"channel":{"type":"string","enum":["email","sms","whatsapp","push"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Update Automation Flow","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_create_weekly_email","title":"Grow — Create Weekly Email Automation","description":"Create an active weekly email automation to one recipient (e.g. every Friday 9am to info@htay.co.uk). Appears in Grow → Automations. Recipient must exist as a CRM contact. For shared family emails, pass recipientName or recipientContactId.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Automation name shown in Grow → Automations"},"recipientEmail":{"type":"string","format":"email","description":"Recipient email — must match a CRM contact"},"recipientName":{"type":"string","description":"Disambiguate when multiple contacts share the same email (e.g. Henry Taylor)"},"recipientContactId":{"type":"string","format":"uuid","description":"Explicit CRM contact id when email is shared across household contacts"},"subject":{"type":"string","minLength":1,"description":"Email subject line"},"htmlBody":{"type":"string","minLength":1,"description":"Email HTML body"},"dayOfWeek":{"type":"integer","minimum":0,"maximum":6,"description":"0=Sunday … 5=Friday, 6=Saturday. Default 5 (Friday)."},"sendHour":{"type":"integer","minimum":0,"maximum":23,"description":"Hour in org timezone (0–23). Default 9."},"timezone":{"type":"string","description":"IANA timezone — defaults to org timezone"},"preheader":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"weekly_email":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Create Weekly Email Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_delete_automation","title":"Grow — Permanently Delete Automation","description":"Permanently delete automation flow(s). Active flows are paused and removed automatically — no separate pause step. Skips platform-managed flows (e.g. birthday digest). Use deleteAll to remove every deletable automation in the org.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid","description":"Automation id — omit when deleteAll is true"},"deleteAll":{"type":"boolean","description":"Delete every automation except platform-managed flows (e.g. birthday digest)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Permanently Delete Automation","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"grow_get_birthday_digest_settings","title":"Grow — Get Birthday Digest Settings","description":"Read daily birthday digest settings: enabled, sendHour, recipientEmail, recipientGroupId, recipientGroupName. Use grow_update_birthday_digest_settings to send to a CRM group.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"birthday_digest_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Get Birthday Digest Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_update_birthday_digest_settings","title":"Grow — Update Birthday Digest Settings","description":"Configure the platform daily birthday digest (system automation). Set recipientGroupId to fan out to every CRM group member with email — each gets a personalized greeting using their title/prefix. Clears single-email recipient when group is set.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Turn daily digest on or off"},"sendHour":{"type":"integer","minimum":0,"maximum":23,"description":"Local hour 0–23 in org timezone"},"recipientEmail":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"email"}]},{"type":"null"}],"description":"Single recipient email (omit when using recipientGroupId)"},"recipientName":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":200}]},{"type":"null"}],"description":"Greeting name for single-recipient mode"},"recipientGroupId":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string","format":"uuid"}]},{"type":"null"}],"description":"CRM group UUID — digest sent to each member with email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"birthday_digest_setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Update Birthday Digest Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_list_community_automations","title":"Grow — List Community Automations","description":"List automations with Community lens stats (GET /api/automations?community_only=true). Community → Automations page parity.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","active","paused","archived"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"community_automations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List Community Automations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_duplicate_automation","title":"Grow — Duplicate Automation","description":"Duplicate an automation flow (POST /api/automations/{id}/duplicate).\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Duplicate Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_delete_campaign","title":"Grow — Delete Email Campaign","description":"Permanently remove a email campaign — same as dashboard delete (not pause/archive).\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Delete Email Campaign","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"grow_delete_form","title":"Grow — Delete Form","description":"Permanently remove a form — same as dashboard delete (not pause/archive).\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"formId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Delete Form","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"grow_delete_landing_page","title":"Grow — Delete Landing Page","description":"Permanently remove a landing page — same as dashboard delete (not pause/archive).\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"landingPageId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Delete Landing Page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_delete_segment","title":"People — Delete Segment","description":"Permanently remove a segment — same as dashboard delete (not pause/archive).\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Delete Segment","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"channels_delete_sms_campaign","title":"Channels — Delete SMS Campaign","description":"Permanently remove a SMS campaign — same as dashboard delete (not pause/archive).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Delete SMS Campaign","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"channels_delete_whatsapp_campaign","title":"Channels — Delete WhatsApp Campaign","description":"Permanently remove a WhatsApp campaign — same as dashboard delete (not pause/archive).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Delete WhatsApp Campaign","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"mediahub_delete_media_item","title":"Media Hub — Delete Media Item","description":"Permanently remove a media item — same as dashboard delete (not pause/archive).\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Delete Media Item","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"templates_delete_email_template","title":"Templates — Delete Email Template","description":"Permanently remove a email template — same as dashboard delete (not pause/archive).\n\n**Required scope:** `templates:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Delete Email Template","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"ticketing_delete_ticket_type","title":"Ticketing — Delete Ticket Type","description":"Permanently remove a ticket type with zero sales (deactivate via ticketing_update_ticket_type if tickets were sold) — same as dashboard delete (not pause/archive).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"ticketTypeId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Delete Ticket Type","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_delete_song","title":"Runsheet — Delete Song","description":"Permanently remove a song — same as dashboard delete (not pause/archive).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"songId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Song","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_remove_team_member","title":"Runsheet — Remove Team Member","description":"Permanently remove a runsheet team member — same as dashboard delete (not pause/archive).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"memberId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Remove Team Member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_delete_room","title":"Spaces — Delete Room","description":"Permanently remove a room — same as dashboard delete (not pause/archive).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Delete Room","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"live_delete_stream","title":"Live — Delete Stream","description":"Permanently remove a live stream — same as dashboard delete (not pause/archive).\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Delete Stream","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"live_delete_destination","title":"Live — Delete Destination","description":"Permanently remove a live destination — same as dashboard delete (not pause/archive).\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"destinationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Delete Destination","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"live_delete_poll","title":"Live — Delete Poll","description":"Permanently remove a live poll — same as dashboard delete (not pause/archive).\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"pollId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Delete Poll","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"giving_delete_donate_page","title":"Giving — Delete Donate Page","description":"Permanently remove a donate page — same as dashboard delete (not pause/archive).\n\n**Required scope:** `giving:write`.","inputSchema":{"type":"object","properties":{"donatePageId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — Delete Donate Page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_delete_portal_volunteer","title":"People — Delete Portal Volunteer","description":"Permanently delete a portal volunteer (welcome desk PIN user). Fails if they have session history — deactivate with people_update_portal_volunteer instead.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"volunteerId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Delete Portal Volunteer","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"spaces_list_rooms","title":"Spaces — List Rooms","description":"List rooms with type, capacity, and status.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"includeArchived":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"rooms":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Rooms","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_list_bookings","title":"Spaces — List Bookings","description":"List bookings (past and future). Use daysBack for recent history; defaults to upcoming when no range given.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"daysBack":{"type":"integer","minimum":0,"maximum":365,"description":"Include bookings up to N days in the past"},"daysAhead":{"type":"integer","minimum":0,"maximum":365},"fromDate":{"type":"string","description":"ISO date/time"},"toDate":{"type":"string","description":"ISO date/time"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"bookings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Bookings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_check_availability","title":"Spaces — Check Availability","description":"Check whether a room is free between two times. Returns any conflicting bookings.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"startTime":{"type":"string","description":"ISO date/time"},"endTime":{"type":"string","description":"ISO date/time"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Check Availability","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_create_booking","title":"Spaces — Create Booking","description":"Create an internal booking for a room. Checks conflicts first and fails if the slot is taken. For public/paid hire use the public booking page instead.\n\n**Required scope:** `spaces:write`.\n\n**API reference:** Dashboard equivalent: `POST /api/spaces/bookings` with conflict checking.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1},"startTime":{"type":"string","description":"ISO date/time"},"endTime":{"type":"string","description":"ISO date/time"},"notes":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"booking":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_incidents","title":"Spaces — List Incidents","description":"List facility incidents (maintenance issues, hazards) with severity and status.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"e.g. open, in_progress, resolved"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"incidents":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Incidents","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_list_utility_bills","title":"Spaces — List Utility Bills","description":"List utility/energy bills with amounts, periods, and payment status.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"billType":{"type":"string","description":"e.g. electricity, gas, water"},"unpaidOnly":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"utility_bills":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Utility Bills","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_incident","title":"Spaces — Create Incident","description":"Report a facility incident (maintenance issue, hazard, etc.).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"category":{"type":"string"},"severity":{"type":"string","enum":["minor","moderate","major","critical"]},"roomId":{"type":"string","format":"uuid"},"description":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"incident":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Incident","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_cancel_booking","title":"Spaces — Cancel Booking","description":"Cancel a room booking.\n\n**Required scope:** `spaces:write`.\n\n**API reference:** Dashboard equivalent: `DELETE /api/spaces/bookings/{bookingId}`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Cancel Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_create_room","title":"Spaces — Create Room","description":"Create a new room in the facilities module.\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"buildingId":{"type":"string","format":"uuid","description":"Building UUID — defaults to the org’s first building"},"roomType":{"type":"string"},"capacity":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_stats","title":"Spaces — Get Stats","description":"Spaces dashboard stats (GET /api/spaces/stats).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stats":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_announcements","title":"Spaces — List Announcements","description":"Active announcements banner (GET /api/spaces/announcements).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"activeOnly":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"announcements":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Announcements","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_announcement","title":"Spaces — Create Announcement","description":"Create announcement (POST /api/spaces/announcements).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"announcement":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Announcement","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_announcement","title":"Spaces — Update Announcement","description":"Update announcement (PATCH /api/spaces/announcements/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"announcementId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"announcement":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Announcement","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_delete_announcement","title":"Spaces — Delete Announcement","description":"Delete announcement (DELETE /api/spaces/announcements/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"announcementId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Delete Announcement","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"spaces_list_rooms_api","title":"Spaces — List Rooms API","description":"List rooms via dashboard API (GET /api/spaces/rooms). Complements spaces_list_rooms.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"rooms_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Rooms API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_find_rooms","title":"Spaces — Find Rooms","description":"Room finder filters (POST /api/spaces/rooms/find).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Find Rooms","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_get_room_api","title":"Spaces — Get Room API","description":"Room detail (GET /api/spaces/rooms/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Room API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_room_api","title":"Spaces — Update Room API","description":"Update room (PATCH /api/spaces/rooms/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Room API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_duplicate_room","title":"Spaces — Duplicate Room","description":"Duplicate room (POST /api/spaces/rooms/{id}/duplicate).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Duplicate Room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_room_bookings","title":"Spaces — Get Room Bookings","description":"Bookings for one room (GET /api/spaces/rooms/{id}/bookings).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_bookings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Room Bookings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_room_work_orders","title":"Spaces — Get Room Work Orders","description":"Work orders for room (GET /api/spaces/rooms/{id}/work-orders).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_work_orders":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Room Work Orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_room_assets","title":"Spaces — Get Room Assets","description":"Assets in room (GET /api/spaces/rooms/{id}/assets).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_assets":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Room Assets","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_room_feedback","title":"Spaces — Get Room Feedback","description":"Room feedback summary (GET /api/spaces/rooms/{id}/feedback).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_feedback":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Room Feedback","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_room_qr","title":"Spaces — Get Room Qr","description":"Room QR code data (GET /api/spaces/rooms/{id}/qr).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"room_qr":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Room Qr","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_bookings_api","title":"Spaces — List Bookings API","description":"List bookings via API (GET /api/spaces/bookings). Complements spaces_list_bookings.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"bookings_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Bookings API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_list_my_bookings","title":"Spaces — List My Bookings","description":"My bookings (GET /api/spaces/bookings/my).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"my_bookings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List My Bookings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_booking_api","title":"Spaces — Create Booking API","description":"Create booking via API (POST /api/spaces/bookings). Complements spaces_create_booking.\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"booking_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Booking API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_booking","title":"Spaces — Get Booking","description":"Booking detail (GET /api/spaces/bookings/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"booking":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Booking","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_booking","title":"Spaces — Update Booking","description":"Update booking (PATCH /api/spaces/bookings/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"booking":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_delete_booking","title":"Spaces — Delete Booking","description":"Delete/cancel booking via API (DELETE /api/spaces/bookings/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Delete Booking","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"spaces_approve_booking","title":"Spaces — Approve Booking","description":"Approve pending booking (POST /api/spaces/bookings/{id}/approve).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Approve Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_reject_booking","title":"Spaces — Reject Booking","description":"Reject booking (POST /api/spaces/bookings/{id}/reject).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"reason":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Reject Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_duplicate_booking","title":"Spaces — Duplicate Booking","description":"Duplicate booking (POST /api/spaces/bookings/{id}/duplicate).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Duplicate Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_check_booking_conflicts","title":"Spaces — Check Booking Conflicts","description":"Check booking conflicts (POST /api/spaces/bookings/check-conflicts).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Check Booking Conflicts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_booking_check_in","title":"Spaces — Booking Check-In","description":"Check in booking (POST /api/spaces/bookings/{id}/check-in).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Booking Check-In","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_booking_check_out","title":"Spaces — Booking Check Out","description":"Check out booking (POST /api/spaces/bookings/{id}/check-out).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Booking Check Out","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_booking_invoice","title":"Spaces — Get Booking Invoice","description":"Booking invoice (GET /api/spaces/bookings/{id}/invoice).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"booking_invoice":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Booking Invoice","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_recurring_bookings","title":"Spaces — List Recurring Bookings","description":"Recurring booking patterns (GET /api/spaces/bookings/recurring).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"recurring_bookings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Recurring Bookings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_recurring_booking","title":"Spaces — Create Recurring Booking","description":"Create recurring pattern (POST /api/spaces/bookings/recurring).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"recurring_booking":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Recurring Booking","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_approvals","title":"Spaces — List Approvals","description":"Pending booking approvals queue (GET /api/spaces/approvals). Approvals tab.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"approvals":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Approvals","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_bulk_approve_bookings","title":"Spaces — Bulk Approve Bookings","description":"Bulk approve bookings (POST /api/spaces/approvals/bulk).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Bulk Approve Bookings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_calendar","title":"Spaces — Get Calendar","description":"Calendar aggregated view (GET /api/spaces/calendar).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"calendar":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Calendar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_buildings_api","title":"Spaces — List Buildings API","description":"List buildings (GET /api/spaces/buildings). Complements spaces_list_buildings.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"buildings_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Buildings API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_get_building","title":"Spaces — Get Building","description":"Building detail with rooms (GET /api/spaces/buildings/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"buildingId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"building":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Building","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_create_building","title":"Spaces — Create Building","description":"Create building (POST /api/spaces/buildings).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"building":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Building","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_building","title":"Spaces — Update Building","description":"Update building (PATCH /api/spaces/buildings/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"buildingId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"building":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Building","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_delete_building","title":"Spaces — Delete Building","description":"Delete building (DELETE /api/spaces/buildings/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"buildingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Delete Building","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"spaces_duplicate_building","title":"Spaces — Duplicate Building","description":"Duplicate building (POST /api/spaces/buildings/{id}/duplicate).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"buildingId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Duplicate Building","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_building_leases","title":"Spaces — List Building Leases","description":"Building leases (GET /api/spaces/buildings/{id}/leases).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"buildingId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"building_leases":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Building Leases","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_manage_building_lease","title":"Spaces — Manage Building Lease","description":"Create/update building lease (POST/PATCH /api/spaces/buildings/{id}/leases).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"buildingId":{"type":"string","format":"uuid"},"leaseId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Manage Building Lease","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_floor_plans","title":"Spaces — List Floor Plans","description":"List floor plans (GET /api/spaces/floor-plans).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"floor_plans":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Floor Plans","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_floor_plan","title":"Spaces — Create Floor Plan","description":"Create floor plan (POST /api/spaces/floor-plans).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"floor_plan":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Floor Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_floor_plan","title":"Spaces — Update Floor Plan","description":"Update floor plan (PATCH /api/spaces/floor-plans/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"floorPlanId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"floor_plan":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Floor Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_delete_floor_plan","title":"Spaces — Delete Floor Plan","description":"Delete floor plan (DELETE /api/spaces/floor-plans/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"floorPlanId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Delete Floor Plan","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"spaces_upload_file","title":"Spaces — Upload File","description":"Upload file for floor plans/assets (POST /api/spaces/uploads).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Upload File","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_assets_api","title":"Spaces — List Assets API","description":"List assets (GET /api/spaces/assets).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"assets_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Assets API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_get_asset","title":"Spaces — Get Asset","description":"Asset detail (GET /api/spaces/assets/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"asset":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Asset","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_create_asset","title":"Spaces — Create Asset","description":"Create asset (POST /api/spaces/assets).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"asset":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Asset","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_asset","title":"Spaces — Update Asset","description":"Update asset (PATCH /api/spaces/assets/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"asset":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Asset","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_scan_asset","title":"Spaces — Scan Asset","description":"Resolve asset by QR scan token (GET /api/spaces/assets/scan/{token}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"qrToken":{"type":"string","minLength":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Scan Asset","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_export_assets","title":"Spaces — Export Assets","description":"Export assets CSV (GET /api/spaces/assets?format=csv).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Export Assets","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_qr_labels_batch","title":"Spaces — Qr Labels Batch","description":"Batch QR labels (GET /api/spaces/assets/batch-qr).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"assetIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Qr Labels Batch","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_run_asset_depreciation","title":"Spaces — Run Asset Depreciation","description":"Run depreciation calc (POST /api/spaces/assets/depreciation).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Run Asset Depreciation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_import_assets","title":"Spaces — Import Assets","description":"Bulk import assets (POST /api/spaces/assets/import or bulk-import).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Import Assets","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_work_orders","title":"Spaces — List Work Orders","description":"List work orders (GET /api/spaces/work-orders).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"work_orders":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Work Orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_work_order","title":"Spaces — Create Work Order","description":"Create work order (POST /api/spaces/work-orders).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"work_order":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Work Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_work_order","title":"Spaces — Get Work Order","description":"Work order detail (GET /api/spaces/work-orders/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"work_order":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Work Order","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_work_order","title":"Spaces — Update Work Order","description":"Update work order (PATCH /api/spaces/work-orders/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"work_order":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Work Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_assign_work_order","title":"Spaces — Assign Work Order","description":"Assign work order (POST /api/spaces/work-orders/{id}/assign).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Assign Work Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_complete_work_order","title":"Spaces — Complete Work Order","description":"Complete work order (POST /api/spaces/work-orders/{id}/complete).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Complete Work Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_work_order_templates","title":"Spaces — List Work Order Templates","description":"Work order templates (GET /api/spaces/work-orders/templates).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"work_order_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Work Order Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_work_order_from_template","title":"Spaces — Create Work Order From Template","description":"Create work order from template (POST /api/spaces/work-orders/from-template).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"work_order_from_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Work Order From Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_maintenance_schedules","title":"Spaces — List Maintenance Schedules","description":"Preventive maintenance schedules (GET /api/spaces/maintenance/schedules).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"maintenance_schedules":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Maintenance Schedules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_get_maintenance_upcoming","title":"Spaces — Get Maintenance Upcoming","description":"Upcoming maintenance (GET /api/spaces/maintenance/upcoming).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"maintenance_upcoming":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Maintenance Upcoming","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_tasks","title":"Spaces — List Tasks","description":"List facility tasks (GET /api/spaces/tasks).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"assigneeId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tasks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Tasks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_list_my_tasks","title":"Spaces — List My Tasks","description":"My assigned tasks (GET /api/spaces/tasks/my).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"my_tasks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List My Tasks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_complete_task","title":"Spaces — Complete Task","description":"Complete task (POST /api/spaces/tasks/{id}/complete).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Complete Task","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_claim_task","title":"Spaces — Claim Task","description":"Claim unassigned task (POST /api/spaces/tasks/{id}/claim).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Claim Task","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_incidents_api","title":"Spaces — List Incidents API","description":"List incidents via API (GET /api/spaces/incidents).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"incidents_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Incidents API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_incident_api","title":"Spaces — Create Incident API","description":"Report incident via API (POST /api/spaces/incidents). Complements spaces_create_incident.\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"incident_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Incident API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_incident","title":"Spaces — Get Incident","description":"Incident detail (GET /api/spaces/incidents/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"incidentId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"incident":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Incident","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_incident","title":"Spaces — Update Incident","description":"Update incident (PATCH /api/spaces/incidents/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"incidentId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"incident":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Incident","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_visitors","title":"Spaces — List Visitors","description":"Visitor log (GET /api/spaces/visitors).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"visitors":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Visitors","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_visitor_sign_in","title":"Spaces — Visitor Sign In","description":"Visitor sign-in (POST /api/spaces/visitors/sign-in).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Visitor Sign In","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_visitor_sign_out","title":"Spaces — Visitor Sign Out","description":"Visitor sign-out (POST /api/spaces/visitors/{id}/sign-out).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"visitorId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Visitor Sign Out","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_energy_readings","title":"Spaces — List Energy Readings","description":"Energy meter readings (GET /api/spaces/energy/readings).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"energy_readings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Energy Readings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_record_energy_reading","title":"Spaces — Record Energy Reading","description":"Record energy reading (POST /api/spaces/energy/readings).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Record Energy Reading","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_energy_bills_api","title":"Spaces — List Energy Bills API","description":"Utility bills list (GET /api/spaces/energy/bills). Complements spaces_list_utility_bills.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"energy_bills_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Energy Bills API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_create_energy_bill","title":"Spaces — Create Energy Bill","description":"Create utility bill (POST /api/spaces/energy/bills).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"energy_bill":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Create Energy Bill","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_parse_energy_bill","title":"Spaces — Parse Energy Bill","description":"Parse bill document with AI (POST /api/spaces/energy/bills/parse).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Parse Energy Bill","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_update_energy_bill","title":"Spaces — Update Energy Bill","description":"Update utility bill (PATCH /api/spaces/energy/bills/{id}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"billId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"energy_bill":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Energy Bill","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_marketplace_listings","title":"Spaces — List Marketplace Listings","description":"Internal marketplace listings (GET /api/spaces/marketplace/listings).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"scope":{"type":"string","enum":["all","mine"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"marketplace_listings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Marketplace Listings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_request_marketplace_listing","title":"Spaces — Request Marketplace Listing","description":"Request marketplace item (POST /api/spaces/marketplace/request).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Request Marketplace Listing","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_marketplace_listing","title":"Spaces — Get Marketplace Listing","description":"Marketplace listing detail (GET /api/spaces/marketplace/listings/{id}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"listingId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"marketplace_listing":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Marketplace Listing","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_report_api","title":"Spaces — Get Report API","description":"Spaces reports tab data (GET /api/spaces/reports/{type}).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"reportType":{"type":"string","enum":["utilisation","sustainability","maintenance","fixed-asset-register","financial","energy","depreciation-schedule","depreciation-forecast","compliance","capital-replacement","asset-insurance"]},"query":{"type":"object","additionalProperties":{"type":"string"}},"format":{"type":"string","enum":["json","csv"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"report_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Report API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_resources","title":"Spaces — List Resources","description":"Bookable resources (GET /api/spaces/resources).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Resources","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_checkout_resource","title":"Spaces — Checkout Resource","description":"Checkout resource (POST /api/spaces/resources/{id}/checkout).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Checkout Resource","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_return_resource","title":"Spaces — Return Resource","description":"Return resource (POST /api/spaces/resources/{id}/return).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Return Resource","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_invoke_ai","title":"Spaces — Invoke AI","description":"Call Spaces AI endpoint (POST /api/spaces/ai/{endpoint}).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"endpoint":{"type":"string","enum":["room-recommender","setup-generator","recommend-setup","utilisation-insights","scheduling-optimizer","suggest-schedule","conflict-resolver","cost-forecaster","energy-optimizer","facility-health-score","growth-capacity","maintenance-predictor","space-planner"]},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Invoke AI","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_team_access_api","title":"Spaces — List Team Access API","description":"Spaces addon team access (GET /api/spaces/team). Settings → Team Access.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_access_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Team Access API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_update_team_access_api","title":"Spaces — Update Team Access API","description":"Manage spaces team members (POST /api/spaces/team).\n\n**Required scope:** `spaces:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_access_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Update Team Access API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_compliance_dashboard","title":"Spaces — Get Compliance Dashboard","description":"Compliance dashboard (GET /api/spaces/compliance/dashboard).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"compliance_dashboard":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Compliance Dashboard","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_compliance_inspections","title":"Spaces — List Compliance Inspections","description":"Compliance inspections (GET /api/spaces/compliance/inspections).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"compliance_inspections":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Compliance Inspections","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_list_inventory","title":"Spaces — List Inventory","description":"Inventory items (GET /api/spaces/inventory).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"inventory":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Inventory","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_list_keys","title":"Spaces — List Keys","description":"Key register (GET /api/spaces/keys).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Keys","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"spaces_get_parking_availability","title":"Spaces — Get Parking Availability","description":"Parking availability (GET /api/spaces/parking/availability).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"parking_availability":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Parking Availability","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_get_budget_tracking","title":"Spaces — Get Budget Tracking","description":"Facilities budget tracking (GET /api/spaces/budget/tracking).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"budget_tracking":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Get Budget Tracking","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_check_weather","title":"Spaces — Check Weather","description":"Weather check for outdoor bookings (GET /api/spaces/weather/check).\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — Check Weather","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_email","title":"Channels — Send Email","description":"Send a single transactional email. REQUIRED: subject + (text OR html OR mediaLibraryFileId+text). Recipient: to OR contactId. With contactId: merge tags {{salutation_name}}, {{title}}, {{first_name}}, {{last_name}}, {{full_name}}, {{org_name}} in subject/text/html; auto greeting Hi {salutation_name}, (includes Pastor/Mr when title on contact) unless personalizedGreeting:false. Read sendifai://docs/email-personalization. Images: mediaLibraryFileId + text below flyer (never image-only). CDN URLs only (media.sendifai.com). Metered against Email Marketing allowance.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Dashboard equivalent: `POST /api/messages/email`. Metered against Email Marketing allowance — check `platform_usage` first.","inputSchema":{"type":"object","properties":{"to":{"type":"string","format":"email","description":"Email address — omit when contactId is set"},"contactId":{"type":"string","format":"uuid","description":"CRM contact UUID — resolves email when to is omitted"},"subject":{"type":"string","minLength":1,"description":"Subject line"},"html":{"type":"string","description":"HTML body — provide html or text"},"text":{"type":"string","description":"Plain text body"},"fromName":{"type":"string","description":"Display name — defaults to organization name"},"mediaLibraryFileId":{"type":"string","format":"uuid","description":"Hero image at top — must pair with text body (not image-only)"},"personalizedGreeting":{"type":"boolean","description":"Default true when contactId set — adds Hi {title + name}, e.g. Hi Pastor Debo, — set false to skip"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"message":{"type":"string"},"body":{"type":"string"},"toEmail":{"type":"string"},"recipient":{"type":"string"},"recipientEmail":{"type":"string"},"email":{"type":"string"},"contactEmail":{"type":"string"},"title":{"type":"string"},"subjectLine":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"provider":{"type":"string"},"to":{"type":"string"},"contactId":{"type":"string"},"firstNameUsed":{"type":"string"},"warning":{"type":"string"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send Email","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_send_sms","title":"Channels — Send SMS","description":"Send a text message (SMS) to one mobile number. REQUIRED: body (message text). Recipient: to (E.164, e.g. +447776725182) OR contactId (CRM UUID — resolves cell_phone/phone). Aliases message/text→body, phone/mobile→to. Optional senderName (NOT senderId) — call channels_list_sms_senders first. During quiet hours, queues unless skipQuietHours is true.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Send a text/SMS when the user asks to message someone. Use senderName (NOT senderId). Call channels_list_sms_senders first. Queued texts: channels_list_scheduled_sms + channels_cancel_scheduled_sms. Dashboard: POST /api/messages/sms.","inputSchema":{"type":"object","properties":{"to":{"type":"string","minLength":5,"description":"E.164 phone — omit when contactId is set"},"body":{"type":"string","minLength":1,"maxLength":1600,"description":"Message text"},"contactId":{"type":"string","format":"uuid","description":"CRM contact UUID — resolves mobile when to is omitted"},"skipQuietHours":{"type":"boolean","description":"Set true to send immediately during quiet hours (operator testing only)"},"senderName":{"type":"string","minLength":3,"maxLength":80,"description":"Approved sender name or label — NOT senderId. Use channels_list_sms_senders to see options (e.g. FA Arena, FA Church). Defaults to org default when omitted."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"senderId":{"type":"string"},"sender":{"type":"string"},"from":{"type":"string"},"fromName":{"type":"string"},"message":{"type":"string"},"text":{"type":"string"},"phone":{"type":"string"},"phoneNumber":{"type":"string"},"mobile":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"status":{"type":"string"},"speakToUser":{"type":"string"},"scheduledFor":{"type":["string","null"]},"quietHoursDelayed":{"type":"boolean"},"creditsUsed":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send SMS","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_list_scheduled_sms","title":"Channels — List Scheduled SMS","description":"List outbound SMS still queued (quiet hours or future schedule). Use before channels_cancel_scheduled_sms when the user wants to undo a mistaken send.\n\n**Required scope:** `channels:read`.\n\n**API reference:** List SMS still queued for quiet hours or future schedule — before cancelling a mistaken send.","inputSchema":{"type":"object","properties":{"to":{"type":"string","minLength":5,"description":"E.164 phone number to filter queued messages"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max rows (default 20)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"scheduled_sms":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Scheduled SMS","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_cancel_scheduled_sms","title":"Channels — Cancel Scheduled SMS","description":"Cancel a queued SMS before it sends (quiet hours / scheduled). Pass messageId (full UUID from channels_list_scheduled_sms) OR combine to + bodyContains / messageIdSuffix to target one row. Refunds messaging credits when possible.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Cancel a queued SMS by messageId (refunds credits when possible). No cancel after sent.","inputSchema":{"type":"object","properties":{"messageId":{"type":"string","minLength":8,"description":"Full sms_messages UUID from list/send — suffix-only IDs work if unique"},"messageIdSuffix":{"type":"string","minLength":8,"maxLength":8,"description":"Last 8 hex chars of messageId when the agent only has a suffix"},"to":{"type":"string","minLength":5,"description":"E.164 number to narrow cancel when multiple queued"},"bodyContains":{"type":"string","minLength":1,"maxLength":200,"description":"Substring match on queued message body"},"reason":{"type":"string","minLength":1,"maxLength":200,"description":"Optional cancellation note for audit"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Cancel Scheduled SMS","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_whatsapp","title":"Channels — Send WhatsApp","description":"Send WhatsApp to one recipient. Params: to, text OR templateName — not body/message. Polls up to ~18s for Meta delivered/read webhook confirmation. Returns sender verifiedName + phoneNumber, deliveryStatus, deliveredAt, and speakToUser — relay speakToUser to the user. Free-form text only inside an open 24h session; otherwise pass templateName from templates_list_whatsapp_templates (status approved). IMAGE header templates: omit templateBodyParams when body has no {{n}}; platform uploads flyer to Meta automatically. Optional mediaLibraryFileId from platform_list_media_library_files. Set skipQuietHours:true when user asked to send now.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Dashboard equivalent: `POST /api/whatsapp/send`. Requires approved Meta WhatsApp sender; deducts messaging credits.","inputSchema":{"type":"object","properties":{"to":{"type":"string","minLength":5,"description":"E.164 — omit when contactId is set"},"text":{"type":"string","minLength":1,"maxLength":4096,"description":"Free-form body — omit when using templateName"},"templateName":{"type":"string","minLength":1,"maxLength":512,"description":"Approved Meta template name (e.g. sendifai_simple_hi)"},"templateLanguage":{"type":"string","minLength":2,"maxLength":16,"description":"Language code registered with Meta (default en)"},"templateBodyParams":{"type":"array","items":{"type":"string","maxLength":1024},"maxItems":20,"description":"Only when the approved template body has {{1}}, {{2}}, … — omit for static-body IMAGE header templates"},"mediaLibraryFileId":{"type":"string","format":"uuid","description":"media_library id from platform_list_media_library_files — auto-resolves latest SUNDAY_SERVICE flyer when omitted"},"skipQuietHours":{"type":"boolean","description":"Set true when the user asked to send now (otherwise message queues until quiet hours end)"},"contactId":{"type":"string","format":"uuid","description":"CRM contact UUID — resolves mobile when to is omitted"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"senderId":{"type":"string"},"message":{"type":"string"},"body":{"type":"string"},"phone":{"type":"string"},"phoneNumber":{"type":"string"},"mobile":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"wamid":{"type":"string"},"creditsUsed":{"type":"number"},"creditsRemaining":{"type":"number"},"templateName":{"type":"string"},"deliveryStatus":{"type":"string"},"deliveryPending":{"type":"boolean"},"scheduledFor":{"type":["string","null"]},"quietHoursDelayed":{"type":"boolean"},"deliveredAt":{"type":["string","null"]},"readAt":{"type":["string","null"]},"sender":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send WhatsApp","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_diagnose_whatsapp","title":"Channels — Why Didn't My WhatsApp Arrive?","description":"Explain WhatsApp delivery status honestly — Meta accepted vs delivered/failed, 24h window, auth/reconnect. Use when the user says a WhatsApp did not arrive after a send reported success. Always relay speakToUser; never claim delivered unless status is delivered/read.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Plain-English WhatsApp delivery troubleshooting — accepted vs delivered/failed. Use when a send “succeeded” but the phone got nothing.","inputSchema":{"type":"object","properties":{"phone":{"type":"string","description":"E.164 number to check recent WhatsApp, e.g. +447530005553"},"contactId":{"type":"string","format":"uuid","description":"Optional contact UUID — resolves phone from CRM if phone omitted"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"summary":{"type":"string"},"speakToUser":{"type":"string"},"configured":{"type":"boolean"},"account":{"type":"object","additionalProperties":true,"description":"JSON object"},"recentMessages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"likelyCause":{"type":["string","null"]},"nextStep":{"type":"string"},"webhookSubscription":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Why Didn't My WhatsApp Arrive?","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_diagnose_sms","title":"Channels — Why Didn't My Text Send?","description":"Explain why a text may not have been delivered — sender setup, quiet hours, queued messages, frequency caps. Always relay speakToUser. Use when the user asks why a text failed or before retrying.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Plain-English SMS delivery troubleshooting — use when the user says text did not arrive. Do not ask the user to name this tool.","inputSchema":{"type":"object","properties":{"phone":{"type":"string","description":"E.164 number to check recent outbound texts, e.g. +447530005553"},"contactId":{"type":"string","format":"uuid","description":"Optional contact UUID — resolves phone from CRM if phone omitted"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"summary":{"type":"string"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"likelyBlockers":{"type":"array","items":{"type":"string"}},"suggestedNextSteps":{"type":"array","items":{"type":"string"}},"recentMessages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Why Didn't My Text Send?","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_sms_settings","title":"Channels — SMS Sender & Quiet Hours","description":"Low-level SMS configuration (sender IDs, quiet hours). Prefer channels_diagnose_sms when the user asks why a text failed — summarise results in plain English.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — SMS Sender & Quiet Hours","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_sms_senders","title":"Channels — List SMS Sender IDs","description":"List SMS sender IDs for the organisation (name, label, approval status, default). Use before changing sender or when the user asks which sender IDs they have.\n\n**Required scope:** `channels:read`.\n\n**API reference:** List org SMS sender IDs and approval status.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_senders":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List SMS Sender IDs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_set_sms_sender","title":"Channels — Set SMS Sender ID","description":"PRIMARY tool when the user says set/change/use a sender ID (e.g. \"set senderID to Freedom Arena\"). Accepts long brand names: auto-shortens to a carrier-legal 3–11 char on-phone ID (Freedom Arena → FA Arena), keeps the full name as label. New senders are submitted for sendifai compliance review (pending — not approved instantly). Use setAsDefault only for already-approved senders. Do NOT use dashboard API search or Chrome for this.\n\n**Required scope:** `channels:send`.\n\n**API reference:** PRIMARY: set/change sender ID from a brand name (Freedom Arena → FA Arena). New senders pending review.","inputSchema":{"type":"object","properties":{"desiredName":{"type":"string","minLength":3,"maxLength":80,"description":"What the user asked for, e.g. Freedom Arena — may be longer than 11 characters"},"approveNow":{"type":"boolean","description":"Platform superadmin only — ignored for org credentials. New senders always start pending_review."},"setAsDefault":{"type":"boolean","description":"If true, make this the org default SMS sender (only when already approved)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set SMS Sender ID","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_create_sms_sender","title":"Channels — Create SMS Sender ID","description":"Create an alphanumeric SMS sender ID (submitted for sendifai compliance review — pending until approved, typically within 72 hours). Prefer channels_set_sms_sender when resolving a name. Accepts names longer than 11 chars (auto-shortens; full name becomes label). Org owners cannot self-approve.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Register an alphanumeric sender (auto-shortens names over 11 chars). Submitted for sendifai compliance review.","inputSchema":{"type":"object","properties":{"senderName":{"type":"string","minLength":3,"maxLength":80,"description":"On-phone ID (3–11 chars) or longer brand name e.g. Freedom Arena (auto-shortened)"},"label":{"type":"string","maxLength":80,"description":"Optional friendly label for the dashboard (can be longer), e.g. Freedom Arena"},"approveNow":{"type":"boolean","description":"Platform superadmin only — ignored for org API keys. Senders stay pending_review until Admin → Sender IDs approves."},"setAsDefault":{"type":"boolean","description":"If true and sender is approved, make this the org default SMS sender."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_sender":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create SMS Sender ID","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_approve_sms_sender","title":"Channels — Approve SMS Sender ID","description":"Platform superadmin only — approve a pending SMS sender ID after compliance review. Org owners cannot use this; they must wait for sendifai approval (Admin → Sender IDs). Optionally setAsDefault after approval.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Platform superadmin only — approve after compliance review (Admin → Sender IDs).","inputSchema":{"type":"object","properties":{"senderId":{"type":"string","format":"uuid","description":"Preferred when known"},"senderName":{"type":"string","minLength":3,"maxLength":80,"description":"On-phone name or brand label, e.g. FA Arena or Freedom Arena"},"setAsDefault":{"type":"boolean","description":"If true, make this the default SMS sender after approval"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Approve SMS Sender ID","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_default_sms_sender","title":"Channels — Set Default SMS Sender","description":"Set an approved SMS sender as the organisation default (e.g. senderName MTZionFA). Texts without an explicit senderName will use this. Pass senderName — you do not need a UUID. Fails if the sender is still pending or revoked.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Set the approved default SMS sender for the org.","inputSchema":{"type":"object","properties":{"senderId":{"type":"string","format":"uuid","description":"Sender UUID"},"senderName":{"type":"string","minLength":3,"maxLength":80,"description":"On-phone name or brand label, e.g. FA Arena or Freedom Arena"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set Default SMS Sender","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_deactivate_sms_sender","title":"Channels — Deactivate SMS Sender","description":"Delete/deactivate an unlocked, non-default SMS sender by senderName (e.g. RCCGWT). Soft-deletes the row. If it is currently the default, call channels_set_default_sms_sender on another approved sender first. Cannot remove locked senders that have already been used.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Soft-deactivate an unused non-default SMS sender.","inputSchema":{"type":"object","properties":{"senderId":{"type":"string","format":"uuid","description":"Sender UUID"},"senderName":{"type":"string","minLength":3,"maxLength":80,"description":"Sender ID or label"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Deactivate SMS Sender","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_whatsapp_account","title":"Channels — WhatsApp Account & Display Name","description":"Read the org WhatsApp Business account: phone number, Meta verified display name (what contacts see in chat), pending name review status, and local dashboard label. Use when the user asks what their WhatsApp name/ID is, or to check Meta approval progress after channels_set_whatsapp_display_name. Always relay userMessage in plain English — never claim a pending name is live.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Read Meta verified WhatsApp display name + pending review. Dashboard: `GET /api/whatsapp/display-name`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_account":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"userMessage":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — WhatsApp Account & Display Name","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_whatsapp_display_name","title":"Channels — Set WhatsApp Display Name","description":"PRIMARY tool when the user says set WhatsApp ID / WhatsApp display name / WhatsApp business name (e.g. \"set WhatsApp ID to Freedom Arena\"). Submits the name to Meta for review — contacts do NOT see it until Meta approves and we re-register (automatic via webhook). Always tell the user the userMessage: pending vs already live. Do NOT use channels_set_sms_sender for WhatsApp. Do NOT open Meta Business Manager or Chrome.\n\n**Required scope:** `channels:send`.\n\n**API reference:** PRIMARY for WhatsApp ID / display name (Meta review required). Not SMS. Dashboard: `POST /api/whatsapp/display-name`.","inputSchema":{"type":"object","properties":{"desiredName":{"type":"string","minLength":1,"maxLength":100,"description":"What contacts should see in WhatsApp chat, e.g. Freedom Arena"},"alsoSetLocalLabel":{"type":"boolean","description":"Default true — also sets the local dashboard nickname via channels_set_whatsapp_label (internal label only; contacts still see the Meta-verified chat header name)."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"submitted":{"type":"boolean"},"alreadyLive":{"type":"boolean"},"pendingMetaApproval":{"type":"boolean"},"desiredName":{"type":"string"},"status":{"type":"object","additionalProperties":true,"description":"JSON object"},"userMessage":{"type":"string"},"speakToUser":{"type":"string"},"nextStep":{"type":["string","null"]}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set WhatsApp Display Name","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_finalize_whatsapp_display_name","title":"Channels — Finalize WhatsApp Display Name","description":"After Meta APPROVES a WhatsApp display name, re-register the phone so the name goes live. Usually automatic via webhook — use if the user says Meta approved but the chat name has not updated, or after channels_get_whatsapp_account shows approved_needs_reregister.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Re-register after Meta APPROVED a display name. Usually automatic via webhook.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"finalized":{"type":"boolean"},"registered":{"type":"boolean"},"status":{"type":"object","additionalProperties":true,"description":"JSON object"},"userMessage":{"type":"string"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Finalize WhatsApp Display Name","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_whatsapp_business_verification","title":"Channels — Get WhatsApp Business Verification","description":"Read WhatsApp Business Verification status — whether Meta has verified the business so the chat header can show the business name instead of the phone number. Use when the user asks about business verification, BV, or why WhatsApp still shows a phone number after display name approval. Relay userMessage; direct them to Channels → Messages → Settings → Business Verification to upload documents in sendifai (no Meta Business Manager).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"syncFromMeta":{"type":"boolean","description":"Default true — refresh status from Meta before answering"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"business_verification":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"userMessage":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get WhatsApp Business Verification","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_sync_whatsapp_business_verification","title":"Channels — Sync WhatsApp Business Verification","description":"Pull the latest WhatsApp Business Verification status from Meta into sendifai. Use after document submission or when the user asks to refresh BV status. Does not submit documents — use the dashboard Business Verification section for uploads.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"business_verification":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"userMessage":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Sync WhatsApp Business Verification","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_whatsapp_label","title":"Channels — Set WhatsApp Dashboard Label","description":"Set the local dashboard nickname for the WhatsApp number only. Does NOT change what contacts see in WhatsApp — use channels_set_whatsapp_display_name for that.\n\n**Required scope:** `channels:send`.\n\n**API reference:** Local dashboard nickname only — does not change the chat header name contacts see.","inputSchema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":100,"description":"Internal nickname, e.g. Freedom Arena main line"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"label":{"type":"string"},"status":{"type":"object","additionalProperties":true,"description":"JSON object"},"userMessage":{"type":"string"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set WhatsApp Dashboard Label","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_conversations","title":"Channels — List Inbox Conversations","description":"Unified inbox conversations (GET /api/messages/conversations) — SMS, WhatsApp, and Telegram. Same as Messages tab.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard equivalent: `GET /api/messages/conversations`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"e.g. open, closed, pending"},"channel":{"type":"string","enum":["sms","whatsapp","telegram"],"description":"Channel filter"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Limit"},"search":{"type":"string","description":"Search"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"conversations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Inbox Conversations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_messaging_quota","title":"Channels — Messaging Credits & Quota","description":"Read remaining messaging credits (SMS, WhatsApp, Telegram) and the separate meeting-credit balance. A meeting never spends messaging credits.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard equivalent: usage via `platform_usage` and messaging slider.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messaging":{"type":"object","additionalProperties":true,"description":"JSON object"},"note":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Messaging Credits & Quota","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_create_whatsapp_campaign","title":"Channels — Create WhatsApp Campaign","description":"Create a draft WhatsApp campaign bound to an approved template and optional segment. Use channels_preview_whatsapp_campaign_send then channels_send_whatsapp_campaign — never loop channels_send_whatsapp for blasts.\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"templateName":{"type":"string","minLength":1},"segmentId":{"type":"string","format":"uuid"},"templateLanguage":{"type":"string"},"respectQuietHours":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create WhatsApp Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_preview_whatsapp_campaign_send","title":"Channels — Preview WhatsApp Campaign Send","description":"Preview WhatsApp campaign audience: eligible vs excluded (no phone, no consent, unsubscribed) plus messaging credit estimate. Always call before channels_send_whatsapp_campaign.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Preview WhatsApp Campaign Send","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_whatsapp_campaign","title":"Channels — Send WhatsApp Campaign","description":"Send a WhatsApp campaign to its segment/template audience. Call without confirm for preview; set confirm:true to execute. Mass sends run in the background — poll channels_whatsapp_campaign_status.\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"confirm":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send WhatsApp Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_whatsapp_campaign_status","title":"Channels — WhatsApp Campaign Status","description":"Poll WhatsApp campaign send progress after channels_send_whatsapp_campaign (background sends).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — WhatsApp Campaign Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_preview_marketing_blast","title":"Channels — Preview Marketing Blast","description":"Preview a dual-channel marketing blast (email + WhatsApp) like Sunday service announcements: eligible recipient counts, flyer detection, usage limits. Email auto-greeting and WhatsApp {{1}} use titled salutation when contact has prefix/metadata.title. REQUIRED before channels_run_marketing_blast. Supports preset sunday_service_restoration (flyer + Restoration Agenda copy + freedom_sunday_restoration_full WA template). Read sendifai://docs/email-personalization.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"preset":{"type":"string","enum":["sunday_service_restoration"],"description":"Loads Sunday Restoration copy, WA template, and latest SUNDAY_SERVICE flyer"},"channels":{"type":"array","items":{"type":"string","enum":["email","whatsapp"]},"description":"Default both — email and whatsapp"},"mediaLibraryFileId":{"type":"string","format":"uuid","description":"Flyer file ID"},"subject":{"type":"string","description":"Email subject"},"emailText":{"type":"string","description":"Email body text"},"fromName":{"type":"string","description":"Email from name"},"waTemplateName":{"type":"string","description":"WhatsApp template name"},"skipQuietHours":{"type":"boolean","description":"Default true for blasts — sends immediately"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Preview Marketing Blast","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_run_marketing_blast","title":"Channels — Run Marketing Blast","description":"Run email + WhatsApp marketing blast to all eligible contacts. Email uses inline CID flyer (one.com-safe) and Hi {salutation_name}, greetings (Pastor/Mr when title on contact). WhatsApp {{1}} uses same titled name. Call channels_preview_marketing_blast first; set confirm:true to send. Background job — poll channels_marketing_blast_status. Never loop channels_send_email/channels_send_whatsapp for mass audiences.\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"confirm":{"type":"boolean","description":"Confirm send"},"dryRun":{"type":"boolean","description":"Count recipients without sending"},"preset":{"type":"string","enum":["sunday_service_restoration"],"description":"Sunday service preset"},"channels":{"type":"array","items":{"type":"string","enum":["email","whatsapp"]},"description":"Channels"},"mediaLibraryFileId":{"type":"string","format":"uuid","description":"Flyer file ID"},"subject":{"type":"string","description":"Email subject"},"emailText":{"type":"string","description":"Email body"},"fromName":{"type":"string","description":"From name"},"waTemplateName":{"type":"string","description":"WA template"},"skipQuietHours":{"type":"boolean","description":"Bypass quiet hours"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Run Marketing Blast","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_marketing_blast_status","title":"Channels — Marketing Blast Status","description":"Poll marketing blast progress after channels_run_marketing_blast — email/WhatsApp sent and failed counts, sample failure reasons.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"blastRunId":{"type":"string","format":"uuid","description":"Blast run ID"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Marketing Blast Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_email_deliverability_report","title":"Channels — Email Deliverability Report","description":"List hard bounces and spam complaints for org contacts — Postmark inactive addresses, suppression list, and CRM bounced/complained status. Use after a blast to answer \"who failed and why\" or audit list hygiene.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Email Deliverability Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_email_campaigns","title":"Channels — List Email Campaigns","description":"List email campaigns via dashboard API (GET /api/campaigns). Complements grow_list_campaigns DB read.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_campaigns":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Email Campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_email_settings","title":"Channels — Get Email Settings","description":"Email channel settings (GET /api/channels/email/settings).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Email Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_email_settings","title":"Channels — Set Email Settings","description":"Update email channel settings (PATCH /api/channels/email/settings).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set Email Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_email_analytics","title":"Channels — Get Email Analytics","description":"Email analytics dashboard (GET /api/analytics/email).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"range":{"type":"string","enum":["7d","30d","90d","365d"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Email Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_sync_email_analytics","title":"Channels — Sync Email Analytics","description":"Sync email analytics from provider (POST /api/analytics/sync).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Sync Email Analytics","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_email_insights_correlations","title":"Channels — Get Email Insights Correlations","description":"Email insights correlations (GET/POST /api/ai/correlations).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"refresh":{"type":"boolean","description":"POST to regenerate"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_insights_correlations":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Email Insights Correlations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_competitive_intelligence","title":"Channels — Get Competitive Intelligence","description":"Competitive intelligence insights (GET /api/ai/competitive-intelligence).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"competitive_intelligence":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Competitive Intelligence","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_email_attribution","title":"Channels — Get Email Attribution","description":"Email attribution paths (GET /api/ai/attribution?paths=true).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_attribution":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Email Attribution","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_email_ab_tests","title":"Channels — List Email A/B Tests","description":"List email A/B tests (GET /api/ab-tests).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_ab_tests":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Email A/B Tests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_email_ab_test","title":"Channels — Create Email Ab Test","description":"Create email A/B test (POST /api/ab-tests).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"A/B test body matching dashboard create form"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_ab_test":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Email Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_email_ab_test","title":"Channels — Update Email Ab Test","description":"Update email A/B test (PUT /api/ab-tests/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_ab_test":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update Email Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_email_ab_test","title":"Channels — Remove Email Ab Test","description":"Delete email A/B test (DELETE /api/ab-tests/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Email Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_start_email_ab_test","title":"Channels — Start Email Ab Test","description":"Start email A/B test (POST /api/ab-tests/{id}/start).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Start Email Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_pause_email_ab_test","title":"Channels — Pause Email Ab Test","description":"Pause email A/B test (POST /api/ab-tests/{id}/pause).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Pause Email Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_email_ab_test_results","title":"Channels — Get Email Ab Test Results","description":"A/B test results (GET /api/ab-tests/{id}/results).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_ab_test_results":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Email Ab Test Results","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_select_email_ab_test_winner","title":"Channels — Select Email Ab Test Winner","description":"Select A/B test winner variant (POST /api/ab-tests/{id}/select-winner).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"variantId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Select Email Ab Test Winner","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_email_ab_test_winner","title":"Channels — Send Email Ab Test Winner","description":"Send winner variant to remainder (POST /api/ab-tests/{id}/send-winner).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send Email Ab Test Winner","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_campaign_recipients","title":"Channels — Get Campaign Recipients","description":"Campaign recipient delivery rows (GET /api/campaigns/{id}/recipients).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":200},"status":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"campaign_recipients":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Campaign Recipients","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_estimate_campaign_audience","title":"Channels — Estimate Campaign Audience","description":"Audience size estimate for email or messaging campaigns (POST /api/campaigns/audience-estimate).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"Audience selector: segmentId, groupIds, tagIds, channel, etc."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Estimate Campaign Audience","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_test_send_email","title":"Channels — Test Send Email","description":"Send test email from builder (POST /api/channels/email/test-send).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"Test send body from email builder"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Test Send Email","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_email_campaign_detail","title":"Channels — Get Email Campaign Detail","description":"Email campaign detail from dashboard API (GET /api/campaigns/{id}). Use grow_send_campaign to send.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_campaign_detail":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Email Campaign Detail","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_legacy_email_message","title":"Channels — Get Legacy Email Message","description":"Legacy single email message (GET /api/channels/email/{id}).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"legacy_email_message":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Legacy Email Message","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_unified_conversations","title":"Channels — List Unified Conversations","description":"Unified inbox conversation list (GET /api/messages/conversations). Prefer over channels_list_conversations for Messages tab parity.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["open","closed","pending","all"]},"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"search":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"unified_conversations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Unified Conversations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_unified_conversation","title":"Channels — Get Unified Conversation","description":"Inbox thread messages (GET /api/messages/conversations/{id}).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"unified_conversation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Unified Conversation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_mark_conversation_read","title":"Channels — Mark Conversation Read","description":"Mark SMS/WhatsApp/Telegram conversation read (PATCH /api/{channel}/conversations/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"conversationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Mark Conversation Read","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_telegram","title":"Channels — Send Telegram","description":"Send Telegram message (POST /api/telegram/send). For 1:1 use channels_send_sms/WA for SMS/WhatsApp.\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"chatId":{"type":"string","minLength":1},"message":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send Telegram","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_list_sms_campaigns","title":"Channels — List SMS Campaigns","description":"List SMS campaigns (GET /api/sms/campaigns).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_campaigns":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List SMS Campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_sms_campaign","title":"Channels — Get SMS Campaign","description":"SMS campaign detail (GET /api/sms/campaigns/{id}).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get SMS Campaign","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_create_sms_campaign","title":"Channels — Create SMS Campaign","description":"Create or update SMS campaign (POST /api/sms/campaigns or PATCH /api/sms/campaigns/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create SMS Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_create_sms_empty_draft","title":"Channels — Create SMS Empty Draft","description":"Create empty SMS campaign draft (POST /api/sms/campaigns/empty-draft).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_empty_draft":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create SMS Empty Draft","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_sms_campaign","title":"Channels — Send SMS Campaign","description":"Send SMS campaign (POST /api/sms/campaigns/{id}/send).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send SMS Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_schedule_sms_campaign","title":"Channels — Schedule SMS Campaign","description":"Schedule SMS campaign (POST /api/sms/campaigns/{id}/schedule).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"scheduledAt":{"type":"string","description":"ISO datetime"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Schedule SMS Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_duplicate_sms_campaign","title":"Channels — Duplicate SMS Campaign","description":"Duplicate SMS campaign (POST /api/sms/campaigns/{id}/duplicate).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Duplicate SMS Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_whatsapp_campaigns","title":"Channels — List WhatsApp Campaigns","description":"List WhatsApp campaigns (GET /api/whatsapp/campaigns).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_campaigns":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List WhatsApp Campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_whatsapp_campaign","title":"Channels — Get WhatsApp Campaign","description":"WhatsApp campaign detail (GET /api/whatsapp/campaigns/{id}).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get WhatsApp Campaign","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_whatsapp_campaign_api","title":"Channels — Send WhatsApp Campaign API","description":"Send WhatsApp campaign via dashboard API (POST /api/whatsapp/campaigns/{id}/send).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send WhatsApp Campaign API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_duplicate_whatsapp_campaign","title":"Channels — Duplicate WhatsApp Campaign","description":"Duplicate WhatsApp campaign (POST /api/whatsapp/campaigns/{id}/duplicate).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Duplicate WhatsApp Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_telegram_campaigns","title":"Channels — List Telegram Campaigns","description":"List Telegram campaigns (GET /api/telegram/campaigns).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"telegram_campaigns":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Telegram Campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_telegram_campaign","title":"Channels — Create Telegram Campaign","description":"Create Telegram campaign (POST /api/telegram/campaigns).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"telegram_campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Telegram Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_telegram_campaign","title":"Channels — Send Telegram Campaign","description":"Send Telegram campaign (POST /api/telegram/campaigns/{id}/send).\n\n**Required scope:** `channels:send`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send Telegram Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_duplicate_telegram_campaign","title":"Channels — Duplicate Telegram Campaign","description":"Duplicate Telegram campaign (POST /api/telegram/campaigns/{id}/duplicate).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Duplicate Telegram Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_sms_org_templates","title":"Channels — List SMS Org Templates","description":"List org SMS templates (GET /api/sms/templates). Not Meta WhatsApp templates.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_org_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List SMS Org Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_sms_org_template","title":"Channels — Create SMS Org Template","description":"Create SMS org template (POST /api/sms/templates).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_org_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create SMS Org Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_sms_org_template","title":"Channels — Update SMS Org Template","description":"Update SMS org template (PATCH /api/sms/templates/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_org_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update SMS Org Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_sms_org_template","title":"Channels — Remove SMS Org Template","description":"Delete SMS org template (DELETE /api/sms/templates/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove SMS Org Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_sms_quiet_hours","title":"Channels — Set SMS Quiet Hours","description":"Update SMS quiet hours (PUT /api/sms/quiet-hours).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set SMS Quiet Hours","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_whatsapp_profile","title":"Channels — Update WhatsApp Profile","description":"Update WhatsApp business profile fields (PATCH /api/whatsapp/profile).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_profile":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update WhatsApp Profile","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_whatsapp_qr","title":"Channels — Get WhatsApp Qr","description":"WhatsApp QR connect code (GET /api/whatsapp/qr).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_qr":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get WhatsApp Qr","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_whatsapp_conversation_window","title":"Channels — Get WhatsApp Conversation Window","description":"WhatsApp 24h window status (GET /api/whatsapp/conversation-window).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"to":{"type":"string","description":"Recipient phone E.164"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_conversation_window":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get WhatsApp Conversation Window","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_telegram_setup","title":"Channels — Get Telegram Setup","description":"Telegram bot setup status (GET /api/telegram/setup).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"telegram_setup":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Telegram Setup","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_configure_telegram","title":"Channels — Configure Telegram","description":"Configure Telegram bot (POST /api/telegram/setup).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Configure Telegram","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_telegram_setup","title":"Channels — Remove Telegram Setup","description":"Disconnect Telegram (DELETE /api/telegram/setup).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Telegram Setup","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_sms_opt_outs","title":"Channels — List SMS Opt Outs","description":"SMS opt-out list (GET /api/sms/opt-outs).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_opt_outs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List SMS Opt Outs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_list_whatsapp_opt_outs","title":"Channels — List WhatsApp Opt Outs","description":"WhatsApp opt-out list (GET /api/whatsapp/opt-outs).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_opt_outs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List WhatsApp Opt Outs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_list_telegram_opt_outs","title":"Channels — List Telegram Opt Outs","description":"Telegram opt-out list (GET /api/telegram/opt-outs).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"telegram_opt_outs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Telegram Opt Outs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_messaging_analytics","title":"Channels — Get Messaging Analytics","description":"Messaging analytics for SMS, WhatsApp, or Telegram.\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"startDate":{"type":"string"},"endDate":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messaging_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Messaging Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_sms_automations","title":"Channels — List SMS Automations","description":"List SMS automations (GET /api/sms/automations).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_automations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List SMS Automations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_sms_automation","title":"Channels — Create SMS Automation","description":"Create SMS automation (POST /api/sms/automations).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create SMS Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_sms_automation","title":"Channels — Update SMS Automation","description":"Update SMS automation (PATCH /api/sms/automations/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"sms_automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update SMS Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_sms_automation","title":"Channels — Remove SMS Automation","description":"Delete SMS automation (DELETE /api/sms/automations/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove SMS Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_messaging_ab_tests","title":"Channels — List Messaging A/B Tests","description":"List messaging A/B tests (GET /api/{channel}/ab-tests).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messaging_ab_tests":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Messaging A/B Tests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_messaging_ab_test","title":"Channels — Create Messaging Ab Test","description":"Create messaging A/B test (POST /api/{channel}/ab-tests).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messaging_ab_test":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Messaging Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_messaging_ab_test","title":"Channels — Update Messaging Ab Test","description":"Update messaging A/B test (PATCH /api/{channel}/ab-tests/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"testId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messaging_ab_test":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update Messaging Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_messaging_ab_test","title":"Channels — Remove Messaging Ab Test","description":"Delete messaging A/B test (DELETE /api/{channel}/ab-tests/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","telegram"]},"testId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Messaging Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_short_links","title":"Channels — List Short Links","description":"List tracked short links (GET /api/channels/messages/links).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"search":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"short_links":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Short Links","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_short_link","title":"Channels — Create Short Link","description":"Create short link (POST /api/sms/shortlinks/create).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"short_link":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Short Link","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_messaging_ai_insights","title":"Channels — Get Messaging AI Insights","description":"AI insights for messaging analytics tab (GET /api/ai/insights).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"period":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"messaging_ai_insights":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Messaging AI Insights","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_generate_sms_copy","title":"Channels — Generate SMS Copy","description":"AI-generate SMS message copy (POST /api/sms/ai/generate).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Generate SMS Copy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_generate_whatsapp_copy","title":"Channels — Generate WhatsApp Copy","description":"AI-generate WhatsApp message copy (POST /api/whatsapp/ai/generate).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Generate WhatsApp Copy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_create_whatsapp_org_template","title":"Channels — Create WhatsApp Org Template","description":"Create WhatsApp org template (POST /api/whatsapp/templates) — Messages templates tab.\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_org_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create WhatsApp Org Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_whatsapp_org_template","title":"Channels — Update WhatsApp Org Template","description":"Update WhatsApp org template (PATCH /api/whatsapp/templates/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_org_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update WhatsApp Org Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_short_link","title":"Channels — Remove Short Link","description":"Delete short link (DELETE /api/sms/shortlinks/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"linkId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Short Link","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_create_push_campaign","title":"Channels — Create Push Campaign","description":"Create push notification campaign (POST /api/campaigns with type push).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Push Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_push_campaigns","title":"Channels — List Push Campaigns","description":"List push notification campaigns (GET /api/campaigns?type=push).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_campaigns":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Push Campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_duplicate_push_campaign","title":"Channels — Duplicate Push Campaign","description":"Duplicate push campaign (POST /api/campaigns/{id}/duplicate).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Duplicate Push Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_push_campaign","title":"Channels — Remove Push Campaign","description":"Delete push campaign (DELETE /api/campaigns/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Push Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_push_subscribers","title":"Channels — List Push Subscribers","description":"Push subscriber list (GET /api/push/subscribers).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_subscribers":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Push Subscribers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_push_analytics","title":"Channels — Get Push Analytics","description":"Push analytics (GET /api/push/analytics).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"period":{"type":"string","enum":["7d","30d","90d"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Get Push Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_push_automations","title":"Channels — List Push Automations","description":"List push automations (GET /api/push/automations).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_automations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Push Automations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_push_automation","title":"Channels — Create Push Automation","description":"Create push automation (POST /api/push/automations).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Push Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_push_automation","title":"Channels — Update Push Automation","description":"Update push automation (PATCH /api/push/automations/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_automation":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update Push Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_push_automation","title":"Channels — Remove Push Automation","description":"Delete push automation (DELETE /api/push/automations/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"automationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Push Automation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_push_ab_tests","title":"Channels — List Push A/B Tests","description":"List push A/B tests (GET /api/push/ab-tests).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_ab_tests":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Push A/B Tests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_push_ab_test","title":"Channels — Create Push Ab Test","description":"Create push A/B test (POST /api/push/ab-tests).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_ab_test":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Push Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_push_ab_test","title":"Channels — Update Push Ab Test","description":"Update push A/B test (PATCH /api/push/ab-tests/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_ab_test":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update Push Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_remove_push_ab_test","title":"Channels — Remove Push Ab Test","description":"Delete push A/B test (DELETE /api/push/ab-tests/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"testId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Push Ab Test","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_push_templates","title":"Channels — List Push Templates","description":"List push templates (GET /api/templates?channel=push).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"push_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Push Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_remove_push_template","title":"Channels — Remove Push Template","description":"Delete push template (DELETE /api/templates/{id}).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Remove Push Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_calendar_events","title":"Channels — List Calendar Events","description":"Marketing calendar events (GET /api/channels/calendar).\n\n**Required scope:** `channels:read`.","inputSchema":{"type":"object","properties":{"start":{"type":"string","description":"ISO date start"},"end":{"type":"string","description":"ISO date end"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"calendar_events":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Calendar Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_calendar_event","title":"Channels — Create Calendar Event","description":"Add calendar event (POST /api/channels/calendar).\n\n**Required scope:** `channels:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"calendar_event":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Calendar Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_meetings","title":"Channels — List Meetings","description":"List video meetings (GET /api/channels/meetings). Not Sunday Live, not Spaces rooms, not pastoral meeting-prep. Dashboard: Channels → Meetings.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard: Channels → Meetings (`GET /api/channels/meetings`). Not Sunday Live, not Spaces rooms.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meetings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"rooms":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Meetings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_create_meeting","title":"Channels — Create Meeting","description":"Create a video meeting (POST /api/channels/meetings). Returns the join link (sendifai.com/m/{code}; custom meeting.[org]/{slug} is the main URL when set). A live meeting spends meeting credits (1 per person every 10 minutes; first 8 cameras included), never messaging credits. Waiting room on by default.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `POST /api/channels/meetings`. Join identity is `/m/{code}`; custom slug is the display alias.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120,"description":"Meeting name"},"waitingRoom":{"type":"boolean","description":"Default true — guests wait until the host admits them"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting":{"type":"object","additionalProperties":true,"description":"JSON object"},"room":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Create Meeting","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_meeting","title":"Channels — Open Meeting Desk","description":"Meeting desk: room, invites, waiting list, chat (GET /api/channels/meetings/{id}). Share the join URL from the response — code is the identity, custom slug is the display alias.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard: `GET /api/channels/meetings/{id}` — room, invites, waiting list, chat.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting":{"type":"object","additionalProperties":true,"description":"JSON object"},"room":{"type":"object","additionalProperties":true,"description":"JSON object"},"invites":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"participants":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"messages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"speakToUser":{"type":"string"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Open Meeting Desk","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_update_meeting","title":"Channels — Update Meeting","description":"Update meeting name, waiting room, waiting message, share image, waiting graphic, lock, slug, or room mode (PATCH /api/channels/meetings/{id}). Modes: watch (host+screen), stage (host promotes cameras), open (anyone may turn camera on until cap). Slug is unique per organisation. Lock stops new guests joining. Waiting room can be off so phones come straight in. Share image is the picture when the link is shared, and the waiting graphic unless a separate holding image is set.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `PATCH /api/channels/meetings/{id}` — name, waiting room, share image, waiting graphic, lock, slug.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"title":{"type":"string","minLength":1,"maxLength":120,"description":"Meeting name"},"waitingRoom":{"type":"boolean","description":"False lets phones come straight in"},"waitingRoomMessage":{"type":"string","maxLength":280,"description":"Waiting room message"},"shareImageMediaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Media Library image id for the link preview. Null removes it. Also used as the waiting graphic when no holding image is set."},"holdingImageMediaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Media Library image id shown while people wait, with the meeting name and time. Null removes it."},"locked":{"type":"boolean","description":"True stops new guests joining"},"slug":{"type":"string","minLength":1,"maxLength":80,"description":"Per-org display alias — join code stays the identity"},"roomMode":{"type":"string","enum":["watch","stage","open"],"description":"watch = host+screen; stage = host promotes; open = anyone until camera cap"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Update Meeting","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_start_meeting","title":"Channels — Start Meeting","description":"Start a meeting (POST /api/channels/meetings/{id}/start). Opens the host path on the house origin. Same as Start on the meeting desk. Not Sunday Live.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `POST /api/channels/meetings/{id}/start`. Opens the host path. Not Sunday Live.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Start Meeting","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_claim_meeting","title":"Channels — Claim Meeting Host","description":"Claim host when nobody live is hosting (POST /api/channels/meetings/{id}/claim). Same as Claim host on the meeting desk.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `POST /api/channels/meetings/{id}/claim`. Take host when nobody live is hosting.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Claim Meeting Host","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_end_meeting","title":"Channels — End Meeting","description":"End a meeting (POST /api/channels/meetings/{id}/end). Disconnects the host and closes the path. Call without confirm for a preview; set confirm:true to end.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `POST /api/channels/meetings/{id}/end`. Preview first; confirm:true to end.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"confirm":{"type":"boolean","description":"Must be true to end — preview first"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — End Meeting","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_list_meeting_invites","title":"Channels — List Meeting Invites","description":"People invited to a meeting (GET /api/channels/meetings/{id}/invites).\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard: `GET /api/channels/meetings/{id}/invites`.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting_invites":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — List Meeting Invites","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_invite_to_meeting","title":"Channels — Invite To Meeting","description":"Invite CRM people to a meeting (POST /api/channels/meetings/{id}/invites). Search people first. Share the join link from channels_get_meeting after inviting.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `POST /api/channels/meetings/{id}/invites`. Search people first.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"contacts":{"type":"array","items":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"displayName":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false},"minItems":1,"description":"CRM contactId (preferred) and optional email / displayName"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Invite To Meeting","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_meeting_participant","title":"Channels — Admit or Deny Meeting Guest","description":"Admit, deny, remove, mute, or turn a camera off (PATCH /api/channels/meetings/{id}/participants). Pass action + participantIds for bulk.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `PATCH /api/channels/meetings/{id}/participants` — admitted / denied / left.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"participantId":{"type":"string","format":"uuid","description":"Person in the meeting"},"state":{"type":"string","enum":["admitted","denied","left"],"description":"admitted lets them see the picture"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Admit or Deny Meeting Guest","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_send_meeting_message","title":"Channels — Send Meeting Chat","description":"Send host chat in a live meeting (POST /api/channels/meetings/{id}/messages). Start the meeting first.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `POST /api/channels/meetings/{id}/messages`. Start the meeting first.","inputSchema":{"type":"object","properties":{"meetingId":{"type":"string","format":"uuid","description":"Meeting UUID from channels_list_meetings"},"body":{"type":"string","minLength":1,"maxLength":2000,"description":"Chat message"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Send Meeting Chat","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"channels_get_meeting_custom_domain","title":"Channels — Meeting Custom Domain","description":"Meeting custom domain (GET /api/organizations/meeting-custom-domain). Vanity CNAME — join code on sendifai.com/m/{code} always stays.\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard: `GET /api/organizations/meeting-custom-domain`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting_custom_domain":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Meeting Custom Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_set_meeting_custom_domain","title":"Channels — Set Meeting Custom Domain","description":"Set or clear the meeting custom domain (PUT /api/organizations/meeting-custom-domain). Same CNAME/DNS check as donate and count. Pass an empty string to clear.\n\n**Required scope:** `channels:write`.\n\n**API reference:** Dashboard: `PUT /api/organizations/meeting-custom-domain`. Same CNAME pattern as donate/count.","inputSchema":{"type":"object","properties":{"meetingCustomDomain":{"type":"string","description":"e.g. meeting.freedomarena.org.uk — empty string clears it"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Set Meeting Custom Domain","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"channels_get_meeting_custom_domain_status","title":"Channels — Meeting Domain DNS Status","description":"DNS / verification status for the meeting custom domain (GET /api/organizations/meeting-custom-domain/status).\n\n**Required scope:** `channels:read`.\n\n**API reference:** Dashboard: `GET /api/organizations/meeting-custom-domain/status`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"meeting_custom_domain_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Channels — Meeting Domain DNS Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_list_events","title":"Ticketing — List Events","description":"List ticketing events (draft, published, etc.) with registrations and revenue. Published events appear on ticketingbook.com/e/[slug].\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","published","cancelled","completed","archived","all"]},"upcomingOnly":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — List Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_get_event_sales","title":"Ticketing — Event Sales Summary","description":"Registration, revenue, check-in, and capacity figures for one event.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event_sales":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Event Sales Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_create_event","title":"Ticketing — Create Draft Event","description":"Create a draft ticketing event. Add ticket types, then ticketing_publish_event. For virtual queue before on-sale, call ticketing_set_virtual_queue (enabled=true) — do not rely on optional queue_enabled here (hidden in many chat UIs).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"start_date":{"type":"string","description":"ISO 8601 start date/time"},"description":{"type":"string"},"event_type":{"type":"string","enum":["in_person","virtual","hybrid"]},"venue_name":{"type":"string"},"capacity":{"type":"integer","minimum":1},"queue_enabled":{"type":"boolean","description":"Enable virtual queue before high-demand on-sale"},"queue_opens_at":{"type":"string"},"queue_shopping_window_minutes":{"type":"integer","minimum":1},"queue_max_concurrent_shoppers":{"type":"integer","minimum":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"queueEnabled":{"type":"string"},"enableQueue":{"type":"string"},"enable_virtual_queue":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Create Draft Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_set_virtual_queue","title":"Ticketing — Set Virtual Queue","description":"Enable or disable the virtual waiting room on an event. REQUIRED before ticketing_get_queue_stats or ticketing_run_queue_admit. Pass enabled=true to turn the queue on.\n\n**Required scope:** `ticketing:write`.\n\n**API reference:** Enable virtual queue (enabled=true) before ticketing_get_queue_stats or ticketing_run_queue_admit.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"enabled":{"type":"boolean","description":"true = enable virtual queue, false = disable"},"queue_opens_at":{"type":"string","description":"ISO 8601 when the queue opens"},"queue_shopping_window_minutes":{"type":"integer","minimum":1,"description":"Checkout window minutes per admitted shopper (default 10)"},"queue_max_concurrent_shoppers":{"type":"integer","minimum":1,"description":"Max concurrent shoppers in checkout (default 50)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"enable":{"type":"string"},"queue_enabled":{"type":"string"},"queueEnabled":{"type":"string"},"enableQueue":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Set Virtual Queue","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_update_event","title":"Ticketing — Update Event / ticketingbook Settings","description":"Update event fields including ticketingbook settings: ticketing_mode (native|external), external_url, hosted_by_name, dates, venue, capacity, waitlist_enabled, queue_enabled (virtual queue for high-demand on-sales), queue timing knobs. For external listing set ticketing_mode=external and external_url.\n\n**Required scope:** `ticketing:write`.\n\n**API reference:** Set ticketing_mode native|external and external_url for ticketingbook listing-only mode. Dashboard: PATCH /api/ticketing/events/{id}.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1},"description":{"type":"string"},"start_date":{"type":"string"},"end_date":{"type":"string"},"venue_name":{"type":"string"},"capacity":{"type":"integer","minimum":1},"ticketing_mode":{"type":"string","enum":["native","external"]},"external_url":{"type":"string","format":"uri"},"external_ticket_label":{"type":"string"},"hosted_by_name":{"type":"string"},"hosted_by_logo_url":{"type":"string","format":"uri"},"waitlist_enabled":{"type":"boolean"},"queue_enabled":{"type":"boolean","description":"Enable virtual queue — required before ticketing_get_queue_stats / ticketing_run_queue_admit"},"queue_opens_at":{"type":"string"},"queue_shopping_window_minutes":{"type":"integer","minimum":1},"queue_max_concurrent_shoppers":{"type":"integer","minimum":1},"slug":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"queueEnabled":{"type":"string"},"enableQueue":{"type":"string"},"enable_virtual_queue":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Update Event / ticketingbook Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_publish_event","title":"Ticketing — Publish to ticketingbook","description":"Publish draft event to ticketingbook. Requires ticket types; paid events require Stripe Connect ready (use ticketing_get_connect_status first).\n\n**Required scope:** `ticketing:write`.\n\n**API reference:** Publishes to ticketingbook.com/e/[slug]. Enforces Stripe Connect for paid tickets — use ticketing_get_connect_status first.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Publish to ticketingbook","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_cancel_event","title":"Ticketing — Cancel Event","description":"Cancel event — refunds paid registrations via Stripe and marks all registrations cancelled. Distinct from archive.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Cancel Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_duplicate_event","title":"Ticketing — Duplicate Event","description":"Clone an event (ticket types) into a new draft. Requires new start_date.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"sourceEventId":{"type":"string","format":"uuid"},"start_date":{"type":"string","description":"ISO 8601 for the copy"},"end_date":{"type":"string"},"title":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Duplicate Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_promote_waitlist","title":"Ticketing — Promote Waitlist Entry","description":"Offer a freed-up spot to the next waitlister and email a claim link.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Promote Waitlist Entry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_list_waitlist","title":"Ticketing — List Waitlist","description":"List waitlist entries for an event. Use before ticketing_promote_waitlist.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"waitlist":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — List Waitlist","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_create_promo_code","title":"Ticketing — Create Promo Code","description":"Create a discount promo code for an event. Code text is unique per organization (not per event) — reusing a code on a new event fails even if the old event is archived. Optional expiry (valid_until) and ticket-type restriction (applicable_ticket_type_ids).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"code":{"type":"string","minLength":1},"discountType":{"type":"string","enum":["percentage","fixed"]},"discountValue":{"type":"number","minimum":1},"maxUses":{"type":"integer","minimum":1},"valid_until":{"type":"string","description":"ISO 8601 expiry datetime"},"applicable_ticket_type_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Restrict to specific ticket types; omit for all types"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"promo_code":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Create Promo Code","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_list_promo_codes","title":"Ticketing — List Promo Codes","description":"List promo codes for an event — active and deactivated.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"promo_codes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — List Promo Codes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_deactivate_promo_code","title":"Ticketing — Deactivate Promo Code","description":"Deactivate a promo code so it can no longer be redeemed.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"code":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Deactivate Promo Code","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_issue_refund","title":"Ticketing — Issue Refund (Stripe / Store Credit)","description":"Refund a paid registration (Pro+). Stripe default; pass refundMethod=store_credit for store credit. Full refund cancels registration and promotes waitlist. Requires ticketing:refund scope.\n\n**API reference:** Dashboard equivalent: `POST /api/ticketing/registrations/{id}/refund`. Requires `ticketing:refund`. Supports stripe or store_credit.","inputSchema":{"type":"object","properties":{"registrationId":{"type":"string","format":"uuid"},"amount":{"type":"number","minimum":1},"refundMethod":{"type":"string","enum":["stripe","store_credit"]},"reason":{"type":"string","maxLength":500},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Issue Refund (Stripe / Store Credit)","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"ticketing_resend_ticket","title":"Ticketing — Resend Ticket Email","description":"Resend ticket confirmation email to a registrant.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"registrationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Resend Ticket Email","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_get_connect_status","title":"Ticketing — Stripe Connect Status","description":"Stripe Connect payout accounts + per-event payout readiness. Required before publishing paid events on ticketingbook.\n\n**Required scope:** `ticketing:read`.\n\n**API reference:** List Connect accounts and per-event payout readiness before paid publish.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"connect_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Stripe Connect Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_start_connect_onboard","title":"Ticketing — Start Connect Onboarding","description":"Start or resume Stripe Express onboarding for an event payout account. Returns onboarding_url for the organizer.\n\n**Required scope:** `ticketing:write`.\n\n**API reference:** Returns Stripe Express onboarding URL for event payouts.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"createNew":{"type":"boolean"},"label":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Start Connect Onboarding","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_get_queue_stats","title":"Ticketing — Virtual Queue Stats","description":"Virtual queue stats (waiting, shopping, conversion). Prerequisite: ticketing_set_virtual_queue with enabled=true on this eventId.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"queue_stats":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Virtual Queue Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_bulk_email_attendees","title":"Ticketing — Bulk Email Attendees","description":"Send a custom email to selected registrants (subject + body HTML/text).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"registrationIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":500},"subject":{"type":"string","minLength":1},"body":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Bulk Email Attendees","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_report_revenue","title":"Ticketing — Revenue Report","description":"Revenue summary (gross, refunds, net) for org or one event.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"startDate":{"type":"string"},"endDate":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Revenue Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_report_attendees","title":"Ticketing — Attendees Report","description":"Attendee summary: confirmed, checked-in, cancelled for one event.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Attendees Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_get_event","title":"Ticketing — Get Event Details","description":"Full organizer event record plus ticketingbook URL when published.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Get Event Details","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_find_attendee_orders","title":"Ticketing — Find Orders by Email (Support)","description":"Org-scoped find-your-tickets support: search registrations by attendee email with ticket page URLs.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"description":"Attendee email to search"},"eventId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Find Orders by Email (Support)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_preview_ticketingbook_page","title":"Ticketing — Preview ticketingbook Page","description":"Preview what attendees see on ticketingbook (public page payload + discover card). Works for draft (preview only) and published events.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"slug":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Preview ticketingbook Page","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_list_discover_listings","title":"Ticketing — Discover Listings (Org)","description":"Your org’s published events as they appear on ticketingbook discovery (URLs + enriched cards).\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"discover_listings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Discover Listings (Org)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_get_registration","title":"Ticketing — Get Registration","description":"Full registration detail with ticket lines and wallet pass URLs.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"registrationId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"registration":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Get Registration","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_get_wallet_pass_links","title":"Ticketing — Wallet Pass Links","description":"Apple/Google wallet pass URLs and ticket page link for a registration (organizer support desk).\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"registrationId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"wallet_pass_links":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Wallet Pass Links","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_transfer_registration","title":"Ticketing — Transfer Registration","description":"Initiate ticket transfer to a new recipient (sends claim email).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"registrationId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"},"recipientName":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Transfer Registration","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_update_ticket_type","title":"Ticketing — Update Ticket Type","description":"PATCH ticket type fields (price locked after sales).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"typeId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"price":{"type":"number","minimum":0},"quantity_total":{"type":"integer"},"min_per_order":{"type":"integer"},"max_per_order":{"type":"integer"},"sale_start_at":{"type":"string"},"sale_end_at":{"type":"string"},"is_active":{"type":"boolean"},"is_hidden":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ticket_type":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Update Ticket Type","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_estimate_order_totals","title":"Ticketing — Estimate Checkout Totals","description":"Checkout pricing preview (fees, tax, promos) without creating a registration or charging Stripe.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"tickets":{"type":"array","items":{"type":"object","properties":{"ticket_type_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1}},"required":["ticket_type_id","quantity"],"additionalProperties":false}},"promoCode":{"type":"string"},"donationAmount":{"type":"number"},"insurance":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Estimate Checkout Totals","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_get_event_analytics","title":"Ticketing — Event Analytics","description":"Page views, conversion, UTM/referrer breakdown for an event.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Event Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_report_check_in","title":"Ticketing — Check-In Report","description":"Check-in timeline report (5-min buckets, by method).\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Check-In Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_run_queue_admit","title":"Ticketing — Run Queue Admit Batch","description":"Manually admit the next batch from the virtual queue. Same logic as cron queue admit. Requires queue_enabled on the event.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Run Queue Admit Batch","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_create_registration","title":"Ticketing — Create Registration (free/comp)","description":"Create a confirmed free registration without Stripe checkout (free ticket types or 100% promo). Use for harness QA, comps, and manual check-in/transfer/refund testing.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"first_name":{"type":"string","minLength":1},"last_name":{"type":"string","minLength":1},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"tickets":{"type":"array","items":{"type":"object","properties":{"ticket_type_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1}},"required":["ticket_type_id","quantity"],"additionalProperties":false},"minItems":1},"promoCode":{"type":"string","description":"Optional promo code for 100% off paid tiers"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"registration":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Create Registration (free/comp)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_archive_event","title":"Ticketing — Archive Event","description":"Archive an event (retire from active lists).\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Archive Event","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ticketing_delete_draft_event","title":"Ticketing — Delete Draft Event","description":"Permanently delete a draft with zero registrations.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Delete Draft Event","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"mediahub_list_podcast_episodes","title":"Media Hub — List Podcast Episodes","description":"List podcast episodes with play/download counts, optionally for one feed.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"feedId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"podcast_episodes":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — List Podcast Episodes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_list_media_items","title":"Media Hub — List Media Items","description":"Browse Media Hub published content (sermons, podcast episodes, videos in media_items) — NOT org Media Library file assets at /media. For logos/images/documents use platform_list_media_library_files.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"search":{"type":"string"},"mediaType":{"type":"string","description":"Delivery format (audio, video, document) or semantic type (sermon, podcast_episode, teaching, …)"},"status":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — List Media Items","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_get_media_analytics","title":"Media Hub — Media Analytics","description":"Play/download/view analytics for one media item, or the org top-10 summary if no id given.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Media Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_list_import_jobs","title":"Media Hub — List Import Jobs","description":"List recent Media Hub import jobs (RSS, WordPress, CSV, SoundCloud, Subsplash) with status and counts.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"import_jobs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — List Import Jobs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_create_speaker","title":"Media Hub — Create Speaker","description":"Create a Media Hub speaker (pastor, author, creator). Auto-provisions their isolated speaker store for book/sermon sales.\n\n**Required scope:** `mediahub:write`.\n\n**API reference:** Create Media Hub speaker — auto-provisions speaker store.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Display name, e.g. Pastor Debo"},"role":{"type":"string","description":"e.g. Senior Pastor"},"email":{"type":"string","format":"email"},"bio":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"speaker":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Create Speaker","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_item","title":"Media Hub — Get Media Item","description":"Get one Media Hub item by id — title, status, speaker, formats. Dashboard parity for sermon/book detail.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Item","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_update_media_item","title":"Media Hub — Update Media Item","description":"Update Media Hub item metadata — title, description, speaker, visibility. Uses dashboard API (full validation pipeline).\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":["string","null"]},"speakerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"status":{"type":"string"},"visibility":{"type":"string"},"payload":{"type":"object","additionalProperties":true,"description":"Additional fields accepted by dashboard API"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Update Media Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_publish_media_item_api","title":"Media Hub — Publish Media Item API","description":"Publish a Media Hub item via dashboard API (triggers full publish pipeline). Complements mediahub_publish_media_item.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Publish Media Item API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_begin_content_upload","title":"Media Hub — Begin Content Upload","description":"Start Media Hub content upload (sermon video, ebook file). Returns uploadUrl — PUT bytes, then mediahub_complete_content_upload.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1},"fileSize":{"type":"integer","minimum":1},"contentType":{"type":"string"},"mediaItemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Begin Content Upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_complete_content_upload","title":"Media Hub — Complete Content Upload","description":"Finalize Media Hub content upload after PUT to uploadUrl.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","minLength":1,"description":"Storage path from begin upload (file_path)"},"mediaItemId":{"type":"string","format":"uuid"},"fileSizeBytes":{"type":"integer","minimum":1},"contentType":{"type":"string"},"originalFilename":{"type":"string"},"uploadId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Complete Content Upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_list_speakers","title":"Media Hub — List Speakers","description":"List Media Hub speakers (pastors, creators) with store linkage.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"speakers":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — List Speakers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_get_speaker","title":"Media Hub — Get Speaker","description":"Get one Media Hub speaker profile.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"speakerId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"speaker":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Speaker","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_update_speaker","title":"Media Hub — Update Speaker","description":"Update speaker name, bio, photo — dashboard parity.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"speakerId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"speaker":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Update Speaker","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_add_playlist_items","title":"Media Hub — Add Playlist Items","description":"Add Media Hub items to a playlist. Complements mediahub_create_playlist — required for playlist curation playbook.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"playlistId":{"type":"string","format":"uuid"},"mediaItemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Add Playlist Items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_resolve_copyright_flag","title":"Media Hub — Resolve Copyright Flag","description":"Resolve or dismiss a copyright flag on a media item.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"flagId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true,"description":"status, notes, resolution — dashboard API fields"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Resolve Copyright Flag","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_connect_social_account","title":"Media Hub — Connect Social Account","description":"Start OAuth connect for YouTube or Facebook social account. Returns authorization URL for the operator to complete in browser.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"provider":{"type":"string","enum":["youtube","facebook"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Connect Social Account","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_oauth_facebook_connect","title":"Media Hub — Get Social OAuth Facebook Connect","description":"Dashboard parity — GET /api/mediahub/social/oauth/facebook/connect. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_oauth_facebook_connect":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social OAuth Facebook Connect","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_oauth_youtube_connect","title":"Media Hub — Get Social OAuth Youtube Connect","description":"Dashboard parity — GET /api/mediahub/social/oauth/youtube/connect. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_oauth_youtube_connect":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social OAuth Youtube Connect","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_distribution_facebook_post","title":"Media Hub — Post Distribution Facebook Post","description":"Dashboard parity — POST /api/mediahub/distribution/facebook/post. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Distribution Facebook Post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_distribution_youtube_import","title":"Media Hub — Post Distribution Youtube Import","description":"Dashboard parity — POST /api/mediahub/distribution/youtube/import. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Distribution Youtube Import","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_distribution_youtube_upload","title":"Media Hub — Post Distribution Youtube Upload","description":"Dashboard parity — POST /api/mediahub/distribution/youtube/upload. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Distribution Youtube Upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_tiktok_share_kit","title":"Media Hub — Get Social Tiktok Share Kit","description":"Dashboard parity — GET /api/mediahub/social/tiktok/share-kit. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_tiktok_share_kit":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Tiktok Share Kit","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_worship_licenses_report","title":"Media Hub — Get Worship Licenses Report","description":"Dashboard parity — GET /api/mediahub/worship/licenses/report. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"worship_licenses_report":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Worship Licenses Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_accessibility_settings","title":"Media Hub — Get Accessibility Settings","description":"Dashboard parity — GET /api/mediahub/accessibility/settings. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"accessibility_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Accessibility Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_audiogram","title":"Media Hub — Post AI Audiogram","description":"Dashboard parity — POST /api/mediahub/ai/audiogram. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Audiogram","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_auto_clips","title":"Media Hub — Post AI Auto Clips","description":"Dashboard parity — POST /api/mediahub/ai/auto-clips. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Auto Clips","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_bulletin","title":"Media Hub — Post AI Bulletin","description":"Dashboard parity — POST /api/mediahub/ai/bulletin. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Bulletin","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_chatbot","title":"Media Hub — Post AI Chatbot","description":"Dashboard parity — POST /api/mediahub/ai/chatbot. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Chatbot","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_clip_suggestions","title":"Media Hub — Post AI Clip Suggestions","description":"Dashboard parity — POST /api/mediahub/ai/clip-suggestions. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Clip Suggestions","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_content_calendar","title":"Media Hub — Post AI Content Calendar","description":"Dashboard parity — POST /api/mediahub/ai/content-calendar. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Content Calendar","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_devotional","title":"Media Hub — Post AI Devotional","description":"Dashboard parity — POST /api/mediahub/ai/devotional. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Devotional","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_discussion_guide","title":"Media Hub — Post AI Discussion Guide","description":"Dashboard parity — POST /api/mediahub/ai/discussion-guide. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Discussion Guide","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_dubbing","title":"Media Hub — Post AI Dubbing","description":"Dashboard parity — POST /api/mediahub/ai/dubbing. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Dubbing","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_ebook_chapter","title":"Media Hub — Post AI Ebook Chapter","description":"Dashboard parity — POST /api/mediahub/ai/ebook-chapter. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Ebook Chapter","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_enhance_audio","title":"Media Hub — Post AI Enhance Audio","description":"Dashboard parity — POST /api/mediahub/ai/enhance-audio. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Enhance Audio","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_ai_for_you","title":"Media Hub — Get AI For You","description":"Dashboard parity — GET /api/mediahub/ai/for-you. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ai_for_you":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get AI For You","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_ai_insights","title":"Media Hub — Get AI Insights","description":"Dashboard parity — GET /api/mediahub/ai/insights. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ai_insights":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get AI Insights","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_newsletter","title":"Media Hub — Post AI Newsletter","description":"Dashboard parity — POST /api/mediahub/ai/newsletter. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Newsletter","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_pipeline","title":"Media Hub — Post AI Pipeline","description":"Dashboard parity — POST /api/mediahub/ai/pipeline. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Pipeline","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_prompted_playlist","title":"Media Hub — Post AI Prompted Playlist","description":"Dashboard parity — POST /api/mediahub/ai/prompted-playlist. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Prompted Playlist","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_quote_cards","title":"Media Hub — Post AI Quote Cards","description":"Dashboard parity — POST /api/mediahub/ai/quote-cards. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Quote Cards","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_score_content","title":"Media Hub — Post AI Score Content","description":"Dashboard parity — POST /api/mediahub/ai/score-content. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Score Content","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_seo","title":"Media Hub — Post AI Seo","description":"Dashboard parity — POST /api/mediahub/ai/seo. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Seo","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_series_recap","title":"Media Hub — Post AI Series Recap","description":"Dashboard parity — POST /api/mediahub/ai/series-recap. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Series Recap","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_social_posts","title":"Media Hub — Post AI Social Posts","description":"Dashboard parity — POST /api/mediahub/ai/social-posts. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Social Posts","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_summary","title":"Media Hub — Post AI Summary","description":"Dashboard parity — POST /api/mediahub/ai/summary. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"totals":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Summary","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_thumbnail","title":"Media Hub — Post AI Thumbnail","description":"Dashboard parity — POST /api/mediahub/ai/thumbnail. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Thumbnail","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_translation","title":"Media Hub — Post AI Translation","description":"Dashboard parity — POST /api/mediahub/ai/translation. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Translation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_distribution_live_import","title":"Media Hub — Post Distribution Live Import","description":"Dashboard parity — POST /api/mediahub/distribution/live-import. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Distribution Live Import","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_distribution_webhooks","title":"Media Hub — Get Distribution Webhooks","description":"Dashboard parity — GET /api/mediahub/distribution/webhooks. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"distribution_webhooks":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Distribution Webhooks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_email_drip_create","title":"Media Hub — Post Email Drip Create","description":"Dashboard parity — POST /api/mediahub/email-drip/create. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Email Drip Create","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_engagement_members","title":"Media Hub — Get Engagement Members","description":"Dashboard parity — GET /api/mediahub/engagement/members. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"engagement_members":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Engagement Members","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_engagement_overview","title":"Media Hub — Get Engagement Overview","description":"Dashboard parity — GET /api/mediahub/engagement/overview. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"engagement_overview":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Engagement Overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_get_export_csv","title":"Media Hub — Get Export Csv","description":"Dashboard parity — GET /api/mediahub/export/csv. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"export_csv":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Export Csv","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_import_csv","title":"Media Hub — Post Import Csv","description":"Dashboard parity — POST /api/mediahub/import/csv. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Import Csv","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_import_jobs","title":"Media Hub — Get Import Jobs","description":"Dashboard parity — GET /api/mediahub/import/jobs. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"import_jobs":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Import Jobs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_import_rss","title":"Media Hub — Post Import Rss","description":"Dashboard parity — POST /api/mediahub/import/rss. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Import Rss","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_import_soundcloud","title":"Media Hub — Post Import Soundcloud","description":"Dashboard parity — POST /api/mediahub/import/soundcloud. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Import Soundcloud","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_import_subsplash","title":"Media Hub — Post Import Subsplash","description":"Dashboard parity — POST /api/mediahub/import/subsplash. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Import Subsplash","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_import_wordpress","title":"Media Hub — Post Import Wordpress","description":"Dashboard parity — POST /api/mediahub/import/wordpress. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Import Wordpress","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_import_youtube","title":"Media Hub — Post Import Youtube","description":"Dashboard parity — POST /api/mediahub/import/youtube. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Import Youtube","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_items_bulk","title":"Media Hub — Post Items Bulk","description":"Dashboard parity — POST /api/mediahub/items/bulk. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Items Bulk","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_personalization_discover_weekly","title":"Media Hub — Get Personalization Discover Weekly","description":"Dashboard parity — GET /api/mediahub/personalization/discover-weekly. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"personalization_discover_weekly":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Personalization Discover Weekly","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_personalization_for_you","title":"Media Hub — Get Personalization For You","description":"Dashboard parity — GET /api/mediahub/personalization/for-you. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"personalization_for_you":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Personalization For You","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_personalization_stats","title":"Media Hub — Get Personalization Stats","description":"Dashboard parity — GET /api/mediahub/personalization/stats. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"personalization_stats":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Personalization Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_personalization_wrapped","title":"Media Hub — Get Personalization Wrapped","description":"Dashboard parity — GET /api/mediahub/personalization/wrapped. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"personalization_wrapped":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Personalization Wrapped","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_rsscom_distribute","title":"Media Hub — Post Rsscom Distribute","description":"Dashboard parity — POST /api/mediahub/rsscom/distribute. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Rsscom Distribute","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_rsscom_subscribe","title":"Media Hub — Post Rsscom Subscribe","description":"Dashboard parity — POST /api/mediahub/rsscom/subscribe. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Rsscom Subscribe","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_accounts","title":"Media Hub — Get Social Accounts","description":"Dashboard parity — GET /api/mediahub/social/accounts. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_accounts":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Accounts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_analytics","title":"Media Hub — Get Social Analytics","description":"Dashboard parity — GET /api/mediahub/social/analytics. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_calendar","title":"Media Hub — Get Social Calendar","description":"Dashboard parity — GET /api/mediahub/social/calendar. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_calendar":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Calendar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_posts","title":"Media Hub — Get Social Posts","description":"Dashboard parity — GET /api/mediahub/social/posts. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_posts":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Posts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_social_share_card","title":"Media Hub — Post Social Share Card","description":"Dashboard parity — POST /api/mediahub/social/share-card. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Social Share Card","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_storage_usage","title":"Media Hub — Get Storage Usage","description":"Dashboard parity — GET /api/mediahub/storage/usage. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"storage_usage":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Storage Usage","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_studio_apply","title":"Media Hub — Post Studio Apply","description":"Dashboard parity — POST /api/mediahub/studio/apply. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Studio Apply","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_studio_batch","title":"Media Hub — Post Studio Batch","description":"Dashboard parity — POST /api/mediahub/studio/batch. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Studio Batch","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_studio_insights","title":"Media Hub — Get Studio Insights","description":"Dashboard parity — GET /api/mediahub/studio/insights. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"studio_insights":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Studio Insights","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_studio_pricing","title":"Media Hub — Post Studio Pricing","description":"Dashboard parity — POST /api/mediahub/studio/pricing. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Studio Pricing","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_upload_complete","title":"Media Hub — Post Upload Complete","description":"Dashboard parity — POST /api/mediahub/upload/complete. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Upload Complete","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_workflow_approve","title":"Media Hub — Post Workflow Approve","description":"Dashboard parity — POST /api/mediahub/workflow/approve. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Workflow Approve","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_workflow_batch_process","title":"Media Hub — Post Workflow Batch Process","description":"Dashboard parity — POST /api/mediahub/workflow/batch-process. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Workflow Batch Process","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_workflow_batch_status","title":"Media Hub — Get Workflow Batch Status","description":"Dashboard parity — GET /api/mediahub/workflow/batch-status. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"workflow_batch_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Workflow Batch Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_post_workflow_brief","title":"Media Hub — Post Workflow Brief","description":"Dashboard parity — POST /api/mediahub/workflow/brief. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Workflow Brief","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_workflow_briefs","title":"Media Hub — Get Workflow Briefs","description":"Dashboard parity — GET /api/mediahub/workflow/briefs. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"workflow_briefs":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Workflow Briefs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_workflow_queue","title":"Media Hub — Get Workflow Queue","description":"Dashboard parity — GET /api/mediahub/workflow/queue. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"workflow_queue":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Workflow Queue","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_workflow_reject","title":"Media Hub — Post Workflow Reject","description":"Dashboard parity — POST /api/mediahub/workflow/reject. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Workflow Reject","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_workflow_submit","title":"Media Hub — Post Workflow Submit","description":"Dashboard parity — POST /api/mediahub/workflow/submit. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Workflow Submit","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_worship_distribute","title":"Media Hub — Post Worship Distribute","description":"Dashboard parity — POST /api/mediahub/worship/distribute. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Worship Distribute","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_worship_licenses","title":"Media Hub — Get Worship Licenses","description":"Dashboard parity — GET /api/mediahub/worship/licenses. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"worship_licenses":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Worship Licenses","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_worship_songbook","title":"Media Hub — Post Worship Songbook","description":"Dashboard parity — POST /api/mediahub/worship/songbook. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Worship Songbook","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_bookmarks","title":"Media Hub — Get Bookmarks","description":"Dashboard parity — GET /api/mediahub/bookmarks. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"bookmarks":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Bookmarks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_brand_kit","title":"Media Hub — Get Brand Kit","description":"Dashboard parity — GET /api/mediahub/brand-kit. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"brand_kit":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Brand Kit","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_categories","title":"Media Hub — Get Categories","description":"Dashboard parity — GET /api/mediahub/categories. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"categories":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Categories","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_email_drip","title":"Media Hub — Get Email Drip","description":"Dashboard parity — GET /api/mediahub/email-drip. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_drip":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Email Drip","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_history","title":"Media Hub — Get History","description":"Dashboard parity — GET /api/mediahub/history. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"history":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get History","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_items","title":"Media Hub — Get Items","description":"Dashboard parity — GET /api/mediahub/items. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"items":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Items","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media","title":"Media Hub — Get Media","description":"Dashboard parity — GET /api/mediahub/media. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_overview","title":"Media Hub — Get Overview","description":"Dashboard parity — GET /api/mediahub/overview. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"overview":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_get_playlists","title":"Media Hub — Get Playlists","description":"Dashboard parity — GET /api/mediahub/playlists. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"playlists":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Playlists","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_podcast_feeds","title":"Media Hub — Get Podcast Feeds","description":"Dashboard parity — GET /api/mediahub/podcast-feeds. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"podcast_feeds":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Podcast Feeds","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_queue","title":"Media Hub — Get Queue","description":"Dashboard parity — GET /api/mediahub/queue. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"queue":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Queue","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_resources","title":"Media Hub — Get Resources","description":"Dashboard parity — GET /api/mediahub/resources. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"resources":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Resources","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_rsscom","title":"Media Hub — Get Rsscom","description":"Dashboard parity — GET /api/mediahub/rsscom. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"rsscom":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Rsscom","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_series","title":"Media Hub — Get Series","description":"Dashboard parity — GET /api/mediahub/series. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"series":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Series","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_settings","title":"Media Hub — Get Settings","description":"Dashboard parity — GET /api/mediahub/settings. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_speakers","title":"Media Hub — Get Speakers","description":"Dashboard parity — GET /api/mediahub/speakers. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"speakers":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Speakers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_team","title":"Media Hub — Get Team","description":"Dashboard parity — GET /api/mediahub/team. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Team","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_topics","title":"Media Hub — Get Topics","description":"Dashboard parity — GET /api/mediahub/topics. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"topics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Topics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_upload","title":"Media Hub — Post Upload","description":"Dashboard parity — POST /api/mediahub/upload. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_watch_parties","title":"Media Hub — Post Watch Parties","description":"Dashboard parity — POST /api/mediahub/watch-parties. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Watch Parties","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_worship","title":"Media Hub — Get Worship","description":"Dashboard parity — GET /api/mediahub/worship. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"worship":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Worship","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_ai_content_id_publish","title":"Media Hub — Post AI Content Id Publish","description":"Dashboard parity — POST /api/mediahub/ai/content/:id/publish. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post AI Content Id Publish","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_ai_content_by_media_mediaItemId","title":"Media Hub — Get AI Content By Media Mediaitemid","description":"Dashboard parity — GET /api/mediahub/ai/content/by-media/:mediaItemId. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get AI Content By Media Mediaitemid","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_social_posts_id_publish_now","title":"Media Hub — Post Social Posts Id Publish Now","description":"Dashboard parity — POST /api/mediahub/social/posts/:id/publish-now. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Social Posts Id Publish Now","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_social_posts_id_sync_status","title":"Media Hub — Post Social Posts Id Sync Status","description":"Dashboard parity — POST /api/mediahub/social/posts/:id/sync-status. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Social Posts Id Sync Status","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_patch_ai_content_id","title":"Media Hub — Patch AI Content Id","description":"Dashboard parity — PATCH /api/mediahub/ai/content/:id. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Patch AI Content Id","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_patch_copyright_flags_id","title":"Media Hub — Patch Copyright Flags Id","description":"Dashboard parity — PATCH /api/mediahub/copyright/flags/:id. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Patch Copyright Flags Id","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_distribution_webhooks_id","title":"Media Hub — Get Distribution Webhooks Id","description":"Dashboard parity — GET /api/mediahub/distribution/webhooks/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"distribution_webhooks_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Distribution Webhooks Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_items_id_comments","title":"Media Hub — Get Items Id Comments","description":"Dashboard parity — GET /api/mediahub/items/:id/comments. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"items_id_comments":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Items Id Comments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_items_id_duplicate","title":"Media Hub — Post Items Id Duplicate","description":"Dashboard parity — POST /api/mediahub/items/:id/duplicate. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Items Id Duplicate","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_items_id_publish","title":"Media Hub — Post Items Id Publish","description":"Dashboard parity — POST /api/mediahub/items/:id/publish. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Items Id Publish","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_items_id_rate","title":"Media Hub — Post Items Id Rate","description":"Dashboard parity — POST /api/mediahub/items/:id/rate. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Items Id Rate","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_items_id_share","title":"Media Hub — Post Items Id Share","description":"Dashboard parity — POST /api/mediahub/items/:id/share. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Items Id Share","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id_ai_content","title":"Media Hub — Get Media Id AI Content","description":"Dashboard parity — GET /api/mediahub/media/:id/ai-content. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id_ai_content":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id AI Content","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id_analytics","title":"Media Hub — Get Media Id Analytics","description":"Dashboard parity — GET /api/mediahub/media/:id/analytics. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id_clips","title":"Media Hub — Get Media Id Clips","description":"Dashboard parity — GET /api/mediahub/media/:id/clips. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id_clips":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id Clips","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id_notes","title":"Media Hub — Get Media Id Notes","description":"Dashboard parity — GET /api/mediahub/media/:id/notes. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id_notes":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id Notes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id_related","title":"Media Hub — Get Media Id Related","description":"Dashboard parity — GET /api/mediahub/media/:id/related. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id_related":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id Related","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id_transcript","title":"Media Hub — Get Media Id Transcript","description":"Dashboard parity — GET /api/mediahub/media/:id/transcript. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id_transcript":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id Transcript","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_personalization_recommendations_mediaItemId","title":"Media Hub — Get Personalization Recommendations Mediaitemid","description":"Dashboard parity — GET /api/mediahub/personalization/recommendations/:mediaItemId. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Personalization Recommendations Mediaitemid","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_podcast_feeds_id_items","title":"Media Hub — Get Podcast Feeds Id Items","description":"Dashboard parity — GET /api/mediahub/podcast-feeds/:id/items. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"podcast_feeds_id_items":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Podcast Feeds Id Items","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_podcast_feeds_id_rss","title":"Media Hub — Get Podcast Feeds Id Rss","description":"Dashboard parity — GET /api/mediahub/podcast-feeds/:id/rss. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"podcast_feeds_id_rss":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Podcast Feeds Id Rss","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_series_id_reorder","title":"Media Hub — Post Series Id Reorder","description":"Dashboard parity — POST /api/mediahub/series/:id/reorder. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Series Id Reorder","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_delete_social_accounts_id","title":"Media Hub — Delete Social Accounts Id","description":"Dashboard parity — DELETE /api/mediahub/social/accounts/:id. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Delete Social Accounts Id","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"mediahub_get_social_posts_id","title":"Media Hub — Get Social Posts Id","description":"Dashboard parity — GET /api/mediahub/social/posts/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_posts_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Posts Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_proof_mediaItemId","title":"Media Hub — Get Social Proof Mediaitemid","description":"Dashboard parity — GET /api/mediahub/social/proof/:mediaItemId. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Proof Mediaitemid","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_watch_parties_code_sync","title":"Media Hub — Get Watch Parties Code Sync","description":"Dashboard parity — GET /api/mediahub/watch-parties/:code/sync. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"watch_parties_code_sync":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Watch Parties Code Sync","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_worship_id_link_setlist","title":"Media Hub — Post Worship Id Link Setlist","description":"Dashboard parity — POST /api/mediahub/worship/:id/link-setlist. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Worship Id Link Setlist","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_worship_songbook_id","title":"Media Hub — Get Worship Songbook Id","description":"Dashboard parity — GET /api/mediahub/worship/songbook/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"worship_songbook_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Worship Songbook Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_categories_id","title":"Media Hub — Get Categories Id","description":"Dashboard parity — GET /api/mediahub/categories/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"categories_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Categories Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_delete_email_drip_id","title":"Media Hub — Delete Email Drip Id","description":"Dashboard parity — DELETE /api/mediahub/email-drip/:id. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Delete Email Drip Id","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"mediahub_get_items_id","title":"Media Hub — Get Items Id","description":"Dashboard parity — GET /api/mediahub/items/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"items_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Items Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_media_id","title":"Media Hub — Get Media Id","description":"Dashboard parity — GET /api/mediahub/media/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Media Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_podcast_feeds_id","title":"Media Hub — Get Podcast Feeds Id","description":"Dashboard parity — GET /api/mediahub/podcast-feeds/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"podcast_feeds_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Podcast Feeds Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_delete_queue_itemId","title":"Media Hub — Delete Queue Itemid","description":"Dashboard parity — DELETE /api/mediahub/queue/:itemId. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"itemId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Delete Queue Itemid","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"mediahub_get_resources_id","title":"Media Hub — Get Resources Id","description":"Dashboard parity — GET /api/mediahub/resources/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"resources_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Resources Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_series_id","title":"Media Hub — Get Series Id","description":"Dashboard parity — GET /api/mediahub/series/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"series_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Series Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_speakers_id","title":"Media Hub — Get Speakers Id","description":"Dashboard parity — GET /api/mediahub/speakers/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"speakers_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Speakers Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_studio_action","title":"Media Hub — Get Studio Action","description":"Dashboard parity — GET /api/mediahub/studio/:action. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"action":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"studio_action":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Studio Action","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_post_studio_action","title":"Media Hub — Post Studio Action","description":"Dashboard parity — POST /api/mediahub/studio/:action. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"action":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Post Studio Action","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_topics_id","title":"Media Hub — Get Topics Id","description":"Dashboard parity — GET /api/mediahub/topics/:id. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"topics_id":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Topics Id","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_watch_parties_code","title":"Media Hub — Get Watch Parties Code","description":"Dashboard parity — GET /api/mediahub/watch-parties/:code. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"watch_parties_code":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Watch Parties Code","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_patch_podcast_feeds_feedId_items_itemId","title":"Media Hub — Patch Podcast Feeds Feedid Items Itemid","description":"Dashboard parity — PATCH /api/mediahub/podcast-feeds/:feedId/items/:itemId. Prefer this over mediahub_invoke_api_write.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"feedId":{"type":"string","minLength":1},"itemId":{"type":"string","minLength":1},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Patch Podcast Feeds Feedid Items Itemid","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_oauth_provider_step","title":"Media Hub — Get Social OAuth Provider Step","description":"Dashboard parity — GET /api/mediahub/social/oauth/:provider/:step. Prefer this over mediahub_invoke_api_read.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"provider":{"type":"string","minLength":1},"step":{"type":"string","minLength":1},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_oauth_provider_step":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social OAuth Provider Step","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_create_media_item","title":"Media Hub — Create Media Item","description":"Create a draft Media Hub item. mediaType is delivery format (audio/video/document/image). For pastor books use mediaType document and set speakerId or speakerName so store_create_product can list on their speaker shop. NOT org Media Library files.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"mediaType":{"type":"string","enum":["video","audio","document","image"]},"description":{"type":"string"},"speakerId":{"type":"string","format":"uuid","description":"Media Hub speaker — required for pastor personal store listings"},"speakerName":{"type":"string","description":"Find speaker by name, e.g. Pastor Debo Adegoke — use when speakerId unknown"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"media_item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Create Media Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_assign_speaker_to_media_items","title":"Media Hub — Assign Speaker To Media Items","description":"Link one or more Media Hub items to a speaker (sets speaker_id). Required before store_create_product on a pastor speaker shop. Use for batch book setup when items were created without a speaker.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50},"speakerId":{"type":"string","format":"uuid"},"speakerName":{"type":"string","description":"e.g. Pastor Debo Adegoke — used when speakerId is unknown"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Assign Speaker To Media Items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_publish_media_item","title":"Media Hub — Publish Media Item","description":"Publish a media item immediately (sets status to published).\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Publish Media Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_cleanup_probe_items","title":"Media Hub — Cleanup Probe Items","description":"Remove empty MCP smoke-test Media Hub drafts (titles starting with invoke-all-). Use this instead of mediahub_delete_media_item when cleaning probe clutter — supports bulk Allow in Claude. Does not touch published sermons or real uploads.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"titlePrefix":{"type":"string","minLength":1,"maxLength":40},"dryRun":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Cleanup Probe Items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_queue_rss_import","title":"Media Hub — Queue Rss Import","description":"Queue an RSS/Atom podcast feed import — creates draft media items in the background.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"rssUrl":{"type":"string","format":"uri"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Queue Rss Import","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_batch_process","title":"Media Hub — Batch Process","description":"Queue batch transcribe, AI enrichment, or publish for multiple media items (Scale tier).\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50},"operations":{"type":"array","items":{"type":"string","enum":["transcribe","ai_pipeline","publish"]},"minItems":1,"description":"transcribe → Whisper; ai_pipeline → summary + social posts; publish → set published"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Batch Process","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_attribution_report","title":"Media Hub — Get Attribution Report","description":"Attribution report: media plays linked to giving, small group signups, and event registrations (Scale tier, admin).\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"attribution_report":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Attribution Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_scan_copyright","title":"Media Hub — Scan Copyright","description":"Run ACRCloud / heuristic copyright scan on a media item (Pro+).\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Scan Copyright","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_list_copyright_flags","title":"Media Hub — List Copyright Flags","description":"List copyright flags for the org (admin, Pro+).\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","flagged","scanned_clean","resolved","dismissed"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"copyright_flags":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — List Copyright Flags","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_capture_lead","title":"Media Hub — Capture Lead","description":"Capture a media hub lead (email/name) from a public item with CRM logging.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"source":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Capture Lead","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_create_prompted_playlist","title":"Media Hub — Create Prompted Playlist","description":"Generate an AI playlist from a natural-language prompt (Scale tier).\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","minLength":3,"maxLength":500},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"prompted_playlist":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Create Prompted Playlist","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_get_social_trending","title":"Media Hub — Get Social Trending","description":"Trending media items from social/analytics play counts (last 7 days).\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"social_trending":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Get Social Trending","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_list_streams","title":"Live — List Streams","description":"List live streams with viewer stats, channel, and series folder, optionally filtered by status (scheduled, live, ended).\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["scheduled","live","ended","all"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"streams":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Streams","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_get_stream_stats","title":"Live — Get Stream Stats","description":"Viewer, watch-time, interaction, and giving stats for one stream.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stream_stats":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Stream Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_get_stream","title":"Live — Open Stream (channel, captions, voice)","description":"Get one live event: title, status, schedule, broadcast channel, series folder, captions, languages, caption look, AI vs a person per language, Speak booth links, whether a translator is on air, and that Yoruba is heard natively then interpreted (not a glossary). Same as opening a stream in Live. Encoder key lives on the channel — use live_get_channel.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stream":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Open Stream (channel, captions, voice)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_list_caption_styles","title":"Live — Caption Looks","description":"List caption looks for a live. Cinema is the default — centred words with a soft shadow. Same as the caption library on the live desk.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"caption_styles":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Caption Looks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_list_hear_voices","title":"Live — Hear Voices","description":"List saved Hear readings. English is the house default. You can keep many named voices per language and see which one is on air. Same as Your Hear voices on the live desk.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hear_voices":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Hear Voices","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_list_interpretation_school","title":"Live — Teach Hear","description":"List Teach Hear sermons, unmarked lines, named voices, Sunday readiness, and the lasting Hear book (meaning + how a word is said). Same as Live → Teach Hear. Sunday Hear uses this book. Raised pulpit lines stay marked so translations keep the heat.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid","description":"Open one sermon’s lines. Omit to see the latest ready sermon."},"query":{"type":"string","description":"Search the Hear book and open lines by heard or house wording."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"interpretation_school":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Teach Hear","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_list_destinations","title":"Live — List Destinations","description":"List connected live destinations (YouTube, Facebook, Twitch, Instagram, TikTok, and others). Same as Destinations. Never mention encoder URLs to the church.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"destinations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Destinations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_list_platforms","title":"Live — List Platforms","description":"List every live destination sendifai can copy to, with how to connect (one-click sign-in vs session key). Same catalog as Destinations → Add new.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"platforms":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Platforms","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_list_facebook_pages","title":"Live — List Facebook Pages","description":"List Facebook Pages on the connected account and which Page is selected for going live. Same as Destinations Page picker.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"facebook_pages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Facebook Pages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_list_resources","title":"Live — List Resources","description":"List highlight clips, full recordings, and transcripts from lives. Same as Live → Resources. Clips are created automatically after a live — download them; nothing is posted to social accounts.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Resources","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_get_resource","title":"Live — Get Resource","description":"Get a highlight clip, recording, or transcript for download. Same as Live → Resources → Download. Returns a file link and name — nothing is posted to social accounts.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["clip","recording","transcript"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"resource":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Resource","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_get_simulcast_health","title":"Live — Get Simulcast Health","description":"Check whether sendifai is copying this live to each connected destination (idle, starting, broadcasting, or errored). Also shows whether each copy still uses the original title, description, and poster.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"simulcast_health":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Simulcast Health","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_get_origin_health","title":"Live — Get Origin Health","description":"Check whether the house origin is up — the encoder Test uses. Same as asking if the house encoder is ready. Main stays on the current encoder until a Sunday is proven. Never name vendors.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"origin_health":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Origin Health","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_list_channels","title":"Live — List Channels","description":"List broadcast channels — persistent encoder identities with a stream key. Same as Live → Channels. If a channel still has an old key (needs_new_stream_key), call live_regenerate_channel_key with confirm:true. Never send them to the dashboard for a new key. Series folders sit inside a channel. Not messaging Channels.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"channels":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Channels","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_get_channel","title":"Live — Get Channel","description":"Get one broadcast channel: RTMP URL, stream key, last-stream language and captions the next event will keep, series folders, and streams on that key. If needs_new_stream_key, call live_regenerate_channel_key with confirm:true — never the dashboard.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"channelId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"channel":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Channel","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_list_series","title":"Live — List Series","description":"List live series folders, optionally inside one broadcast channel. Same as Live → Series. The stream key lives on the channel, not the folder.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"channelId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"series":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Series","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_get_series","title":"Live — Get Series","description":"Get one live series folder and the broadcast channel it sits in. Same as opening a series in Live → Series. The stream key lives on the channel.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"series":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Series","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_get_audience","title":"Live — Get Audience","description":"Combined live audience and Live slider status: peak across sendifai + YouTube + Facebook + Twitch, strikes, whether Live is paused, and the price to accept. Same as Billing → Live audience.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"audience":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Get Audience","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_schedule_stream","title":"Live — Schedule Stream","description":"Schedule a new live event on a broadcast channel. Reuses that channel’s stream key — does not mint a new encoder key. Omit destinationIds or pass [] for sendifai only. Passed ids attach those destinations. Pass enableDestinations:true to turn Enable on in the same call — never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"scheduledAt":{"type":"string","description":"ISO datetime"},"broadcastChannelId":{"type":"string","format":"uuid","description":"Broadcast channel from live_list_channels. Defaults to Main."},"seriesId":{"type":"string","format":"uuid","description":"Series folder from live_list_series. Must belong to the channel."},"destinationIds":{"type":"array","items":{"type":"string"},"description":"Destination ids from live_list_destinations. Omit or empty = sendifai player only. Passed ids attach those destinations. Use enableDestinations:true to turn Enable on now."},"enableDestinations":{"type":"boolean","description":"True = turn Enable on for every passed destination. Same as the Enable switch. Copying starts on Go Live, or immediately if already live."},"sourceAspect":{"type":"string","enum":["landscape_16_9","vertical_9_16","square_1_1"],"description":"Picture shape of this live. Default landscape 16:9. Instagram/TikTok stay off unless they fit or you pass their ids."},"speakerName":{"type":"string","description":"Who is presenting this live (speaker, host, instructor, artist — by org type). Same as New Live. Not the org pastor title."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Schedule Stream","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_create_channel","title":"Live — Create Channel","description":"Create a broadcast channel with a stable stream key. Same as Live → Channels → New Channel. Put the key in the encoder once. Until Preview or Go Live the stream key is invalid and the encoder should refuse to start. The next stream remembers the last language and captions used on that channel.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Channel name, e.g. Main, Yoruba, or English"},"sourceLanguage":{"type":"string","description":"Remembered pulpit language until this channel has a live to copy, e.g. yo or en."},"captionsEnabled":{"type":"boolean"},"captionLanguages":{"type":"array","items":{"type":"string"}},"captionStyle":{"type":"string","description":"Caption look the next stream should keep from live_list_caption_styles."},"voiceMode":{"type":"string","enum":["machine","human"]},"translationLanguages":{"type":"array","items":{"type":"string"}},"speakerVoice":{"type":"string","enum":["auto","woman","man"]},"speakerPitch":{"type":"string","enum":["auto","high","mid","low"]},"hideCameraWords":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"channel":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Create Channel","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_update_channel","title":"Live — Update Channel","description":"Rename a broadcast channel, or remember language, caption look, and Hear languages for the next stream on that channel. Does not refresh the stream key — that is live_regenerate_channel_key. New streams normally copy the last live. Use this only when they ask to remember settings before the next Sunday. Same as Live → Channels.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"channelId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"description":"New channel name. The stream key stays the same."},"sourceLanguage":{"type":"string","description":"Pulpit language the next stream on this channel should keep, e.g. yo or en."},"captionsEnabled":{"type":"boolean"},"captionLanguages":{"type":"array","items":{"type":"string"}},"captionStyle":{"type":"string","description":"Caption look the next stream should keep from live_list_caption_styles."},"voiceMode":{"type":"string","enum":["machine","human"]},"translationLanguages":{"type":"array","items":{"type":"string"}},"speakerVoice":{"type":"string","enum":["auto","woman","man"]},"speakerPitch":{"type":"string","enum":["auto","high","mid","low"]},"hideCameraWords":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"channel":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Update Channel","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_regenerate_channel_key","title":"Live — New Stream Key on a Channel","description":"Refresh, rotate, or replace the stream key on an existing broadcast channel (Main, Test, or any channel). Same as Live → Channels → New stream key. Preview without confirm. confirm:true mints. The old key stops working. Refuses while the channel is live. Execute this when they ask — never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"channelId":{"type":"string","format":"uuid"},"confirm":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — New Stream Key on a Channel","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_delete_channel","title":"Live — Delete Channel","description":"Delete a broadcast channel (Henry, Test 2, or any unused channel). Same as Live → Channels → Delete channel. Preview without confirm. confirm:true removes the channel and its stream key. Refuses the last remaining channel, a live channel, or one with a stream still set up — then live_delete_stream those streams first. Execute when they ask — never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"channelId":{"type":"string","format":"uuid"},"confirm":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Delete Channel","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"live_create_series","title":"Live — Create Series","description":"Create a series folder inside a broadcast channel. Same as Live → Series. The stream key stays on the channel.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"broadcastChannelId":{"type":"string","format":"uuid"},"startDate":{"type":"string"},"endDate":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"serie":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Create Series","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_update_series","title":"Live — Update Series","description":"Rename or move a live series folder to another broadcast channel. Same as Live → Series edit.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"broadcastChannelId":{"type":"string","format":"uuid"},"startDate":{"type":"string"},"endDate":{"type":"string"},"thumbnailUrl":{"type":"string"},"brandColour":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"serie":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Update Series","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_delete_series","title":"Live — Delete Series","description":"Delete a live series folder. Streams stay; they keep the channel stream key.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Delete Series","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"live_duplicate_stream","title":"Live — Duplicate Stream","description":"Copy an existing live into a new stream — same title, channel, series folder, destinations still connected, captions, posters, and notify settings. Preview without confirm (returns the New Stream draft). confirm:true reuses the channel stream key. Never copies passwords, viewers, or the recording. Dead destinations are dropped. Defaults to Stream now; pass startWhen=scheduled to use next week’s same weekday and time. Private copies need password.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"confirm":{"type":"boolean"},"startWhen":{"type":"string","enum":["now","scheduled"]},"title":{"type":"string"},"password":{"type":"string"},"scheduledAt":{"type":"string","description":"ISO or local datetime when startWhen is scheduled"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Duplicate Stream","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_update_stream","title":"Live — Update stream or move channel","description":"Update a live: title, description, schedule, presenter, or move it onto another broadcast channel. Moving channel copies that channel’s stream key, RTMP, and encoder URLs onto this live — same as Encoder on the desk. Ended streams can still be filed into a series or channel folder without changing the historical key. Title and schedule stay locked after the live ends.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"scheduledAt":{"type":"string"},"speakerName":{"type":"string","description":"Who is presenting this live. Same as New Live. Empty string clears it."},"seriesId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Series folder from live_list_series. Allowed on ended streams."},"broadcastChannelId":{"type":"string","format":"uuid","description":"Broadcast channel from live_list_channels. Allowed on ended streams."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stream":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Update stream or move channel","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_captions","title":"Live — Captions, Languages & AI Voice","description":"Turn live captions on or off, pick languages (Yoruba ↔ English both ways), choose a caption look, set the stream language, set AI voice or a person per language, and match the AI voice to a woman or a man. Raised voice is heard automatically — keep the shout in the translation. Yoruba, Igbo, Hausa, and Swahili are heard natively — not guessed from English captions — then AI interprets the sermon (not a word-for-word gloss). A person can speak French while AI speaks Spanish. Same as the live desk. Never send the church to Settings for this.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"captionsEnabled":{"type":"boolean","description":"Turn captions on or off for the sendifai watch page."},"captionLanguages":{"type":"array","items":{"type":"string"},"description":"Caption languages, e.g. yo and en. Yoruba ↔ English both ways."},"captionStyle":{"type":"string","description":"Caption look from live_list_caption_styles. Cinema is the default — centred words with a soft shadow."},"sourceLanguage":{"type":"string","description":"Language spoken on the platform, e.g. yo or en."},"voiceMode":{"type":"string","enum":["machine","human"],"description":"machine = AI speaks the translation. human = a person uses Speak."},"translationLanguages":{"type":"array","items":{"type":"string"},"description":"Spoken translation languages excluding the platform language."},"languageVoices":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"Language code, e.g. fr or es."},"voice":{"type":"string","enum":["machine","human"],"description":"machine = AI. human = a person in Speak."}},"required":["language","voice"],"additionalProperties":false},"description":"Per-language voice. A person can speak French while AI speaks Spanish."},"speakerVoice":{"type":"string","enum":["auto","woman","man"],"description":"auto = listen for a woman or a man. Or lock to woman or man."},"speakerPitch":{"type":"string","enum":["auto","high","mid","low"],"description":"auto = listen for high or low pitch. Or lock higher, mid, or lower."},"hideCameraWords":{"type":"boolean","description":"When true, hide our captions for a moment if the camera already has words along the bottom. Same as the live desk switch."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Captions, Languages & AI Voice","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_preview_stream","title":"Live — Preview on or off (encoder, destinations off until Go Live)","description":"Open Preview on a scheduled live so every encoder can send. Destinations stay off until Go Live. Pass off:true to stop Preview, kick every encoder, and clear leftover copies. The live goes back to scheduled — this is not End.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"off":{"type":"boolean","description":"Turn Preview off. Kicks every encoder and clears leftover copies. The live goes back to scheduled."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Preview on or off (encoder, destinations off until Go Live)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_start_stream","title":"Live — Go Live","description":"Mark a scheduled stream live (same as Go Live). Starts copying to channels that are already On.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Go Live","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_end_stream","title":"Live — End Stream","description":"End a live stream.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — End Stream","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_audience_auto_scale","title":"Live — Set Audience Auto Scale","description":"Turn on or off automatic Live slider raises. When on, a finished live that peaked over the slider moves Live to the covering tier. Same as Billing → Raise Live to match our audience.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"autoScale":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Set Audience Auto Scale","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_accept_audience_upgrade","title":"Live — Accept Audience Upgrade","description":"Accept the Live slider that covers the last combined peak (sendifai + destinations). Clears strikes and unlocks Live. Same as Accept on Billing.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Accept Audience Upgrade","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_notify","title":"Live — Notify","description":"Send a reminder or we-are-live notification for a stream.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["starting_soon","going_live"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Notify","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_moderate_interaction","title":"Live — Moderate Interaction","description":"Approve or reject a live prayer request or question.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"interactionId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["approved","rejected"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Moderate Interaction","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_add_destination","title":"Live — Add Destination","description":"Save a guided live destination (Instagram session key, TikTok, Kick, X, custom server). YouTube, Facebook, and Twitch need Connect in Destinations — this tool will say so instead of inventing a key.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"platform":{"type":"string","minLength":1},"label":{"type":"string"},"streamKey":{"type":"string"},"server":{"type":"string"},"defaultTitle":{"type":"string"},"defaultDescription":{"type":"string"},"preferredAspect":{"type":"string","enum":["landscape_16_9","vertical_9_16","square_1_1"],"description":"Picture this destination expects. Instagram/TikTok default vertical. YouTube/Facebook default landscape."},"rotation":{"type":"number","enum":[0,90,180,270],"description":"Rotate the camera so a 16:9 Sunday feed can fill a vertical channel. sendifai copies as-is — rotate in the camera or encoder."},"fit":{"type":"string","enum":["fit","fill"],"description":"fit = whole picture with bars; fill = frame the camera to crop."},"width":{"type":"integer","minimum":144,"maximum":7680},"height":{"type":"integer","minimum":144,"maximum":7680},"frameRate":{"type":"number","enum":[24,25,30,50,60]},"audioHz":{"type":"number","enum":[44100,48000],"description":"Audio sample rate. 48 kHz is the broadcast default."},"audioChannels":{"type":"number","enum":[1,2],"description":"1 = mono, 2 = stereo."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Add Destination","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_update_destination","title":"Live — Update Destination","description":"Update a saved destination: label, session key, or per-channel picture and sound (aspect, rotate, resolution, fps, audio). A new Instagram or TikTok session key starts copying to today’s live immediately. Same as Destinations.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"destinationId":{"type":"string","format":"uuid"},"label":{"type":"string"},"streamKey":{"type":"string"},"server":{"type":"string"},"defaultTitle":{"type":"string"},"defaultDescription":{"type":"string"},"isActive":{"type":"boolean"},"preferredAspect":{"type":"string","enum":["landscape_16_9","vertical_9_16","square_1_1"],"description":"Picture this destination expects — 16:9, 9:16, or square."},"rotation":{"type":"number","enum":[0,90,180,270],"description":"Rotate footage so a 16:9 camera can sit sideways in a vertical channel."},"fit":{"type":"string","enum":["fit","fill"]},"width":{"type":"integer","minimum":144,"maximum":7680},"height":{"type":"integer","minimum":144,"maximum":7680},"frameRate":{"type":"number","enum":[24,25,30,50,60]},"audioHz":{"type":"number","enum":[44100,48000]},"audioChannels":{"type":"number","enum":[1,2]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"destination":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Update Destination","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_attach_destinations","title":"Live — Attach Destinations","description":"Add a send on this live: destination, optional Hear and Read, and optional title or posters. Title, description, and 16:9 / 9:16 / 1:1 posters start as this live. Pass enabled:true to turn Enable on in the same call. One write — never the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"destinationIds":{"type":"array","items":{"type":"string"},"minItems":1},"hear":{"type":"string","description":"Hear language, e.g. yo for Yoruba. Omit for the original sound."},"read":{"type":"string","description":"Read language, e.g. en for English words. Omit for no extra words."},"title":{"type":"string","description":"Slightly different title for this send. Omit to keep this live’s title."},"description":{"type":"string","description":"Custom description. Omit to keep this live’s description."},"poster16x9":{"type":"string","description":"16:9 poster if this send should not use this live’s 16:9."},"poster9x16":{"type":"string","description":"9:16 poster if this send should not use this live’s 9:16."},"poster1x1":{"type":"string","description":"1:1 poster if this send should not use this live’s 1:1."},"enabled":{"type":"boolean","description":"True = turn Enable on for every attached destination. Same as the Enable switch."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Attach Destinations","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_detach_destinations","title":"Live — Detach Destinations","description":"Stop copying this stream to one or more attached destinations. Pass destination ids from live_get_simulcast_health.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"targetIds":{"type":"array","items":{"type":"string"},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Detach Destinations","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_destination_copy","title":"Live — Change Send Title or Posters","description":"Change the title, description, or posters on one destination send. By default every send uses the original listing, including 16:9, 9:16, and 1:1 posters. Use this for a slightly different title on the same YouTube, or a tall poster on Instagram. Pass inheritAll to go back to the original.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"destinationId":{"type":"string","format":"uuid"},"title":{"type":"string","description":"Custom title for this send. Omit to leave it as-is."},"description":{"type":"string","description":"Custom description for this send. Omit to leave it as-is."},"posterUrl":{"type":"string","description":"Custom 16:9 poster URL. Omit to leave it as-is."},"poster16x9":{"type":"string","description":"16:9 poster for YouTube, Facebook, and the watch page."},"poster9x16":{"type":"string","description":"9:16 poster for Instagram and TikTok."},"poster1x1":{"type":"string","description":"1:1 square poster."},"inheritTitle":{"type":"boolean","description":"True to use the original title again."},"inheritDescription":{"type":"boolean","description":"True to use the original description again."},"inheritPoster":{"type":"boolean","description":"True to use the original posters in every size again."},"inheritAll":{"type":"boolean","description":"True to copy the original title, description, and posters again."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Change Send Title or Posters","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_destination_enabled","title":"Live — Enable or Disable Destination Copy","description":"Turn Enable on or off for one attached destination (FATest, YouTube, Facebook, Instagram). Same as the Enable switch on the live. Copying starts on Go Live, or immediately if already live. Execute when they ask — never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"destinationId":{"type":"string","format":"uuid","description":"Destination id from live_list_destinations or live_get_simulcast_health."},"enabled":{"type":"boolean","description":"True = Enable on. False = Enable off."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Enable or Disable Destination Copy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_hear_voice","title":"Live — Save or Switch Hear Voice","description":"Save a new named Hear reading, or switch which saved reading is on air. English is the house default. You can keep Pastor and Sister Joy on English and pick one. Same as Your Hear voices on the live desk. Pass audioUrl to save a new reading, or voiceId to switch.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"language":{"type":"string","description":"en for the house default, or yo / fr / es and so on to override that language."},"audioUrl":{"type":"string","format":"uri","description":"HTTPS URL of a new script reading (about one minute). Saves as a new voice — does not overwrite."},"name":{"type":"string","description":"Staff label for this reading, e.g. Pastor or Sister Joy."},"voiceId":{"type":"string","description":"Saved voice id from live_list_hear_voices. Switch this reading on air without a new recording."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Save or Switch Hear Voice","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_add_interpretation_school","title":"Live — Add Sermon to Teach Hear","description":"Add a sermon this house owns to Teach Hear — a YouTube link, or a recording already in Media Library. It hears the pulpit, drafts Hear, and waits for marks. Same as Live → Teach Hear.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"YouTube video or channel URL the church owns."},"mediaLibraryFileId":{"type":"string","format":"uuid","description":"Media Library recording id from platform_list_media_library_files or after upload."},"sourceLanguage":{"type":"string","description":"Pulpit language. Default auto for YouTube, yo for a file."},"targetLanguage":{"type":"string","description":"Hear language to teach. Default en."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Add Sermon to Teach Hear","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_name_school_speaker","title":"Live — Name Teach Hear Voice","description":"Name a grouped Teach Hear voice, or say two voices are the same person. Same as People in this house.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"speakerId":{"type":"string","format":"uuid"},"name":{"type":"string","description":"The person’s name, e.g. Pastor Adebayo."},"mergeIntoId":{"type":"string","format":"uuid","description":"Another voice that is the same person."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Name Teach Hear Voice","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_confirm_school_language","title":"Live — Confirm Teach Hear Language","description":"Confirm the pulpit language of a Teach Hear sermon when the title was not enough. Same as the confirm buttons on Teach Hear.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"},"language":{"type":"string","description":"yo, en, ig, ha, or sw."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Confirm Teach Hear Language","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_mark_interpretation_line","title":"Live — Mark Teach Hear Line","description":"Mark one Teach Hear line as right, or save the correction. That pair goes into the lasting Hear book Sunday Hear uses.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"lineId":{"type":"string","format":"uuid"},"mark":{"type":"string","enum":["accepted","corrected"]},"correctedText":{"type":"string","description":"Required when mark is corrected."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Mark Teach Hear Line","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_house_pronunciation","title":"Live — House Pronunciation","description":"Teach how a word or name should be said in Hear. Same as How a word is said on Teach Hear.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"language":{"type":"string","description":"Language being spoken, e.g. yo or en."},"written":{"type":"string","description":"How it is written now."},"sayAs":{"type":"string","description":"How Hear should say it."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — House Pronunciation","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_accept_remaining_school_lines","title":"Live — Accept Remaining Teach Hear Lines","description":"Put the remaining unmarked Teach Hear drafts into the Hear book. Same as Accept remaining on Live → Teach Hear. Sunday Hear only trusts what you accept.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid","description":"Sermon from live_list_interpretation_school."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"How many waiting lines to accept this time. Default 40."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Accept Remaining Teach Hear Lines","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_teach_interpretation_school","title":"Live — Teach Hear Again","description":"Hear a Teach Hear sermon again and draft new Hear lines. Same as Teach again on Live → Teach Hear.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Teach Hear Again","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_remove_hear_book","title":"Live — Remove Hear Book Line","description":"Remove one lasting Hear book line — a meaning or how a word is said. Same as removing a line on Live → Teach Hear.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid","description":"Hear book id from live_list_interpretation_school."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Remove Hear Book Line","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_remove_hear_voice","title":"Live — Remove Hear Voice","description":"Remove one saved Hear reading. Pass voiceId to delete that named voice, or language to remove the one on air. Other saved readings stay.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"language":{"type":"string","description":"en or yo / fr / es — removes the reading on air for that language."},"voiceId":{"type":"string","description":"Saved voice id from live_list_hear_voices."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Remove Hear Voice","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_hear_output","title":"Live — Send Hear and Read to a Channel","description":"Send a Hear and Read look to any channel — including the main YouTube or Instagram. OBS still sends once. Same as Hear and Read on each channel on the live desk, then opening Send.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"language":{"type":"string","description":"Hear language to send, e.g. en or yo. Empty string means original pulpit sound."},"destinationIds":{"type":"array","items":{"type":"string"},"description":"Destination ids from live_list_destinations. The main YouTube or Instagram is allowed."},"read":{"type":"string","description":"Words to burn on the picture, e.g. yo. Empty means no extra words."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Send Hear and Read to a Channel","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_set_facebook_page","title":"Live — Set Facebook Page","description":"Add a Facebook Page as a live destination. You can add more than one Page. Same as Destinations → Add Facebook Pages.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"pageId":{"type":"string","minLength":1},"pageIds":{"type":"array","items":{"type":"string","minLength":1}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Set Facebook Page","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_generate_clips","title":"Live — Generate Clips","description":"Create highlight clips from an ended live (same as Generate clips on the stream). Clips land in Live → Resources for download. Nothing is posted to social accounts.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Generate Clips","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_sync_attendance","title":"Live — Sync Attendance","description":"Mark live viewers as attended in People — same as Sync attendance on the live desk. Execute when they ask. Never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Sync Attendance","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_refresh_notes","title":"Live — Refresh Notes","description":"Refresh live notes from the current transcript — same as Refresh notes on the live notes page. Execute when they ask. Never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Refresh Notes","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"live_place_recording","title":"Live — Place Recording on Shelf","description":"Put an ended live recording on the Media Library or Store shelf — same as Place on shelf on the live desk. Execute when they ask. Never send them to the dashboard.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"destination":{"type":"string","enum":["library","store"]},"pricePence":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Place Recording on Shelf","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_followup_tasks","title":"Guests — List Follow-Up Tasks","description":"List guest follow-up tasks with dashboard filters — pending, completed, overdue, assignee, type, priority. Full parity with /guests/follow-ups.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","completed","all"]},"overdue":{"type":"boolean"},"assignedTo":{"type":"string","format":"uuid"},"taskType":{"type":"string","enum":["call","email","visit","text","other"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tasks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Follow-Up Tasks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_get_followup_task","title":"Guests — Get Follow-Up Task","description":"Get a single guest follow-up task with contact and assignee details.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"task":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Get Follow-Up Task","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_get_followup_script","title":"Guests — AI Call Script for Follow-Up","description":"AI-generated call script for a guest follow-up task — opening, bridge, questions, closing, and tips. Uses 1 AI credit.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"contact":{"type":"object","additionalProperties":true,"description":"JSON object"},"context":{"type":"object","additionalProperties":true,"description":"JSON object"},"script":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — AI Call Script for Follow-Up","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_get_followup_suggestions","title":"Guests — AI Follow-Up Suggestions (At-Risk Visitors)","description":"AI suggestions for at-risk pipeline visitors (medium/high churn risk). Uses 1 AI credit. Pair with guests_create_followup_task.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"suggestions":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"message":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — AI Follow-Up Suggestions (At-Risk Visitors)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_guest_journeys","title":"Guests — List Hospitality Journeys","description":"List guest hospitality journey templates (welcome series, absence, milestones). For marketing funnels use grow_list_automations.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"journeys":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Hospitality Journeys","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_pipeline_summary","title":"Guests — Pipeline Stage Summary","description":"Guest/visitor pipeline summary — how many people are in each stage.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"totalInPipeline":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Pipeline Stage Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_followups_due","title":"Guests — List Due Follow-Up Tasks","description":"Guest follow-up tasks due by a cutoff. Use daysAhead (7, 30) for upcoming tasks; default is overdue + due today only.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"dueBefore":{"type":"string","description":"ISO datetime cutoff — tasks due on or before this instant"},"daysAhead":{"type":"integer","minimum":0,"maximum":365,"description":"Include tasks due within N days from now (0 = today only; 1 = through tomorrow)"},"limit":{"type":"integer","minimum":1,"maximum":100},"days":{"type":"string"},"days_ahead":{"type":"string"},"dueInDays":{"type":"string"},"windowDays":{"type":"string"},"window_days":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"tasks":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"dueBefore":{"type":"string"},"daysAhead":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Due Follow-Up Tasks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_list_pipeline_entries","title":"Guests — List Pipeline Entries","description":"List people in the guest pipeline with their current stage (who is in each stage).\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"stageId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Pipeline Entries","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_get_settings","title":"Guests — Get Settings","description":"Read guest management settings: VIP alerts, auto welcome cards, default check-in method.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Get Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_locations","title":"Guests — List Check-In Locations","description":"List guest check-in locations (rooms/buildings for services and kids classes). Not Spaces facility bookings.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["building","room","outdoor","virtual"]},"includeInactive":{"type":"boolean"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Check-In Locations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_list_pipeline_stages","title":"Guests — List Pipeline Stages","description":"List guest pipeline stages (auto-seeds defaults if empty).\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stages":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Pipeline Stages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_list_volunteer_schedules","title":"Guests — List Welcome Team Schedules","description":"List Welcome Team volunteer schedules (greeters, ushers, kids check-in).\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"ISO date — filter by service instance date"},"to":{"type":"string","description":"ISO date"},"serviceId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"schedules":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Welcome Team Schedules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_get_analytics_summary","title":"Guests — Analytics Summary","description":"Guest attendance trends and type breakdown for a date range.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"serviceId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"dateRange":{"type":"object","additionalProperties":true,"description":"JSON object"},"attendanceTrends":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"guestTypeBreakdown":{"type":"object","additionalProperties":true,"description":"JSON object"},"serviceInstanceCount":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Analytics Summary","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_get_analytics_heatmap","title":"Guests — Attendance Heatmap","description":"Daily check-in heatmap counts for calendar visualization.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"heatmap":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"dateRange":{"type":"object","additionalProperties":true,"description":"JSON object"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Attendance Heatmap","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_welcome_card_templates","title":"Guests — List Welcome Card Templates","description":"List built-in and per-service welcome card email templates.\n\n**Required scope:** `guests:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Welcome Card Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_create_followup_task","title":"Guests — Create Followup Task","description":"Create a follow-up task for a guest/visitor contact in the pipeline. Title optional — defaults to \"Follow up with {name}\".\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"description":"Optional — defaults to Follow up with contact name"},"description":{"type":"string"},"taskType":{"type":"string"},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"dueDate":{"type":"string","description":"ISO date"},"pipelineEntryId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"followup_task":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Create Followup Task","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_complete_followup_task","title":"Guests — Complete Followup Task","description":"Mark a guest follow-up task as completed.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Complete Followup Task","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_update_followup_task","title":"Guests — Update Follow-Up Task","description":"Update a guest follow-up task — title, due date, priority, assignment, completion, or outcome.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1},"description":{"type":["string","null"]},"taskType":{"type":"string","enum":["call","email","visit","text","other"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"dueDate":{"type":["string","null"],"description":"ISO date YYYY-MM-DD"},"assignedTo":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"completed":{"type":"boolean"},"outcome":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"followup_task":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Update Follow-Up Task","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_delete_followup_task","title":"Guests — Delete Follow-Up Task","description":"Delete a guest follow-up task permanently.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Delete Follow-Up Task","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"guests_set_guest_journey_status","title":"Guests — Activate or Pause Guest Journey","description":"Activate or pause a guest hospitality journey (welcome series, we missed you, birthday, etc.). Marketing funnels use grow_set_automation_status.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"isActive":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Activate or Pause Guest Journey","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_create_location","title":"Guests — Create Check-In Location","description":"Create a guest check-in location (room/building for services or kids classes).\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["building","room","outdoor","virtual"]},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"capacity":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"floor":{"type":["string","null"]},"ageMin":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"ageMax":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"description":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"location":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Create Check-In Location","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_update_location","title":"Guests — Update Check-In Location","description":"Update or reactivate a guest check-in location.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["building","room","outdoor","virtual"]},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"capacity":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"floor":{"type":["string","null"]},"ageMin":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"ageMax":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"isActive":{"type":"boolean"},"description":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"location":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Update Check-In Location","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_assign_volunteer","title":"Guests — Assign Welcome Volunteer","description":"Assign a contact to the Welcome Team for a service or specific instance.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"serviceInstanceId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["greeter","usher","parking","kids_checkin","info_desk"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Assign Welcome Volunteer","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_update_volunteer_schedule","title":"Guests — Update Volunteer Schedule","description":"Update Welcome Team schedule status, role, or notes.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"scheduleId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["scheduled","confirmed","declined","no_show"]},"role":{"type":"string","enum":["greeter","usher","parking","kids_checkin","info_desk"]},"notes":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"volunteer_schedule":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Update Volunteer Schedule","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_delete_volunteer_schedule","title":"Guests — Remove Volunteer Assignment","description":"Remove a Welcome Team volunteer assignment.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"scheduleId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Remove Volunteer Assignment","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"guests_sync_pipeline_stages","title":"Guests — Sync Pipeline Stages","description":"Bulk create/update/delete guest pipeline stages (settings parity).\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1},"color":{"type":"string"},"icon":{"type":"string"},"sort_order":{"type":"integer"},"is_default":{"type":"boolean"},"is_final":{"type":"boolean"},"auto_progress_enabled":{"type":"boolean"},"auto_progress_after_visits":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["name"],"additionalProperties":false}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Sync Pipeline Stages","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_import_spaces_rooms","title":"Guests — Import Spaces Rooms as Locations","description":"Import Spaces module rooms as guest check-in locations (skips duplicates). Requires Spaces data.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Import Spaces Rooms as Locations","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_move_pipeline_entry","title":"Guests — Move Pipeline Entry","description":"Move a guest pipeline entry to a different stage.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Dashboard equivalent: guest pipeline stage update API.","inputSchema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"stageId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Move Pipeline Entry","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_copy_welcome_volunteers","title":"Guests — Copy Welcome Team Volunteers","description":"Copy Welcome Team volunteer assignments from a past service instance to an upcoming one. Skips duplicates and syncs portal shifts. Omit instance IDs to auto-resolve last past + next upcoming service.\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"sourceServiceInstanceId":{"type":"string","format":"uuid"},"targetServiceInstanceId":{"type":"string","format":"uuid"},"roles":{"type":"array","items":{"type":"string"},"description":"Optional subset of roles to copy"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Copy Welcome Team Volunteers","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_update_settings","title":"Guests — Update Settings","description":"Update guest management settings (VIP alerts, auto welcome cards, check-in defaults).\n\n**Required scope:** `guests:write`.","inputSchema":{"type":"object","properties":{"vipAlertsEnabled":{"type":"boolean"},"autoWelcomeCards":{"type":"boolean"},"welcomeCardChannel":{"type":"string"},"defaultCheckinMethod":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Update Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_plans","title":"Runsheet — List Plans","description":"List service plans (past and future). Use daysBack for last Sunday or recent history; daysAhead for upcoming. Full dashboard parity.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"daysBack":{"type":"integer","minimum":0,"maximum":365,"description":"Include plans up to N days in the past"},"daysAhead":{"type":"integer","minimum":0,"maximum":365,"description":"Include plans up to N days ahead"},"dateFrom":{"type":"string","description":"ISO date YYYY-MM-DD"},"dateTo":{"type":"string","description":"ISO date YYYY-MM-DD"},"eventTypeId":{"type":"string","format":"uuid"},"status":{"type":"string"},"search":{"type":"string","description":"Filter by plan title"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plans":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Plans","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_find_previous_plan","title":"Runsheet — Find Previous Service Plan","description":"Most recent past service plan before a date. Set onlyLiveOrCompleted true for the last service that actually ran (excludes draft).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"beforeDate":{"type":"string","description":"Find latest plan strictly before this ISO date"},"eventTypeId":{"type":"string","format":"uuid"},"search":{"type":"string","description":"Title filter e.g. \"Sunday Morning\""},"onlyLiveOrCompleted":{"type":"boolean","description":"Only completed/live plans — not draft or unpublished"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Find Previous Service Plan","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_get_last_live_service_order","title":"Runsheet — Last Live Service Order (table)","description":"Last completed/live service order of service as a markdown table — use for \"last live service\", \"order of service\", \"what did we run Sunday\". Excludes drafts.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"beforeDate":{"type":"string","description":"Only services on or before this date"},"eventTypeId":{"type":"string","format":"uuid"},"search":{"type":"string","description":"Title filter e.g. \"Thanksgiving\""},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"last_live_service_order":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Last Live Service Order (table)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_plan","title":"Runsheet — Get Plan","description":"Get one runsheet plan with service order items and assignment count.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Plan","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_plan_items","title":"Runsheet — List Plan Items","description":"List service order items for a plan. Returns a markdown table in speakToUser when 3+ items — relay as a table for readability.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Plan Items","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_plan_assignments","title":"Runsheet — List Plan Assignments","description":"List production team assignments for a plan — who was on team last Sunday.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_assignments":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Plan Assignments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_teams","title":"Runsheet — List Teams","description":"List runsheet production teams and departments.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"teams":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Teams","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_upcoming_plans","title":"Runsheet — List Upcoming Plans","description":"Upcoming service plans only (today and future). For past services including last Sunday, use runsheet_list_plans or runsheet_find_previous_plan.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"eventTypeId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"upcoming_plans":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Upcoming Plans","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_open_positions","title":"Runsheet — Open Volunteer Positions","description":"Open (unfilled) volunteer/team positions on service plans — scheduling gaps that need people.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Open Volunteer Positions","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_access_seats","title":"Runsheet — Portal Access Seat Usage","description":"Runsheet portal access seat usage: counts login-linked team members plus pending invitations. Roster-only contacts without login do not consume seats.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Portal Access Seat Usage","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_team_invitations","title":"Runsheet — List Crew Portal Invites","description":"List pending runsheet crew portal invitations for a team. Each pending invite consumes an access seat — see runsheet_access_seats.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"teamName":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_invitations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Crew Portal Invites","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_invite_team_member","title":"Runsheet — Invite Crew Portal Member","description":"Send a runsheet crew portal invitation (login access) — consumes an access seat. Same as Runsheet → Teams → Invite. Roster-only contacts without login do not use seats.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"teamName":{"type":"string"},"email":{"type":"string","format":"email"},"fullName":{"type":"string","maxLength":200},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Invite Crew Portal Member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_cancel_team_invitation","title":"Runsheet — Cancel Crew Portal Invite","description":"Cancel a pending runsheet crew portal invitation — frees an access seat.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"teamName":{"type":"string"},"inviteId":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Cancel Crew Portal Invite","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_resend_team_invitation","title":"Runsheet — Resend Crew Portal Invite","description":"Resend a pending runsheet crew portal invitation email with a fresh link.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"teamName":{"type":"string"},"inviteId":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Resend Crew Portal Invite","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_plans_api","title":"Runsheet — List Plans API","description":"List plans via dashboard API (GET /api/runsheet/plans). Complements runsheet_list_plans.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plans_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Plans API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_plan_api","title":"Runsheet — Create Plan API","description":"Create service plan (POST /api/runsheet/plans).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Plan API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_plan_api","title":"Runsheet — Get Plan API","description":"Plan detail via API (GET /api/runsheet/plans/{id}).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Plan API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_plan_api","title":"Runsheet — Update Plan API","description":"Update plan metadata (PATCH /api/runsheet/plans/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Plan API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_plan_api","title":"Runsheet — Delete Plan API","description":"Permanently delete plan (DELETE /api/runsheet/plans/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Plan API","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_publish_plan_api","title":"Runsheet — Publish Plan API","description":"Publish plan (POST /api/runsheet/plans/{id}/publish). Complements runsheet_publish_plan.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Publish Plan API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_unpublish_plan_api","title":"Runsheet — Unpublish Plan API","description":"Unpublish plan (POST /api/runsheet/plans/{id}/unpublish).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Unpublish Plan API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_duplicate_plan_api","title":"Runsheet — Duplicate Plan API","description":"Duplicate plan (POST /api/runsheet/plans/{id}/duplicate).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Duplicate Plan API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_export_plan_pdf","title":"Runsheet — Export Plan Pdf","description":"Export plan PDF (GET /api/runsheet/plans/{id}/export/pdf).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"format":{"type":"string","enum":["pdf"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Export Plan Pdf","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_export_plan_bulletin","title":"Runsheet — Export Plan Bulletin","description":"Export bulletin format (GET /api/runsheet/plans/{id}/export/bulletin).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Export Plan Bulletin","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_plan_version","title":"Runsheet — Get Plan Version","description":"Plan version history (GET /api/runsheet/plans/{id}/version).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_version":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Plan Version","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_plan_share","title":"Runsheet — Get Plan Share","description":"Public share link for plan (GET /api/runsheet/plans/share/{token}).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"token":{"type":"string","minLength":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_share":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Plan Share","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_plan_items_api","title":"Runsheet — List Plan Items API","description":"List plan items via API (GET /api/runsheet/plans/{id}/items).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_items_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Plan Items API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_plan_items_api","title":"Runsheet — Create Plan Items API","description":"Add plan items via API (POST /api/runsheet/plans/{id}/items). Prefer runsheet_add_plan_items for batches.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_items_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Plan Items API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_plan_item_api","title":"Runsheet — Update Plan Item API","description":"Update one plan item (PATCH /api/runsheet/plans/{id}/items/{itemId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_item_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Plan Item API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_plan_item_api","title":"Runsheet — Delete Plan Item API","description":"Delete plan item (DELETE /api/runsheet/plans/{id}/items/{itemId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Plan Item API","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_reorder_plan_items_api","title":"Runsheet — Reorder Plan Items API","description":"Reorder items (POST /api/runsheet/plans/{id}/items/reorder). Prefer runsheet_reorder_plan_items.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Reorder Plan Items API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_copy_plan_items_api","title":"Runsheet — Copy Plan Items API","description":"Copy items from another plan (POST /api/runsheet/plans/{id}/items/copy-from).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Copy Plan Items API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_plan_assignments_api","title":"Runsheet — List Plan Assignments API","description":"List team assignments (GET /api/runsheet/plans/{id}/assignments).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_assignments_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Plan Assignments API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_plan_assignments_api","title":"Runsheet — Create Plan Assignments API","description":"Create assignments (POST /api/runsheet/plans/{id}/assignments).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_assignments_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Plan Assignments API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_copy_plan_assignments_api","title":"Runsheet — Copy Plan Assignments API","description":"Copy assignments from plan (POST /api/runsheet/plans/{id}/assignments/copy-from).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Copy Plan Assignments API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_live_status","title":"Runsheet — Get Live Status","description":"Live service status (GET /api/runsheet/live/{planId}/status).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"live_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Live Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_start_live","title":"Runsheet — Start Live","description":"Start live mode when the user says go live, start the service, or start live. Same action as the dashboard Go Live button. Do this from the sendifai connection — never send them to the dashboard for permission.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Start Live","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_control_live","title":"Runsheet — Control Live","description":"Live control actions (POST /api/runsheet/live/{planId}/control).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Control Live","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_advance_live","title":"Runsheet — Advance Live","description":"Advance live item (POST /api/runsheet/live/{planId}/advance).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Advance Live","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_end_live","title":"Runsheet — End Live","description":"End live mode (POST /api/runsheet/live/{planId}/end).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — End Live","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_schedule_api","title":"Runsheet — Get Schedule API","description":"Schedule matrix (GET /api/runsheet/schedule).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"schedule_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Schedule API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_schedule_assign","title":"Runsheet — Schedule Assign","description":"Assign volunteer to position (POST /api/runsheet/schedule/assign).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Schedule Assign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_schedule_assignment","title":"Runsheet — Update Schedule Assignment","description":"Update schedule assignment (PATCH /api/runsheet/schedule/assignments/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"assignmentId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"schedule_assignment":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Schedule Assignment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_schedule_open_positions_api","title":"Runsheet — List Schedule Open Positions API","description":"Open schedule positions (GET /api/runsheet/schedule/open-positions).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"schedule_open_positions_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Schedule Open Positions API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_schedule_self_signup","title":"Runsheet — Schedule Self Signup","description":"Volunteer self-signup (POST /api/runsheet/schedule/self-signup).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Schedule Self Signup","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_public_schedule","title":"Runsheet — Get Public Schedule","description":"Public schedule view (GET /api/runsheet/schedule/public).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"public_schedule":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Public Schedule","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_songs_api","title":"Runsheet — List Songs API","description":"List songs via API (GET /api/runsheet/songs). Complements runsheet_list_songs.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"songs_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Songs API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_get_song_api","title":"Runsheet — Get Song API","description":"Song detail (GET /api/runsheet/songs/{id}).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"songId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"song_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Song API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_song_api","title":"Runsheet — Update Song API","description":"Update song (PATCH /api/runsheet/songs/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"songId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"song_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Song API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_songs","title":"Runsheet — Import Songs","description":"Import songs file (POST /api/runsheet/songs/import).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Songs","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_export_songs","title":"Runsheet — Export Songs","description":"Export songs (GET /api/runsheet/songs/export).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Export Songs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_dedupe_songs","title":"Runsheet — Dedupe Songs","description":"Dedupe song library (POST /api/runsheet/songs/dedupe).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Dedupe Songs","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_songs_ccli","title":"Runsheet — Import Songs CCLI","description":"Import CCLI song bundle (POST /api/runsheet/songs/import-ccli).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Songs CCLI","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_create_song_arrangement","title":"Runsheet — Create Song Arrangement","description":"Create arrangement (POST /api/runsheet/songs/{id}/arrangements).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"songId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"song_arrangement":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Song Arrangement","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_song_arrangement","title":"Runsheet — Update Song Arrangement","description":"Update arrangement (PATCH /api/runsheet/songs/{id}/arrangements/{arrangementId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"songId":{"type":"string","format":"uuid"},"arrangementId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"song_arrangement":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Song Arrangement","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_song_arrangement","title":"Runsheet — Delete Song Arrangement","description":"Delete arrangement (DELETE /api/runsheet/songs/{id}/arrangements/{arrangementId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"songId":{"type":"string","format":"uuid"},"arrangementId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Song Arrangement","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_list_song_collections","title":"Runsheet — List Song Collections","description":"List song collections (GET /api/runsheet/songs/collections).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"song_collections":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Song Collections","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_manage_song_collection","title":"Runsheet — Manage Song Collection","description":"Create/update song collection (POST/PATCH /api/runsheet/songs/collections).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"collectionId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Manage Song Collection","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_song_library","title":"Runsheet — Get Song Library","description":"Song library browse (GET /api/runsheet/song-library).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"song_library":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Song Library","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_templates_api","title":"Runsheet — List Templates API","description":"List plan templates (GET /api/runsheet/templates).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"templates_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Templates API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_template","title":"Runsheet — Create Template","description":"Create template (POST /api/runsheet/templates).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_template","title":"Runsheet — Update Template","description":"Update template (PUT/PATCH /api/runsheet/templates/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_template","title":"Runsheet — Delete Template","description":"Delete template (DELETE /api/runsheet/templates/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Template","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_create_event_type","title":"Runsheet — Create Event Type","description":"Create event type (POST /api/runsheet/event-types).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event_type":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Event Type","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_event_type","title":"Runsheet — Update Event Type","description":"Update event type (PATCH /api/runsheet/event-types/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"eventTypeId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"event_type":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Event Type","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_event_type","title":"Runsheet — Delete Event Type","description":"Delete event type (DELETE /api/runsheet/event-types/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"eventTypeId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Event Type","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_get_ccli_report","title":"Runsheet — Get CCLI Report","description":"CCLI usage report (GET /api/runsheet/reports/ccli).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ccli_report":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get CCLI Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_mark_ccli_reported","title":"Runsheet — Mark CCLI Reported","description":"Mark CCLI songs reported (POST /api/runsheet/reports/ccli/mark-reported).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Mark CCLI Reported","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_timing_report","title":"Runsheet — Get Timing Report","description":"Service timing report (GET /api/runsheet/reports/timing).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"timing_report":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Timing Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_serving_report","title":"Runsheet — Get Serving Report","description":"Volunteer serving report (GET /api/runsheet/reports/serving).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"serving_report":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Serving Report","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_rehearsals","title":"Runsheet — List Rehearsals","description":"List rehearsals (GET /api/runsheet/rehearsals).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"rehearsals":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Rehearsals","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_rehearsal","title":"Runsheet — Create Rehearsal","description":"Create rehearsal (POST /api/runsheet/rehearsals).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"rehearsal":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Rehearsal","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_rehearsal","title":"Runsheet — Update Rehearsal","description":"Update rehearsal (PATCH /api/runsheet/rehearsals/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"rehearsalId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"rehearsal":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Rehearsal","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_rehearsal","title":"Runsheet — Delete Rehearsal","description":"Delete rehearsal (DELETE /api/runsheet/rehearsals/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"rehearsalId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Rehearsal","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_import_parse","title":"Runsheet — Import Parse","description":"Parse import file (POST /api/runsheet/import/{source}/parse).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"source":{"type":"string","enum":["planning-center","propresenter","openlp","freeshow","easyworship","chordpro","csv","elvanto"]},"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Parse","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_execute","title":"Runsheet — Import Execute","description":"Execute import (POST /api/runsheet/import/{source}/execute).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"source":{"type":"string","enum":["planning-center","propresenter","openlp","freeshow","easyworship","chordpro","csv","elvanto"]},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Execute","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_csv_execute","title":"Runsheet — Import Csv Execute","description":"Execute CSV import (POST /api/runsheet/import/csv/execute).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Csv Execute","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_planning_center_preview","title":"Runsheet — Import Planning Center Preview","description":"Planning Center import preview (POST /api/runsheet/import/planning-center/preview).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Planning Center Preview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_planning_center_contacts_map","title":"Runsheet — Import Planning Center Contacts Map","description":"Planning Center contacts map (POST /api/runsheet/import/planning-center/contacts-map).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Planning Center Contacts Map","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_planning_center_status","title":"Runsheet — Import Planning Center Status","description":"Planning Center import job status (GET /api/runsheet/import/planning-center/status).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Planning Center Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_import_elvanto_connect","title":"Runsheet — Import Elvanto Connect","description":"Connect Elvanto for import (POST /api/runsheet/import/elvanto/connect).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Elvanto Connect","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_import_elvanto_preview","title":"Runsheet — Import Elvanto Preview","description":"Elvanto import preview (POST /api/runsheet/import/elvanto/preview).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Import Elvanto Preview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_notify_assignments","title":"Runsheet — Notify Assignments","description":"Notify volunteers of assignments (POST /api/runsheet/assignments/notify).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Notify Assignments","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_respond_assignment","title":"Runsheet — Respond Assignment","description":"Volunteer assignment response (POST /api/runsheet/assignments/respond).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Respond Assignment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_assignment_responses","title":"Runsheet — List Assignment Responses","description":"Assignment responses (GET /api/runsheet/assignments/{id}/responses).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"assignmentId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"assignment_responses":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Assignment Responses","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_assignment_response_history","title":"Runsheet — List Assignment Response History","description":"Assignment response history (GET /api/runsheet/assignments/{id}/responses/history).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"assignmentId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"assignment_response_history":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Assignment Response History","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_ai_suggest_schedule","title":"Runsheet — AI Suggest Schedule","description":"AI schedule suggestions (POST /api/runsheet/ai/suggest-schedule).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Suggest Schedule","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_ai_suggest_songs","title":"Runsheet — AI Suggest Songs","description":"AI song suggestions (POST /api/runsheet/ai/suggest-songs).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Suggest Songs","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_ai_production_notes","title":"Runsheet — AI Production Notes","description":"AI production notes (POST /api/runsheet/ai/production-notes).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Production Notes","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_ai_post_service_report","title":"Runsheet — AI Post Service Report","description":"AI post-service report (POST /api/runsheet/ai/post-service-report).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Post Service Report","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_ai_generate_setlist","title":"Runsheet — AI Generate Setlist","description":"AI generate setlist (POST /api/runsheet/ai/generate-setlist).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Generate Setlist","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_ai_build_service","title":"Runsheet — AI Build Service","description":"AI build full service (POST /api/runsheet/ai/build-service).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Build Service","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_ai_volunteer_insights","title":"Runsheet — AI Volunteer Insights","description":"AI volunteer insights (POST /api/runsheet/ai/volunteer-insights).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — AI Volunteer Insights","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_invoke_ai_endpoint","title":"Runsheet — Invoke AI Endpoint","description":"Generic runsheet AI endpoint caller (POST /api/runsheet/ai/{endpoint}). Plan editor AI tabs.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"endpoint":{"type":"string","minLength":1,"description":"e.g. suggest-songs, production-notes"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Invoke AI Endpoint","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_plan_chat","title":"Runsheet — Get Plan Chat","description":"Plan chat messages (GET /api/runsheet/chat/{planId}).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_chat":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Plan Chat","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_post_plan_chat","title":"Runsheet — Post Plan Chat","description":"Post plan chat message (POST /api/runsheet/chat/{planId}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Post Plan Chat","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_plan_chat_count","title":"Runsheet — Get Plan Chat Count","description":"Unread chat count (GET /api/runsheet/chat/{planId}/count).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_chat_count":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Plan Chat Count","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_gate_settings","title":"Runsheet — Get Gate Settings","description":"Crew portal gate settings (GET /api/runsheet/settings/gate).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gate_settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Gate Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_gate_settings_api","title":"Runsheet — Update Gate Settings API","description":"Update crew portal settings (PATCH /api/runsheet/settings/gate) — same fields as dashboard crew settings.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"runsheetCustomDomain":{"type":["string","null"]},"viewPin":{"type":"string","pattern":"^\\d{6}$"},"editPin":{"type":"string","pattern":"^\\d{6}$"},"viewRequiresPin":{"type":"boolean"},"gateInteractionLockTimeoutMinutes":{"type":"number","enum":[1,5,30]},"gateCrewNotesRequireReveal":{"type":"boolean"},"gateCrewNotesRevealTimeoutMinutes":{"type":"number","enum":[1,2,5]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gate_settings_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Gate Settings API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_gate_domain_status","title":"Runsheet — Get Gate Domain Status","description":"Gate custom domain status (GET /api/runsheet/settings/gate/domain-status).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gate_domain_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Gate Domain Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_get_gate_access","title":"Runsheet — Get Gate Access","description":"Gate editor PIN access check (GET /api/runsheet/gate/access).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gate_access":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Gate Access","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_set_gate_access","title":"Runsheet — Set Gate Access","description":"Set gate editor session flags (PATCH /api/runsheet/gate/access). Requires an active crew-portal session from runsheet_gate_unlock — not OAuth alone. For viewer PIN requirement use runsheet_update_gate_settings.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Set Gate Access","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_gate_unlock","title":"Runsheet — Gate Unlock","description":"Unlock crew portal with PIN (POST /api/runsheet/gate/unlock).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Gate Unlock","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_get_ccli_bundle","title":"Runsheet — Get CCLI Bundle","description":"CCLI bundle settings (GET /api/runsheet/ccli-bundle).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ccli_bundle":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get CCLI Bundle","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_ccli_bundle","title":"Runsheet — Update CCLI Bundle","description":"Update CCLI bundle (PUT/PATCH /api/runsheet/ccli-bundle).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ccli_bundle":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update CCLI Bundle","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_team_access_api","title":"Runsheet — List Team Access API","description":"Runsheet addon team access list (GET /api/runsheet/team). Settings → Team Access tab.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_access_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Team Access API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_update_team_access_api","title":"Runsheet — Update Team Access API","description":"Manage runsheet team access members (POST/PATCH/DELETE /api/runsheet/team).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"team_access_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Team Access API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_leaders_api","title":"Runsheet — List Leaders API","description":"List leaders (GET /api/runsheet/leaders). Complements runsheet_list_leader_permissions.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"leaders_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Leaders API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_create_leader_api","title":"Runsheet — Create Leader API","description":"Grant leader (POST /api/runsheet/leaders).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"leader_api":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Create Leader API","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_leader_api","title":"Runsheet — Delete Leader API","description":"Remove leader (DELETE /api/runsheet/leaders/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"leaderId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Leader API","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_update_leaders_hierarchy","title":"Runsheet — Update Leaders Hierarchy","description":"Update leadership hierarchy tree (PUT /api/runsheet/leaders/hierarchy).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"leaders_hierarchy":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Leaders Hierarchy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_list_teams_api","title":"Runsheet — List Teams API","description":"List teams via API (GET /api/runsheet/teams). Complements runsheet_list_teams.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"teams_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Teams API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_pastoral_holders_api","title":"Runsheet — List Pastoral Holders API","description":"Team pastoral holders (GET /api/runsheet/teams/{id}/pastoral-holders).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_holders_api":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Pastoral Holders API","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_team_invitation_lookup","title":"Runsheet — Team Invitation Lookup","description":"Lookup invitation by token (GET /api/runsheet/teams/invitation-lookup).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Team Invitation Lookup","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_get_availability","title":"Runsheet — Get Availability","description":"Volunteer availability calendar (GET /api/runsheet/availability).\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"}},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"availability":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Availability","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_upload_attachment","title":"Runsheet — Upload Attachment","description":"Upload plan attachment (POST /api/runsheet/attachments/upload).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Upload Attachment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_attachment","title":"Runsheet — Delete Attachment","description":"Delete attachment (DELETE /api/runsheet/attachments/{id}).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"attachmentId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Attachment","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_list_plan_checklists","title":"Runsheet — List Production Checklists","description":"List service plans with production checklist progress (GET /api/runsheet/checklists). Not the order-of-service — this is mic/slides/staging prep before doors open. OAuth dashboard parity — no crew PIN.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":48},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_checklists":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Production Checklists","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_get_plan_checklist","title":"Runsheet — Get Production Checklist","description":"Full production checklist for one plan (GET /api/runsheet/plans/{planId}/checklist). Consolidated service-wide prep items — not per-song mic lines. Dashboard OAuth — no crew PIN.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"planTitle":{"type":"string","description":"Optional title for speakToUser formatting"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_checklist":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Get Production Checklist","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_sync_plan_checklist","title":"Runsheet — Add Missing Checklist Items","description":"Add missing smart checklist items from the service plan (POST sync, mode add_missing). Consolidates worship mics/slides service-wide — does not duplicate per song. Does not remove stale auto items; use runsheet_rebuild_plan_checklist to regenerate.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Add Missing Checklist Items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_rebuild_plan_checklist","title":"Runsheet — Rebuild Production Checklist","description":"ONE call to tidy a checklist: clears all auto-generated items and rebuilds a proper consolidated prep list from the plan (worship sound check once, per-leader band confirms, one slides row for the full set — NOT per-song mic lines). Preserves manual items. NEVER loop runsheet_remove_checklist_item to clean up — use this tool.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"planTitle":{"type":"string","description":"Optional title for speakToUser on follow-up get"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Rebuild Production Checklist","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_apply_checklist_preset","title":"Runsheet — Apply Checklist Preset","description":"Apply a checklist preset (Sunday service essentials or Freedom Arena Sunday) to a plan.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"presetId":{"type":"string","enum":["sunday_service","freedom_arena_sunday"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Apply Checklist Preset","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_add_checklist_item","title":"Runsheet — Add Checklist Item","description":"Add one custom manual item to a plan checklist.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"label":{"type":"string","minLength":1},"category":{"type":"string","enum":["audio","video","staging","lighting","music","hospitality","comms","safety","general"]},"isRequired":{"type":"boolean"},"notes":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Add Checklist Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_set_checklist_item","title":"Runsheet — Update Checklist Item","description":"Check/uncheck or edit a checklist item (PATCH).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemId":{"type":"string","format":"uuid"},"checked":{"type":"boolean"},"label":{"type":"string"},"isRequired":{"type":"boolean"},"notes":{"type":["string","null"]},"comment":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Checklist Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_remove_checklist_item","title":"Runsheet — Remove Checklist Item","description":"Remove ONE manual checklist item. NEVER use in a loop to tidy redundant auto items — call runsheet_rebuild_plan_checklist once instead.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Remove Checklist Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_reorder_checklist_items","title":"Runsheet — Reorder Checklist Items","description":"Reorder checklist items (PATCH /api/runsheet/plans/{planId}/checklist/items with item_ids).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"description":"Full ordered list of checklist item IDs"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Reorder Checklist Items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_set_plan_checklist_notes","title":"Runsheet — Checklist Header Notes","description":"Update production checklist header notes for a plan (PATCH /api/runsheet/plans/{planId}/checklist).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"notes":{"type":["string","null"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Checklist Header Notes","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_assign_position","title":"Runsheet — Assign Position","description":"Assign someone to an open Runsheet crew position on a service plan (sound, worship, production). Requires a dashboard login or Runsheet portal roster link — pass CRM contact id and we resolve linked portal user_id. For Welcome Team greeters/ushers (no portal login), use guests_assign_volunteer instead.\n\n**Required scope:** `runsheet:write`.\n\n**API reference:** Dashboard equivalent: `POST /api/runsheet/plans/{planId}/assignments`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"teamId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"positionId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Assign Position","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_publish_plan","title":"Runsheet — Publish Plan","description":"Publish a runsheet plan so volunteers can see their assignments.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Publish Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_reopen_plan","title":"Runsheet — Reopen Plan","description":"Reset a mistakenly completed runsheet plan back to published. Only allowed when the service date is still in the future.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Reopen Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_add_plan_items","title":"Runsheet — Add Service Order Items (batch)","description":"Add multiple service order items (songs, prayers, headers, etc.) to a plan in ONE call — use this instead of runsheet_invoke_api_write per song so Claude only asks permission once for the whole setlist. Up to 80 items.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"items":{"type":"array","items":{"type":"object","properties":{"itemType":{"type":"string","minLength":1,"description":"song, header, prayer, sermon, announcement, break, scripture, media, custom"},"title":{"type":"string"},"durationSeconds":{"type":"integer","minimum":0},"sortOrder":{"type":"integer","minimum":0},"songId":{"type":"string","format":"uuid"},"arrangementId":{"type":"string","format":"uuid"},"notes":{"type":"string"},"description":{"type":"string"},"key":{"type":"string"},"bpm":{"type":"number"},"isOptional":{"type":"boolean"},"timeAlertEnabled":{"type":"boolean","description":"Show red TIME UP on crew stage when over planned duration. Default true. Set false for early songs in a worship set."}},"required":["itemType"],"additionalProperties":false},"minItems":1,"maxItems":80},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Add Service Order Items (batch)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_plan_item","title":"Runsheet — Update Service Order Item","description":"Update an existing service order item on a plan — title, talent (description), notes, duration, key, TIME UP alert toggle, etc. Use for speaker/talent changes during service. Not for adding new items (use runsheet_add_plan_items).\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemId":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string","description":"Talent / speaker line shown on stage and crew portal (e.g. Pastor Debo Adegoke)"},"notes":{"type":"string"},"durationSeconds":{"type":"integer","minimum":0},"sortOrder":{"type":"integer","minimum":0},"key":{"type":"string"},"bpm":{"type":"number"},"isOptional":{"type":"boolean"},"timeAlertEnabled":{"type":"boolean","description":"When false, segment timer still runs but crew gate hides red TIME UP for this item. Default true."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan_item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Service Order Item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_configure_section_time_alerts","title":"Runsheet — Configure Section Time Alerts","description":"Batch set TIME UP alerts for worship sets and sections: only the last item in each section shows red TIME UP when over time (timer still runs on all items). Use for Praise & Worship — disable alerts on early songs, enable on the closing song. Also supports all_enabled / all_disabled.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"mode":{"type":"string","enum":["last_in_section_only","all_enabled","all_disabled"],"description":"last_in_section_only = TIME UP only on last song per section (typical worship set). all_enabled / all_disabled = every item."},"sectionTitleContains":{"type":"string","description":"Optional header filter, e.g. \"Praise\" or \"Worship\" — only matching sections"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Configure Section Time Alerts","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_reorder_plan_items","title":"Runsheet — Reorder Service Order","description":"Reorder the full service order on a plan. Pass every item id in the desired order (from runsheet_list_plan_items). Use to move one segment (e.g. Thanksgiving after Word) without per-item invoke writes.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"itemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200,"description":"All plan item IDs in desired order — index 0 is first in the run"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Reorder Service Order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_copy_plan_items","title":"Runsheet — Copy Service Order Items","description":"Copy service order items from a previous plan into a target plan. Appends items and recalculates duration.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"targetPlanId":{"type":"string","format":"uuid"},"sourcePlanId":{"type":"string","format":"uuid"},"itemIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Copy Service Order Items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_copy_team_assignments","title":"Runsheet — Copy Team Assignments","description":"Copy production team assignments from a previous service plan. Resets status to pending; skips duplicate roles.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"targetPlanId":{"type":"string","format":"uuid"},"sourcePlanId":{"type":"string","format":"uuid"},"teamIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Optional teams to copy"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Copy Team Assignments","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_duplicate_plan","title":"Runsheet — Duplicate Plan","description":"Clone a runsheet plan (items included) to a new date. Returns dashboard manage URL — never people.sendifai.com.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"sourcePlanId":{"type":"string","format":"uuid"},"date":{"type":"string","description":"YYYY-MM-DD for the new plan"},"title":{"type":"string"},"startTime":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Duplicate Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_plan","title":"Runsheet — Update Plan","description":"Update runsheet plan metadata (title, date, start/end time). Works on draft and completed plans — prefer this over runsheet_invoke_api_write PATCH.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"title":{"type":"string"},"date":{"type":"string","description":"YYYY-MM-DD"},"startTime":{"type":"string","description":"HH:MM or HH:MM:SS — e.g. 15:30 for 3:30 PM"},"endTime":{"type":"string"},"notes":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"plan":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Update Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_delete_plan","title":"Runsheet — Delete Plan","description":"Permanently delete a service plan (draft, published, completed, or cancelled). Not while live.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Delete Plan","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"runsheet_archive_plan","title":"Runsheet — Archive Plan","description":"Permanently delete a service plan (alias for runsheet_delete_plan). Not while live.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Archive Plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_setup_next_service_from_last_live","title":"Runsheet — Setup Next Service From Last Live","description":"One-shot: copy last completed/live service order to next Sunday (or targetDate), optionally copy team roster, publish, and return manage URLs.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"targetDate":{"type":"string","description":"YYYY-MM-DD — default next Sunday"},"sourcePlanId":{"type":"string","format":"uuid","description":"Source plan — default last completed/live"},"copyTeamFromPlanId":{"type":"string","format":"uuid","description":"Copy team from a different plan (e.g. last week published)"},"existingTargetPlanId":{"type":"string","format":"uuid","description":"Use existing plan for target date instead of duplicating"},"publish":{"type":"boolean","description":"Publish after setup — default true"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Setup Next Service From Last Live","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"runsheet_update_gate_settings","title":"Runsheet — Crew Gate Settings (idle lock)","description":"Update runsheet crew portal gate settings — idle lock, crew notes privacy, viewer/editor PINs, custom domain, viewer PIN requirement. Dashboard OAuth parity with Settings → Runsheet → Crew portal.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"gateInteractionLockTimeoutMinutes":{"type":"number","enum":[1,5,30],"description":"Minutes of inactivity before run order auto-locks (default 5)"},"gateCrewNotesRequireReveal":{"type":"boolean","description":"When true, stage display hides plan crew notes until eye reveal (default true)"},"gateCrewNotesRevealTimeoutMinutes":{"type":"number","enum":[1,2,5],"description":"Minutes before revealed crew notes auto-hide on stage (default 2)"},"viewRequiresPin":{"type":"boolean","description":"When false, crew link works without viewer PIN (editor PIN still required for edits)"},"viewPin":{"type":"string","pattern":"^\\d{6}$","description":"6-digit viewer PIN — never echoed back"},"editPin":{"type":"string","pattern":"^\\d{6}$","description":"6-digit editor PIN — never echoed back"},"runsheetCustomDomain":{"type":["string","null"],"description":"Crew portal custom domain e.g. runsheet.freedomarena.org.uk"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"gate_setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Crew Gate Settings (idle lock)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_list_shops","title":"Store — List Shops","description":"List media shops for the organization (org shop + speaker shops).\n\n**Required scope:** `store:read`.\n\n**API reference:** All Media Hub stores (org + speaker) with Connect status — separate from Giving.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"shops":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — List Shops","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_get_today","title":"Store — Get Today","description":"Store Today board: money, unpaid checkouts, merch to pack, launches, restock, waitlist, returns, and what to push today.\n\n**Required scope:** `store:read`.\n\n**API reference:** Store Today board — money, unpaid checkouts, merch to pack, launches.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"today":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Today","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_list_coupons","title":"Store — List Coupons","description":"List discount codes on a shop (LAUNCH20 and similar).\n\n**Required scope:** `store:read`.\n\n**API reference:** Discount codes on a shop.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"coupons":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — List Coupons","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_list_products","title":"Store — List Products","description":"List products in a shop.\n\n**Required scope:** `store:read`.\n\n**API reference:** Products listed in org stores (filter by shopId).","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid","description":"Filter to one shop — omit to list all org products"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — List Products","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_get_stripe_connect_status","title":"Store — Get Stripe Connect Status","description":"Stripe Connect status for a Media Hub store shop (NOT Giving). Each speaker/org store has its own Express Connect account for book and media sales.\n\n**Required scope:** `store:read`.\n\n**API reference:** Per-shop Stripe Connect for store sales — NOT giving_get_stripe_connect_status.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid","description":"Store shop id"},"speakerId":{"type":"string","format":"uuid","description":"Media Hub speaker — resolves their speaker store"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stripe_connect_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Stripe Connect Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_ensure_speaker_shop","title":"Store — Ensure Speaker Shop","description":"Create or return the speaker-owned store for a pastor/creator (separate Stripe Connect payouts).\n\n**Required scope:** `store:write`.\n\n**API reference:** Provision pastor/creator store for separate Stripe payouts within the org.","inputSchema":{"type":"object","properties":{"speakerId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Ensure Speaker Shop","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_resolve_shop_for_item","title":"Store — Resolve Shop For Item","description":"Which store should receive payout for a media item? Speaker-attributed items → speaker store; otherwise org store.\n\n**Required scope:** `store:read`.\n\n**API reference:** Auto-route product to speaker vs org shop based on media item speaker_id.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"createSpeakerShop":{"type":"boolean","description":"Provision speaker store if missing"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Resolve Shop For Item","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_list_marketplace","title":"Store — List Marketplace","description":"List products opted into the sendifai platform marketplace (www.sendifai.com/marketplace).\n\n**Required scope:** `store:read`.\n\n**API reference:** Products on www.sendifai.com/marketplace.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"marketplace":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — List Marketplace","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_update_shop_settings","title":"Store — Update Shop Settings","description":"Update an existing org or speaker store — rename, brand colours, hero spotlight (pin book, release caption, on/off), opening soon mode, logo/banner, top banner background, 16:9 hero image (URL or Media Library file id after upload), browser tab title, share image, favicon, social links, merch pickup / self-fulfill copy, custom domain, and storefront toggle. Full dashboard + shop owner portal + agent parity — never send users to the dashboard for these changes.\n\n**Required scope:** `store:write`.\n\n**API reference:** Rename store, hex brand colours, logo/banner, browser tab title, merch pickup and shipping note.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"shopSlug":{"type":"string","description":"e.g. pastor-debo-adegoke-store"},"pastorName":{"type":"string","description":"Find pastor speaker shop by name"},"speakerId":{"type":"string","format":"uuid"},"storefrontName":{"type":"string","description":"Public store display name shown on the storefront"},"storefrontSlug":{"type":"string","description":"Public web address after /shop/ e.g. pastor-debo-ministries. The old address keeps working — it permanently redirects to the new one."},"primaryColor":{"type":"string","pattern":"^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"accentColor":{"type":"string","pattern":"^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"description":{"type":"string","maxLength":2000},"seoTitle":{"type":"string","maxLength":120,"description":"Browser tab title and share card headline"},"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"bannerUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Top banner background URL. Null clears."},"bannerMediaLibraryFileId":{"type":"string","format":"uuid","description":"Media Library file for the top banner background. Upload first, then pass this id."},"ogImageUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"faviconUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"logoMediaLibraryFileId":{"type":"string","format":"uuid","description":"Media Library file for the store logo. Upload first, then pass this id."},"featuredMediaLibraryFileId":{"type":"string","format":"uuid","description":"Media Library file for the 16:9 hero image. Upload first, then pass this id."},"featuredMediaUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Hero 16:9 image or video URL (1920×1080). Null clears."},"featuredMediaType":{"anyOf":[{"type":"string","enum":["image","video"]},{"type":"null"}],"description":"Hero media type when featuredMediaUrl is set."},"darkMode":{"type":"boolean"},"layout":{"type":"string","enum":["default","grid","list"]},"storefrontEnabled":{"type":"boolean"},"listOnMarketplace":{"type":"boolean"},"listOnOrgCatalog":{"type":"boolean"},"socialLinks":{"type":"object","properties":{"youtube":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"tiktok":{"type":"string"},"x":{"type":"string"},"linkedin":{"type":"string"},"whatsapp":{"type":"string"},"pinterest":{"type":"string"},"threads":{"type":"string"}},"additionalProperties":false,"description":"Public storefront social icons (top-right). Omit a key to leave unchanged; empty string clears. Scheme is optional (youtube.com/@channel is fine)."},"shuffleBooksAndMerch":{"type":"boolean","description":"When on, each visitor randomly sees merch or books first after the hero. When off, use the fixed or auto section order."},"customDomain":{"type":["string","null"],"description":"Custom hostname e.g. shop.example.com — null to clear"},"autoWithdraw":{"type":"boolean"},"payoutThresholdPence":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"status":{"type":"string","enum":["draft","active","archived"]},"catalogUnifiedEnabled":{"type":"boolean","description":"Org shop: unified speaker catalog"},"orgMarginBps":{"type":"integer","minimum":0,"maximum":10000},"featuredHeroEnabled":{"type":"boolean","description":"Show or hide the featured release book in the storefront hero"},"openingSoonMode":{"type":"boolean","description":"Live store: draft books show coming soon / preorder instead of checkout"},"featuredProductId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Pin a book product in the hero; null clears to automatic newest book"},"featuredReleaseCaption":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Hero caption under the book title, e.g. Coming Out Monday August 31st 2026"},"clearFeaturedProduct":{"type":"boolean","description":"Clear pinned hero book (revert to newest book)"},"selfFulfillNote":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"description":"Merch checkout note when shipping is arranged after purchase. Null clears to the default."},"selfFulfillPickupName":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Free pickup venue name, e.g. Mount Zion Christian Ministries International (Freedom Arena)"},"selfFulfillPickupAddress":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"description":"Free pickup address, e.g. 3 North Road, London SE18 1BS"},"supportEmail":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"description":"Buyer-facing contact on receipts. Personal Yahoo/Gmail is never shown — use hello@yourdomain.com"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"shop_setting":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Update Shop Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_shop","title":"Store — Get Shop","description":"Read full store settings — branding, custom domain, Connect status, catalog flags, wallet thresholds. Dashboard parity for Media Hub → Store → shop detail.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"shopSlug":{"type":"string"},"pastorName":{"type":"string"},"speakerId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"shop":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Shop","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_product","title":"Store — Get Product","description":"Read one store product — price, status, catalog flags, merch variants, and product editor deep link. Dashboard parity for Media Hub → Store → product workspace.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"product":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Product","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_product_by_media_item","title":"Store — Get Product By Media Item","description":"Resolve store listing for a Media Hub item — product workspace payload or suggested payout shop when not yet listed.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"mediaItemId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"product_by_media_item":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Product By Media Item","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_product_analytics","title":"Store — Get Product Analytics","description":"Per-product sales summary — units sold and revenue from paid order lines.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"product_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Product Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_list_listing_index","title":"Store — List Listing Index","description":"Map Media Hub items to store listings — status, shop, and product editor deep links for badges and MCP sell workflows.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"listing_index":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — List Listing Index","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_list_portal_operators","title":"Store — List Portal Operators","description":"List PIN portal operators for a store — pastors/creators manage products without full dashboard login.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"portal_operators":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — List Portal Operators","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"store_get_share_links","title":"Store — Get Share Links","description":"Share spread for a store or product — public storefront URL, per-product ?p= deep link, portal admin PIN URL, WhatsApp/Facebook/X/LinkedIn/Pinterest/Telegram/email share hrefs, and QR download guidance. Use when the user asks to share a cap, book, shop link, or QR code.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"shopSlug":{"type":"string"},"pastorName":{"type":"string"},"speakerId":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"mediaItemId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"share_links":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Share Links","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_wallet","title":"Store — Get Wallet","description":"Stripe wallet balance and payout settings for a store shop.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"shopSlug":{"type":"string"},"pastorName":{"type":"string"},"speakerId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"wallet":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Wallet","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_shop_analytics","title":"Store — Get Shop Analytics","description":"Revenue, orders, top products, category breakdown, daily chart series, and recent orders for a store shop. Default last 30 days; pass days=7|90 or allTime=true.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"shopSlug":{"type":"string"},"pastorName":{"type":"string"},"speakerId":{"type":"string","format":"uuid"},"days":{"type":"integer","minimum":1,"maximum":365,"description":"Sliding window in days (default 30 when allTime is false)"},"allTime":{"type":"boolean","description":"All-time totals instead of a sliding window"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"shop_analytics":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Shop Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"store_get_domain_status","title":"Store — Get Domain Status","description":"Custom domain DNS verification status for a store storefront.\n\n**Required scope:** `store:read`.","inputSchema":{"type":"object","properties":{"shopId":{"type":"string","format":"uuid"},"shopSlug":{"type":"string"},"pastorName":{"type":"string"},"speakerId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"domain_status":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Store — Get Domain Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_list_segments","title":"People — List Segments","description":"List dynamic contact segments with live member counts.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segments":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Segments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_preview_segment","title":"People — Preview Segment Rules","description":"Preview how many contacts match segment rules before creating one. Pass rootGroup (AND/OR tree) OR shortcuts tagName / activeContactsWithTag. Example rootGroup: {\"op\":\"AND\",\"rules\":[{\"field\":\"tags\",\"op\":\"has_tag\",\"value\":\"Member\"}]}. For active contacts with a tag use activeContactsWithTag: \"volunteer\".\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"rootGroup":{"type":"object","additionalProperties":true,"description":"Segment rule tree JSON with op AND/OR and rules array"},"tagName":{"type":"string","minLength":1,"description":"Shortcut: contacts with this tag (has_tag)"},"rules":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Shortcut: array of rule objects (wrapped as AND group)"},"activeContactsWithTag":{"type":"string","minLength":1,"description":"Shortcut: active lifecycle_stage + has_tag"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Preview Segment Rules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_create_segment","title":"People — Create Segment","description":"Create a dynamic segment from a rule tree.\n\n**Required scope:** `people:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"rootGroup":{"type":"object","additionalProperties":true},"refreshFrequency":{"type":"string","enum":["realtime","daily","manual"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"segment":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Create Segment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_list_duplicates","title":"People — List Duplicates","description":"List groups of contacts sharing the same email (duplicate candidates).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"duplicates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Duplicates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"people_merge_contacts","title":"People — Merge Contacts","description":"Merge two duplicate contacts — keeps keepContactId and soft-merges mergeContactId into it.\n\n**Required scope:** `people:write`.\n\n**API reference:** Dashboard equivalent: `POST /api/crm/contacts/merge`.","inputSchema":{"type":"object","properties":{"keepContactId":{"type":"string","format":"uuid"},"mergeContactId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — Merge Contacts","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"people_get_segment_contacts","title":"People — List Segment Member IDs","description":"List segment members with email outreach intelligence — eligible vs excluded (unsubscribed, no email, opt-out) plus speakToUser. Call people_list_segments first for segmentId.\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":5000},"offset":{"type":"integer","minimum":0},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"eligible":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"excluded":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"eligibleCount":{"type":"number"},"excludedCount":{"type":"number"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"count":{"type":"number"},"source":{"type":"string"},"segmentId":{"type":"string"},"name":{"type":"string"},"contactIds":{"type":"array","items":{"type":"string"}},"segmentMemberCount":{"type":"number"},"crossOrgLeakDetected":{"type":"boolean"},"pagination":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — List Segment Member IDs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_list_prayer_requests","title":"Community — List Prayer Requests","description":"List prayer requests — optionally filter to urgent or active only.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"urgentOnly":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"prayer_requests":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — List Prayer Requests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"community_create_prayer_request","title":"Community — Create Prayer Request","description":"Log a prayer request for a contact.\n\n**Required scope:** `community:write`.\n\n**API reference:** Dashboard equivalent: `POST /api/pastoral/prayer-requests`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"request":{"type":"string","minLength":1},"isUrgent":{"type":"boolean"},"category":{"type":"string"},"followUpDays":{"type":"integer","minimum":1,"maximum":90},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"prayer_request":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Create Prayer Request","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"community_delete_prayer_request","title":"Community — Delete Prayer Request","description":"Delete a prayer request (hard delete). Use prayerRequestId from community_list_prayer_requests, or requestContains to match request text (optionally with contactId). For answered prayers prefer marking answered in the dashboard.\n\n**Required scope:** `community:write`.","inputSchema":{"type":"object","properties":{"prayerRequestId":{"type":"string","format":"uuid"},"requestContains":{"type":"string","minLength":1,"maxLength":200},"contactId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Delete Prayer Request","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"community_list_pastoral_visits","title":"Community — List Pastoral Visits","description":"List pastoral visit history for a contact.\n\n**Required scope:** `community:read`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pastoral_visits":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — List Pastoral Visits","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"community_log_pastoral_visit","title":"Community — Log Pastoral Visit","description":"Log a pastoral visit (home, hospital, phone, video, office).\n\n**Required scope:** `community:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"visitDate":{"type":"string","description":"YYYY-MM-DD"},"visitType":{"type":"string","enum":["home","hospital","office","phone","video"]},"durationMinutes":{"type":"integer","minimum":1},"notes":{"type":"string"},"nextVisitDate":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Community — Log Pastoral Visit","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_preview_campaign_send","title":"Grow — Preview Campaign Audience","description":"Preview campaign send with eligible vs excluded recipients and speakToUser (unsubscribed, no email, opt-out). Call before grow_send_campaign.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"eligible":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"excluded":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"eligibleCount":{"type":"number"},"excludedCount":{"type":"number"},"speakToUser":{"type":"string"},"summaryForAgent":{"type":"string"},"count":{"type":"number"},"source":{"type":"string"},"campaign":{"type":"object","additionalProperties":true,"description":"JSON object"},"recipientCount":{"type":"number"},"segmentTotal":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Preview Campaign Audience","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_schedule_campaign","title":"Grow — Schedule Campaign","description":"Schedule an email campaign for a future ISO datetime.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"scheduledAt":{"type":"string","description":"ISO 8601 datetime in the future"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Schedule Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_schedule_campaign_optimal","title":"Grow — Schedule Campaign (AI Optimal Time)","description":"Schedule a campaign at the AI-recommended optimal send time.\n\n**Required scope:** `grow:write`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Schedule Campaign (AI Optimal Time)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"grow_send_campaign","title":"Grow — Send Campaign","description":"Send an email campaign to its full audience. Call without confirm for recipient preview; set confirm:true to start a background send. Poll grow_email_campaign_status until complete — never loop single-recipient tools for blasts.\n\n**Required scope:** `grow:write`.\n\n**API reference:** Dashboard equivalent: campaign send flow — call without `confirm` for recipient preview first.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"confirm":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Send Campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_email_campaign_status","title":"Grow — Email Campaign Status","description":"Poll email campaign send progress after grow_send_campaign (large sends run in the background).\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — Email Campaign Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_list_attendees","title":"Ticketing — List Attendees","description":"List confirmed registrations for an event with check-in status.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"checkedInOnly":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"attendees":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — List Attendees","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_check_in","title":"Ticketing — Check In Attendee","description":"Check in a registration by ID, email, or QR token.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"registrationId":{"type":"string","format":"uuid"},"email":{"type":"string"},"qrToken":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Check In Attendee","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_check_in","title":"Guests — Check In","description":"Full-parity service check-in (pipeline, welcome cards, caps, automations). Use guests_check_in_household for family one-tap; guests_check_in_child_hub for Children Church hub (name, age, gender, allergies, photo/video consent). Provide serviceInstanceId or serviceId.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Full-parity check-in — pipeline, welcome cards, caps, automations.","inputSchema":{"type":"object","properties":{"serviceInstanceId":{"type":"string","format":"uuid"},"serviceId":{"type":"string","format":"uuid","description":"Finds/creates today instance if serviceInstanceId omitted"},"contactId":{"type":"string","format":"uuid"},"isChild":{"type":"boolean"},"locationId":{"type":"string","format":"uuid"},"allergies":{"type":"string"},"gender":{"type":"string","enum":["male","female","other"]},"photoConsent":{"type":"string","enum":["yes","no"]},"videoConsent":{"type":"string","enum":["yes","no"]},"childAge":{"type":"integer","minimum":0,"maximum":18},"isPrecheck":{"type":"boolean","description":"Church Center PreCheck before arrival"},"stationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"checkIn":{"type":"object","additionalProperties":true,"description":"JSON object"},"already_checked_in":{"type":"boolean"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Check In","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_check_in_household","title":"Guests — Check In Household","description":"One-tap household check-in: primary contact plus family members (children get security codes). PCO family check-in parity.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Household one-tap check-in with security codes","inputSchema":{"type":"object","properties":{"primaryContactId":{"type":"string","format":"uuid"},"familyMemberIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Household members to check in with primary"},"serviceInstanceId":{"type":"string","format":"uuid"},"serviceId":{"type":"string","format":"uuid"},"isPrecheck":{"type":"boolean"},"isExpress":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"pickupCodes":{"type":"object","additionalProperties":true,"description":"JSON object"},"already_checked_in":{"type":"boolean"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Check In Household","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_services","title":"Guests — List Services","description":"List all guest services (recurring events) with check-in settings — use before duplicate or URL setup.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — All services with check-in settings","inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["active","cancelled","draft"]},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Services","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_duplicate_service","title":"Guests — Duplicate Service","description":"Clone a guest service (schedule, check-in gates, kids mode, theme). Returns new service id and check-in URLs on custom domain when configured.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Clone a service (schedule, gates, kiosk URLs)","inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"service":{"type":"object","additionalProperties":true,"description":"JSON object"},"sourceServiceId":{"type":"string"},"checkinUrls":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Duplicate Service","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_services_today","title":"Guests — List Services Today","description":"List today's service instances with check-in counts — start here on Sunday mornings.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — Today's services and check-in counts","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"date":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Services Today","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_get_live_roster","title":"Guests — Get Live Roster","description":"Roster station mode: community roster with checked-in status for a service. Greeter/agent Sunday playbook.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — Roster station absent list","inputSchema":{"type":"object","properties":{"serviceInstanceId":{"type":"string","format":"uuid"},"serviceId":{"type":"string","format":"uuid"},"search":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":500},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"instanceId":{"type":"string"},"roster":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"note":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Get Live Roster","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_stations","title":"Guests — List Stations","description":"List active check-in stations (manned, self, roster) with location locks.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — Check-in stations (manned/self/roster)","inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"stations":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Stations","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_create_check_in_station","title":"Guests — Create Check-In Station","description":"Create a check-in station (manned, self, or roster). Use guests_list_stations to verify setup before Sunday.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Create manned/self/roster check-in station","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"stationMode":{"type":"string","enum":["manned","self","roster"]},"serviceId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"campusId":{"type":"string","format":"uuid"},"lockedToLocation":{"type":"boolean"},"deviceLabel":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"station":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Create Check-In Station","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_delete_check_in_station","title":"Guests — Delete Check-In Station","description":"Deactivate a check-in station (soft delete — hides from guests_list_stations). Use for test cleanup or removing obsolete kiosks.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Deactivate check-in station","inputSchema":{"type":"object","properties":{"stationId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"station":{"type":"object","additionalProperties":true,"description":"JSON object"},"deactivated":{"type":"boolean"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Delete Check-In Station","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"guests_get_service_checkin_settings","title":"Guests — Get Service Checkin Settings","description":"Read per-service check-in gates and public URLs (self, kiosk, hub) — uses checkin_custom_domain when set.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — Per-service capacity, precheck, registration gates","inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"serviceId":{"type":"string"},"settings":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Get Service Checkin Settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_update_service_checkin_settings","title":"Guests — Update Service Checkin Settings","description":"Update per-service check-in gates (capacity, precheck, registration form, check-in enabled). Use before inducing PRECHECK_DISABLED / REGISTRATION_REQUIRED / CAPACITY_REACHED tests.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Update capacity, precheck, require_visitor_form","inputSchema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"capacity":{"anyOf":[{"type":"null"},{"type":"integer","minimum":0}],"description":"Max attendance cap — null or unlimited to remove limit"},"clearCapacity":{"type":"boolean","description":"Set true to remove capacity limit (unlimited) — use when null is rejected by the client"},"checkinEnabled":{"type":"boolean"},"allowSelfCheckin":{"type":"boolean"},"enableKidsCheckin":{"type":"boolean"},"precheckEnabled":{"type":"boolean"},"requireVisitorForm":{"type":"boolean"},"defaultStationMode":{"type":"string","enum":["manned","self","roster"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"unlimited":{"type":"string"},"removeCapacity":{"type":"string"},"clear_capacity":{"type":"string"},"remove_capacity":{"type":"string"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"serviceId":{"type":"string"},"settings":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Update Service Checkin Settings","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_get_checkin_hub","title":"Guests — Get Checkin Hub","description":"Read org check-in hub: ministries (Quick check-in vs Kids check-in modes), checkout toggles per ministry, children age classes, and public URLs.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — Check-in hub ministries, classes, custom-domain URLs","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"hub":{"type":"object","additionalProperties":true,"description":"JSON object"},"checkinCustomDomain":{"type":["string","null"]},"countCustomDomain":{"type":["string","null"]},"publicSlug":{"type":["string","null"]},"urls":{"type":"object","additionalProperties":true,"description":"JSON object"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Get Checkin Hub","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_set_ministry_checkout","title":"Guests — Set Ministry Checkout","description":"Enable or disable public checkout and pickup-code checkout for one check-in hub ministry (Adult, Children, Youth, One Church). Defaults: children on, others off. Dashboard: Guests → Settings → Hub.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Enable/disable checkout and pickup codes per ministry","inputSchema":{"type":"object","properties":{"ministrySlug":{"type":"string","description":"Ministry slug from guests_get_checkin_hub, e.g. youth-church, children-church"},"checkoutEnabled":{"type":"boolean","description":"Show checkout on hub + kiosk for this ministry"},"pickupCodeCheckoutEnabled":{"type":"boolean","description":"Allow 4-digit pickup code checkout (requires checkoutEnabled)"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Set Ministry Checkout","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_update_checkin_hub","title":"Guests — Update Checkin Hub","description":"Update check-in hub ministries, children classes, welcome text, hub/ministry/count background media URLs, checkin_custom_domain, and count_custom_domain. Dashboard: Guests → Settings → Hub.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Configure hub ministries, classes, custom domains","inputSchema":{"type":"object","properties":{"hubTitle":{"type":"string"},"welcomeMessage":{"type":"string"},"checkinCustomDomain":{"type":"string","description":"e.g. checkin.freedomarena.org.uk — CNAME to Vercel"},"countCustomDomain":{"type":"string","description":"e.g. count.freedomarena.org.uk — CNAME to Vercel"},"checkinAccessPin":{"type":"string","pattern":"^\\d{6}$","description":"6-digit PIN for check-in hub gate (e.g. checkin.freedomarena.org.uk) — never echoed back"},"ministriesJson":{"type":"string","description":"JSON array of ministry objects — read guests_get_checkin_hub first"},"childrenClassesJson":{"type":"string","description":"JSON array of age class objects"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"checkin_hub":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Update Checkin Hub","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_check_in_child_hub","title":"Guests — Check In Child Hub","description":"Children Church check-in via hub config: full name, age, gender, allergies, photo/video consent, optional parent. Uses ministry/class routing and returns pickup code.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Children Church hub check-in (new child + pickup code)","inputSchema":{"type":"object","properties":{"childName":{"type":"string","description":"Child full name"},"age":{"type":"integer","minimum":2,"maximum":18},"classId":{"type":"string","description":"Children class id from guests_get_checkin_hub"},"gender":{"type":"string","enum":["male","female","other"]},"allergies":{"type":"string"},"photoConsent":{"type":"string","enum":["yes","no"]},"videoConsent":{"type":"string","enum":["yes","no"]},"parentName":{"type":"string"},"parentPhone":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"checkIn":{"type":"object","additionalProperties":true,"description":"JSON object"},"className":{"type":"string"},"speakToUser":{"type":"string"},"already_checked_in":{"type":"boolean"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Check In Child Hub","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guests_list_welcome_cards","title":"Guests — List Welcome Cards","description":"List welcome cards sent to guests — verify delivery after guests_send_welcome_card. Filter by contactId or checkInId.\n\n**Required scope:** `guests:read`.\n\n**API reference:** Guests — Welcome card send history (verify delivery)","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"checkInId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"cards":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — List Welcome Cards","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"guests_send_welcome_card","title":"Guests — Send Welcome Card","description":"Send welcome card email to a checked-in guest. Idempotent — resend returns alreadySent without duplicate email. Pass forceResend:true to send again.\n\n**Required scope:** `guests:write`.\n\n**API reference:** Guests — Send welcome card to checked-in guest","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"checkInId":{"type":"string","format":"uuid"},"serviceInstanceId":{"type":"string","format":"uuid"},"serviceId":{"type":"string","format":"uuid"},"forceResend":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"cardCreated":{"type":"boolean"},"emailSent":{"type":"boolean"},"alreadySent":{"type":"boolean"},"reason":{"type":"string"},"speakToUser":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Guests — Send Welcome Card","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"templates_list_email_templates","title":"Templates — List Email Templates","description":"List email templates (org + global site-wide templates). Read sendifai://docs/global-email-schedule-templates for convention/festival/program schedules.\n\n**Required scope:** `templates:read`.","inputSchema":{"type":"object","properties":{"category":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — List Email Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"templates_get_email_template","title":"Templates — Get Email Template","description":"Get one email template including its HTML content (org or global site-wide template).\n\n**Required scope:** `templates:read`.","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Get Email Template","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"templates_create_email_template","title":"Templates — Create Email Template","description":"Create an email template from HTML content.\n\n**Required scope:** `templates:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"html":{"type":"string","minLength":1},"subjectLine":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"email_template":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Create Email Template","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"templates_list_whatsapp_templates","title":"Templates — List WhatsApp Templates","description":"List WhatsApp message templates from the org WABA (Meta approval status). Use before send; pair with templates_submit_whatsapp_template to create new templates.\n\n**Required scope:** `templates:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"e.g. approved, pending, rejected"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"whatsapp_templates":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — List WhatsApp Templates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"templates_submit_whatsapp_template","title":"Templates — Submit WhatsApp Template to Meta","description":"Submit a WhatsApp template to Meta for approval (org WABA). IMAGE header: pass mediaLibraryFileId from platform_list_media_library_files (preferred — reads S3 directly). headerImageUrl works for public HTTPS flyers. Call confirm:false first, then confirm:true to submit. Returns speakToUser with pending vs approved status.\n\n**Required scope:** `templates:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Meta template name: lowercase_with_underscores, e.g. church_service_reminder_youth"},"body":{"type":"string","minLength":1,"description":"Body with {{1}}, {{2}} placeholders — Meta positional format"},"category":{"type":"string","enum":["MARKETING","UTILITY","AUTHENTICATION"]},"language":{"type":"string"},"displayName":{"type":"string"},"bodyParameterExamples":{"type":"array","items":{"type":"string"},"description":"Sample values for each {{n}} in body — required count must match placeholders"},"footer":{"type":"string","description":"Optional footer text (e.g. Reply STOP to opt out)"},"headerImageUrl":{"type":"string","format":"uri","description":"Public HTTPS URL for IMAGE header sample — flyer on CDN"},"mediaLibraryFileId":{"type":"string","format":"uuid","description":"media_library file id from platform_list_media_library_files — preferred for org flyers"},"confirm":{"type":"boolean","description":"Set true to submit to Meta after previewing with confirm:false"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Submit WhatsApp Template to Meta","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"templates_sync_whatsapp_templates","title":"Templates — Sync WhatsApp Template Status","description":"Pull latest WhatsApp template statuses from Meta into the org library (after submission or to check approval).\n\n**Required scope:** `templates:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Templates — Sync WhatsApp Template Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"groups_list","title":"Groups — List","description":"List Small Groups ministry module groups (cell/home groups with meeting schedules — small_groups table). NOT CRM People groups (ministry teams like Gideon Army) — use people_list_crm_groups for those.\n\n**Required scope:** `groups:read`.","inputSchema":{"type":"object","properties":{"activeOnly":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — List","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"groups_create","title":"Groups — Create","description":"Create a small group.\n\n**Required scope:** `groups:write`.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"groupType":{"type":"string","enum":["general","men","women","couples","singles","young_adults","seniors","parents","youth","students"],"description":"Demographic focus: general, men, women, couples, singles, young_adults, seniors, parents, youth, students. Defaults to general."},"meetingDay":{"type":"string"},"meetingTime":{"type":"string"},"meetingLocation":{"type":"string"},"maxMembers":{"type":"integer","minimum":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — Create","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"groups_deactivate","title":"Groups — Deactivate","description":"Deactivate (archive) a small group — sets is_active=false. Pass groupId from groups_list or exact name.\n\n**Required scope:** `groups:write`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"description":"Exact group name when groupId is unknown"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — Deactivate","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"groups_list_members","title":"Groups — List Members","description":"List members of a small group.\n\n**Required scope:** `groups:read`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — List Members","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"groups_add_member","title":"Groups — Add Member","description":"Add a contact to a small group.\n\n**Required scope:** `groups:write`.","inputSchema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Groups — Add Member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"attendance_recent_checkins","title":"Attendance — List Recent Check-Ins","description":"List recent service check-ins with visitor flags.\n\n**Required scope:** `attendance:read`.","inputSchema":{"type":"object","properties":{"serviceInstanceId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":200},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Attendance — List Recent Check-Ins","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"attendance_summary","title":"Attendance — Summary for Date Range","description":"Attendance totals for a date range — total check-ins, first-time visitors, children. If fromDate/toDate omitted, uses daysBack (default 30) through today.\n\n**Required scope:** `attendance:read`.","inputSchema":{"type":"object","properties":{"fromDate":{"type":"string","description":"YYYY-MM-DD start (inclusive)"},"toDate":{"type":"string","description":"YYYY-MM-DD end (inclusive)"},"daysBack":{"type":"integer","minimum":0,"maximum":365,"description":"When fromDate/toDate omitted: summarize from N days ago through today (default 30)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"summary":{"type":"object","additionalProperties":true,"description":"JSON object"},"totals":{"type":"object","additionalProperties":true,"description":"JSON object"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Attendance — Summary for Date Range","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"attendance_check_in_contact","title":"Attendance — Check In Contact","description":"Check a contact into a service (Sunday attendance). Alias for guests_check_in — use when the user says \"check in\" or \"mark attendance\". Provide serviceInstanceId or serviceId (finds/creates today's instance).\n\n**Required scope:** `attendance:write`.","inputSchema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"serviceInstanceId":{"type":"string","format":"uuid"},"serviceId":{"type":"string","format":"uuid","description":"Used to find/create today instance if serviceInstanceId omitted"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Attendance — Check In Contact","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"schedule_list_series","title":"Schedule — List Series","description":"List recurring service series (weekly services, monthly events) with recurrence rules.\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"series":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — List Series","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"schedule_list_service_instances","title":"Schedule — List Service Instances","description":"List service instances (past and future). Use daysBack for last Sunday or recent history; daysAhead for upcoming.\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"daysBack":{"type":"integer","minimum":0,"maximum":365},"daysAhead":{"type":"integer","minimum":0,"maximum":365},"dateFrom":{"type":"string","description":"YYYY-MM-DD"},"dateTo":{"type":"string","description":"YYYY-MM-DD"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"service_instances":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — List Service Instances","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"schedule_find_previous_service","title":"Schedule — Find Previous Service","description":"Most recent past service instance before a date (default: before today). Ideal for \"last Sunday\".\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"beforeDate":{"type":"string","description":"Find latest instance strictly before this ISO date"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Find Previous Service","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"schedule_upcoming_services","title":"Schedule — Upcoming Services","description":"List upcoming service instances only (today and future). For past services including last Sunday, use schedule_list_service_instances or schedule_find_previous_service.\n\n**Required scope:** `schedule:read`.","inputSchema":{"type":"object","properties":{"daysAhead":{"type":"integer","minimum":1,"maximum":90,"description":"Default 14"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Schedule — Upcoming Services","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"audit_list_events","title":"Audit — List Audit Log Events","description":"List recent audit-log events for the organization (who did what, when). Sensitive — requires the dedicated audit:read scope. Not for marketing unsubscribe counts — use people_count_unsubscribes.","inputSchema":{"type":"object","properties":{"resourceType":{"type":"string"},"action":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Audit — List Audit Log Events","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"giving_list_pledges","title":"Giving — List Pledges","description":"List recurring giving pledges with progress against total pledged.\n\n**Required scope:** `giving:read`.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"e.g. active, cancelled, completed"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"pledges":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Giving — List Pledges","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"grow_list_ab_tests","title":"Grow — List A/B Tests","description":"List A/B tests with status, winning variant, and significance.\n\n**Required scope:** `grow:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ab_tests":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Grow — List A/B Tests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_list_ticket_types","title":"Ticketing — List Ticket Types","description":"List ticket types for an event with prices and quantities sold.\n\n**Required scope:** `ticketing:read`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"includeInactive":{"type":"boolean","description":"Include deactivated types (default: active only)"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ticket_types":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — List Ticket Types","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"ticketing_create_ticket_type","title":"Ticketing — Create Ticket Type","description":"Add a ticket type to a draft or published event.\n\n**Required scope:** `ticketing:write`.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1},"price":{"type":"number","minimum":0,"description":"0 for free tickets"},"currency":{"type":"string","description":"Default GBP"},"quantity":{"type":"integer","minimum":1,"description":"Omit for unlimited"},"description":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"ticket_type":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Ticketing — Create Ticket Type","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"spaces_list_buildings","title":"Spaces — List Buildings","description":"List buildings/campuses with capacity and address.\n\n**Required scope:** `spaces:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"buildings":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Spaces — List Buildings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_list_songs","title":"Runsheet — List Songs","description":"List the worship song library with keys, CCLI numbers, and usage counts.\n\n**Required scope:** `runsheet:read`.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search title or author"},"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"songs":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — List Songs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"runsheet_add_song","title":"Runsheet — Add Song","description":"Add a song to the worship library.\n\n**Required scope:** `runsheet:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"author":{"type":"string"},"ccliNumber":{"type":"string"},"defaultKey":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"result":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Runsheet — Add Song","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_list_playlists","title":"Media Hub — List Playlists","description":"List media playlists with item counts and visibility.\n\n**Required scope:** `mediahub:read`.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"playlists":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — List Playlists","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"mediahub_create_playlist","title":"Media Hub — Create Playlist","description":"Create a media playlist.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string"},"visibility":{"type":"string","enum":["public","members_only","unlisted"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"playlist":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Create Playlist","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mediahub_delete_playlist","title":"Media Hub — Delete Playlist","description":"Delete a media playlist and its items. Pass playlistId or title to match one playlist.\n\n**Required scope:** `mediahub:write`.","inputSchema":{"type":"object","properties":{"playlistId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"deleted":{"anyOf":[{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"skipped":{"type":"array","items":{"type":"string"}},"speakToUser":{"type":"string"},"permanent":{"type":"boolean"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Media Hub — Delete Playlist","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"live_list_polls","title":"Live — List Polls","description":"List polls for a live stream with options and active state.\n\n**Required scope:** `live:read`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"polls":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — List Polls","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"live_create_poll","title":"Live — Create Poll","description":"Create a viewer poll on a live stream.\n\n**Required scope:** `live:write`.","inputSchema":{"type":"object","properties":{"streamId":{"type":"string","format":"uuid"},"question":{"type":"string","minLength":1},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":6},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[a-zA-Z0-9._:-]+$","description":"Optional retry key — repeating the same write with the same key returns the first successful result (24h, per org)."},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"poll":{"type":"object","additionalProperties":true,"description":"JSON object"},"uiPath":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Live — Create Poll","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"platform_proactive_alerts","title":"Platform — Proactive AI Alerts","description":"AI-generated proactive alerts across the whole organization (native AI tier only).\n\n**Required scope:** `platform:read`.","inputSchema":{"type":"object","properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"alerts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"Platform — Proactive AI Alerts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"people_meeting_prep","title":"People — AI Meeting Prep Briefing","description":"Generate an AI meeting-prep briefing for one or more contacts (history, giving, engagement).\n\n**Required scope:** `people:read`.","inputSchema":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":10},"arguments":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"input":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"parameters":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"},"params":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"Connector wrapper — prefer flat tool fields"}},"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema"},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","const":true,"description":"True when the tool executed successfully"},"data":{"type":"object","properties":{"payload":{"type":"object","additionalProperties":true,"description":"JSON object"},"items":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"JSON object"},"description":"Array of JSON objects"},"count":{"type":"number"},"uiPath":{"type":"string"}},"additionalProperties":true,"description":"Tool-specific result payload"}},"required":["success","data"],"additionalProperties":false},"annotations":{"title":"People — AI Meeting Prep Briefing","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"prompts":[{"name":"org_health_review","title":"Organization health review","description":"Full health check across the whole organization: overview, agents, proposals, usage, and recommended actions."},{"name":"weekly_pastoral_review","title":"Weekly pastoral care review","description":"Review overdue follow-ups, pastoral notes, prayer requests, life events, and visits; propose check-ins."},{"name":"guest_followup_sprint","title":"Guest follow-up sprint","description":"Work through the guest pipeline: due follow-ups, first-time visitors, and stalled pipeline entries."},{"name":"event_health_check","title":"Event health check","description":"Deep-dive one event: sales pace, capacity, ticket types, waitlist, and promo recommendations."},{"name":"campaign_launch","title":"Campaign launch checklist","description":"Pre-flight a draft email campaign: audience, content, send preview, then schedule at the optimal time."},{"name":"giving_report","title":"Giving report","description":"Produce a giving report for a date range: totals by fund, pledge progress, and notable donors."},{"name":"crm_cleanup","title":"CRM data cleanup","description":"Find and fix data-quality issues: duplicate contacts, missing emails/phones, and stale segments."},{"name":"pastoral_care_ops","title":"Pastoral care operations","description":"Full Pastoral Care parity: dashboard, welfare, notes, visits, insights, life events, safeguarding, approvals, automations, teams."},{"name":"community_ops","title":"Community module full parity","description":"Zero-gap Community parity: hub, search, settings, integration, automations, church services, structure."},{"name":"channels_ops","title":"Channels module full parity","description":"Zero-gap Channels parity: email, messages, push, calendar — all tabs."},{"name":"runsheet_ops","title":"Runsheet module full parity","description":"Zero-gap Runsheet parity: plans, schedule, songs, teams, templates, reports, import, live, gate."},{"name":"giving_ops","title":"Giving module full parity","description":"Zero-gap Giving parity: dashboard, donations, givers, funds, reports, donate pages, counting, gift aid."},{"name":"spaces_ops","title":"Spaces module full parity","description":"Zero-gap Spaces parity: rooms, calendar, bookings, approvals, buildings, floor plans, assets, maintenance, incidents, visitors, energy, marketplace, reports, settings."},{"name":"people_ops","title":"People module full parity","description":"Zero-gap People parity: contacts, segments, tags, groups, portal, capture, profile, dashboard."},{"name":"sunday_service_prep","title":"Sunday service prep","description":"Prepare the next service: unfilled volunteer positions, runsheet plan, song selection, and schedule."},{"name":"attendance_report","title":"Attendance trends report","description":"Attendance trends over a date range: totals, first-time visitors, children, and follow-up conversion."},{"name":"new_member_onboarding","title":"New member onboarding","description":"Onboard one contact: profile check, welcome message, group matching, and follow-up task."},{"name":"space_booking_assistant","title":"Space booking assistant","description":"Find and book a suitable room: availability check, conflict detection, and booking creation."},{"name":"proposal_triage","title":"Agent proposal triage","description":"Review every pending autonomous-agent proposal and approve, reject, or escalate each with reasoning."},{"name":"mcp_live_watch","title":"MCP live watch & human takeover","description":"Monitor connected MCP agents in real time, triage issues, and suspend agents that need human takeover."},{"name":"church_sunday_ops","title":"Full Sunday operations runbook","description":"End-to-end Sunday ops: attendance, guests, runsheet, spaces, and follow-ups in one coordinated pass."},{"name":"attendance_sunday_headcount","title":"Sunday headcount capture","description":"Review today's check-ins and compare to recent Sunday averages."},{"name":"attendance_trend_alert","title":"Attendance decline alert","description":"Detect declining attendance trends and recommend pastoral/guest responses."},{"name":"audit_security_review","title":"Security audit review","description":"Review recent audit events for security-sensitive actions."},{"name":"audit_compliance_export","title":"Compliance audit export","description":"Prepare an audit trail summary for compliance or board review."},{"name":"billing_usage_upgrade_review","title":"Billing usage & upgrade review","description":"Check subscription state and whether an upgrade is needed for current usage."},{"name":"billing_checkout_assist","title":"Billing checkout assist","description":"Help an operator upgrade a specific addon via Stripe checkout."},{"name":"channels_sms_not_delivered","title":"Text message did not arrive","description":"User-friendly help when an SMS was not received — diagnose sender, quiet hours, and recent sends."},{"name":"channels_register_sms_sender","title":"Register and activate an SMS sender ID","description":"End-to-end sender setup: shorten name if needed, create (pending review), set default when approved, optional test send after approval."},{"name":"channels_manage_sms_senders","title":"Delete or switch default SMS sender","description":"Delete a sender (e.g. RCCGWT) and/or set another as default (e.g. MTZionFA)."},{"name":"channels_pastoral_checkin","title":"Pastoral SMS/email check-in","description":"Draft and send a personal pastoral check-in to one contact."},{"name":"channels_whatsapp_broadcast_prep","title":"WhatsApp broadcast prep","description":"Pre-flight a WhatsApp message: template check, audience, and send."},{"name":"channels_transactional_notify","title":"Transactional notification send","description":"Send a one-off transactional email or SMS (receipt, reminder, confirmation)."},{"name":"channels_video_meeting","title":"Create or run a video meeting","description":"Create a Channels meeting, share the join link, invite people, start, admit waiting guests, and end. Not Sunday Live and not Spaces rooms."},{"name":"community_prayer_triage","title":"Prayer request triage","description":"Review open prayer requests, prioritise urgent, and propose responses."},{"name":"community_life_event_response","title":"Life event pastoral response","description":"Respond to recent life events (bereavement, illness, celebration) with appropriate care."},{"name":"community_safeguarding_review","title":"Safeguarding check review","description":"Review open safeguarding checks and escalate amber/red items."},{"name":"community_followup_completion","title":"Pastoral follow-up completion","description":"Work through pending pastoral follow-ups and close completed ones."},{"name":"giving_who_counted","title":"Who ran the offering count","description":"Find counting sessions for a day and report which volunteer counted."},{"name":"giving_pledge_followup","title":"Pledge follow-up","description":"Identify at-risk pledges and propose donor follow-up."},{"name":"giving_first_time_donor_welcome","title":"First-time donor welcome","description":"Welcome first-time donors with a personal thank-you."},{"name":"giving_fund_setup","title":"New giving fund setup","description":"Create a new fund and verify it appears in giving reports."},{"name":"giving_card_donation","title":"Process a card donation","description":"Charge a card via Stripe or share a public donate page — never collect raw card numbers in chat."},{"name":"giving_gift_aid_setup","title":"Gift Aid declaration setup","description":"Check and record UK Gift Aid declarations for a donor."},{"name":"groups_health_review","title":"Small groups health review","description":"Review all small groups: size, leaders, and inactive groups."},{"name":"groups_new_member_placement","title":"Small group placement","description":"Place a contact into the best-matching small group."},{"name":"grow_automation_audit","title":"Automation health audit","description":"Review all automations: active, paused, erroring, and enrollment counts."},{"name":"grow_form_lead_triage","title":"Form submission triage","description":"Process new form submissions: dedupe, tag, and enroll in automations."},{"name":"grow_landing_page_publish","title":"Landing page publish","description":"Create and publish a landing page for an event or campaign."},{"name":"grow_ab_test_review","title":"A/B test review","description":"Review running A/B tests and recommend winner or extension."},{"name":"guests_stalled_pipeline_review","title":"Stalled guest pipeline review","description":"Find guests stuck in early pipeline stages and recommend moves or follow-ups."},{"name":"guests_checkin_welcome","title":"Guest check-in & welcome","description":"Check in a guest visitor and create their follow-up journey."},{"name":"guests_sunday_operations","title":"Sunday check-in operations (agent-native)","description":"Full Sunday flow: services, roster, check-ins, pipeline report — optimized for MCP/agents."},{"name":"guests_copy_welcome_team","title":"Copy Welcome Team from previous service","description":"Copy Welcome Team volunteer roster from a past service to an upcoming one."},{"name":"guests_welcome_team_gaps","title":"Welcome Team gaps and assignments","description":"Review welcome team schedules, fill gaps, assign greeters and ushers."},{"name":"guests_analytics_review","title":"Guest analytics and retention review","description":"Attendance trends, heatmap, pipeline summary, and follow-up priorities."},{"name":"guests_locations_setup","title":"Check-in locations setup","description":"Configure kids rooms and check-in locations; optional Spaces import."},{"name":"live_stream_prep","title":"Live stream prep","description":"Prepare an upcoming live stream: schedule, stats baseline, and poll setup."},{"name":"live_post_stream_summary","title":"Post-stream summary","description":"Summarise stream performance and recommend follow-up content."},{"name":"mediahub_podcast_publish","title":"Podcast episode publish","description":"Publish a podcast episode: create media item, metadata, and publish."},{"name":"mediahub_playlist_curation","title":"Playlist curation","description":"Create or update a media playlist for a series or sermon archive."},{"name":"mediahub_book_launch","title":"Pastor book launch","description":"Launch a pastor book: upload EPUB, list in shop, metadata, PublishDrive export."},{"name":"store_pastor_multi_book_storefront","title":"Pastor multi-book storefront (sell + distribute)","description":"Set up a pastor author shop and add multiple books for sale and retail distribution (e.g. 9 titles)."},{"name":"people_welcome_desk_daily","title":"Welcome Desk daily review","description":"Process Welcome Desk visitors and follow-up tasks for first-time guests."},{"name":"people_contact_enrichment","title":"Contact profile enrichment","description":"Review and enrich a contact profile with custom fields and tags."},{"name":"people_segment_audience_build","title":"Segment audience build","description":"Build or refine a CRM segment for campaigns or pastoral outreach."},{"name":"people_meeting_prep_brief","title":"Meeting prep brief","description":"Generate a pastoral or leadership meeting brief for one contact."},{"name":"people_link_family_member","title":"Link two contacts as family","description":"Link existing contacts as family (e.g. Grace as James's daughter) using the native Relationships graph."},{"name":"people_family_household_review","title":"Family & household review","description":"Review family relationships and household groupings for one contact."},{"name":"platform_discovery_orientation","title":"MCP discovery orientation","description":"Orient a new MCP agent: manifest, tools, scopes, and golden path."},{"name":"platform_agent_configuration","title":"Autonomous agent configuration","description":"Review and recommend autonomy modes for all 11 platform agents."},{"name":"platform_route_explorer","title":"Dashboard API route explorer","description":"Find a dashboard API route for UI features not covered by workflow tools."},{"name":"platform_dashboard_write","title":"Execute any dashboard setting or module action","description":"Find and invoke any dashboard API write when no workflow tool exists — full platform parity."},{"name":"platform_invite_team_member","title":"Invite a team member","description":"Invite someone to the organization with a role — same as Settings → Team → Invite. Requires platform:write (intent=team or intent=platform)."},{"name":"runsheet_team_roster_audit","title":"Runsheet team roster audit","description":"Audit team roster, access seats, and unfilled positions."},{"name":"runsheet_song_selection","title":"Worship song selection","description":"Select songs for an upcoming plan based on keys, recency, and theme."},{"name":"runsheet_publish_plan","title":"Publish runsheet plan","description":"Final review and publish of a runsheet plan to the team portal."},{"name":"runsheet_setup_from_previous_service","title":"Set up plan from previous service","description":"Copy service order and production team from the last similar service."},{"name":"runsheet_crew_gate_live","title":"Crew gate live service guide","description":"Explain crew portal stage display, interaction lock, sync live, and production notes for operators."},{"name":"schedule_service_calendar_review","title":"Service calendar review","description":"Review upcoming services and recurring series for gaps or conflicts."},{"name":"spaces_incident_response","title":"Facilities incident response","description":"Log and triage a facilities incident; notify relevant parties."},{"name":"spaces_weekly_bookings_review","title":"Weekly bookings review","description":"Review this week's bookings, cancellations, and utilisation."},{"name":"spaces_new_room_setup","title":"New room setup","description":"Add a new room to the spaces module."},{"name":"store_product_launch","title":"Store product launch","description":"Create and list a new product in the org store."},{"name":"store_order_review","title":"Store order review","description":"Review recent store orders and flag fulfilment priorities."},{"name":"templates_email_series_build","title":"Email template series build","description":"Create a series of email templates for onboarding or nurture."},{"name":"templates_whatsapp_compliance","title":"WhatsApp template compliance check","description":"Verify WhatsApp templates are approved before a broadcast campaign."},{"name":"ticketing_refund_handling","title":"Ticketing refund handling","description":"Process a refund request with human approval for money movement."},{"name":"ticketing_day_of_checkin","title":"Day-of event check-in","description":"Run check-in operations on event day."},{"name":"ticketing_event_launch","title":"Event create and publish","description":"Create a new event, ticket types, and publish to registration."}],"resources":[{"name":"sendifai-agent-manifest","uri":"sendifai://manifest","description":"Agent-readable manifest of all sendifai modules, tools, scopes, resources, and prompts"},{"name":"sendifai-getting-started","uri":"sendifai://docs/getting-started","description":"How to authenticate, orient, and behave well as an agent on sendifai"},{"name":"sendifai-security-model","uri":"sendifai://docs/security","description":"The five security layers: auth, scopes, feature flags, rate limits, audit trail"},{"name":"sendifai-workflows","uri":"sendifai://docs/workflows","description":"Catalog of pre-built workflow prompts and how to compose them"},{"name":"sendifai-agents-guide","uri":"sendifai://docs/agents","description":"How the 11 autonomous agents work: modes, proposals, executable action types"},{"name":"sendifai-billing-limits","uri":"sendifai://docs/billing-and-limits","description":"Metered usage, LIMIT_REACHED responses, runsheet access seats vs roster-only, and platform_usage"},{"name":"sendifai-giving","uri":"sendifai://docs/giving","description":"Giving: public display name, org-branded donation receipts, card donations, bank statement descriptors, Stripe Connect"},{"name":"sendifai-messaging-tariff","uri":"sendifai://docs/messaging-tariff","description":"Published messaging credit rates per destination and channel — agents must use billing_estimate_messaging_credits, never 1:1 math"},{"name":"sendifai-runsheet-crew-gate","uri":"sendifai://docs/runsheet-crew-gate","description":"Crew portal and stage display: interaction lock, sync live, follow schedule clock, production notes, MCP tools"},{"name":"sendifai-contact-list-filters","uri":"sendifai://docs/contact-list-filters","description":"Unified contact list/search/export filters for People UI, API, MCP people_list_contacts and people_search_contacts"},{"name":"sendifai-uk-address-lookup","uri":"sendifai://docs/uk-address-lookup","description":"UK postcode lookup: fills city/county/postcode/country; line 1 for house number — dashboard and MCP parity"},{"name":"sendifai-org-dates","uri":"sendifai://docs/org-dates","description":"Organisation date order: UK DD/MM vs US MM/DD, Freedom Arena 09/11 = 9 November, dateOfBirthLabel month names"},{"name":"sendifai-brand-voice-templates","uri":"sendifai://docs/brand-voice-templates","description":"29 org-type brand voice starter templates, API actions, and platform_get_brand_voice / platform_apply_brand_voice_template MCP tools"},{"name":"sendifai-funnel-ai-variation","uri":"sendifai://docs/funnel-ai-variation","description":"Per-recipient funnel email AI variation — not A/B; personalization_ai cost, MCP tools, service reminder defaults"},{"name":"sendifai-email-personalization","uri":"sendifai://docs/email-personalization","description":"Email merge tags, titles/honorifics, {{salutation_name}}, auto Hi greeting, WhatsApp {{1}} — channels_send_email and blasts"},{"name":"sendifai-org-media-library","uri":"sendifai://docs/org-media-library","description":"Org Media Library (/media, media_library) vs Media Hub — logos, posters, MCP platform_list_media_library_files"},{"name":"sendifai-store-multi-shopfront","uri":"sendifai://docs/store-multi-shopfront","description":"Per-speaker Stripe stores, org unified storefront, sendifai marketplace, revenue splits, MCP store tools"},{"name":"sendifai-meetings","uri":"sendifai://docs/meetings","description":"Channels video meetings — join code identity, custom slug/domain, start/invite/admit/end. Not Sunday Live, not Spaces rooms, not speakfai"},{"name":"sendifai-speakfai","uri":"sendifai://docs/speakfai","description":"speakfai.com Hear / Read door — house voices, captions, send. Not meetings, not Sunday camera ingest"},{"name":"sendifai-ticketing","uri":"sendifai://docs/ticketing","description":"Ticketing organizer MCP + ticketingbook host split, Connect, external listing, scopes, and tool catalog"},{"name":"sendifai-mediahub-library","uri":"sendifai://docs/mediahub-library","description":"Media Hub published content (media_items) — media_type vs content_format; NOT org Media Library files"},{"name":"sendifai-grow-automations","uri":"sendifai://docs/grow-automations","description":"Pause, activate, and permanently delete automation flows — deleteAll/pauseAll, protected platform flows, no pre-pause for delete"},{"name":"sendifai-mcp-ops","uri":"sendifai://docs/mcp-ops","description":"MCP ops audit, connected-agent governance, MCPOps Telegram alerts, and error taxonomy"},{"name":"sendifai-global-email-schedule-templates","uri":"sendifai://docs/global-email-schedule-templates","description":"Global email templates for convention, festival, and order-of-program schedules — names, use cases, MCP list/get tools"},{"name":"sendifai-platform-intelligence","uri":"sendifai://docs/platform-intelligence","description":"Self-improvement engine: failure fingerprinting, tiered auto-patching, and the retryAdvice recovery contract agents must relay to users"},{"name":"org-snapshot","uri":"sendifai://org/snapshot","description":"Live cross-module snapshot of the organization (requires platform:read)"},{"name":"org-agents","uri":"sendifai://org/agents","description":"Live autonomous agent status: mode, last run, findings (requires platform:read)"},{"name":"org-proposals","uri":"sendifai://org/proposals","description":"Pending autonomous-agent proposals awaiting approval (requires platform:read)"},{"name":"org-usage","uri":"sendifai://org/usage","description":"Metered usage and billing state per channel, including runsheet access seats (requires platform:read)"},{"name":"org-brand-voice","uri":"sendifai://org/brand-voice","description":"Organization brand voice profile, effective template fallback, and starter template library (requires platform:read)"},{"name":"contact-card","uri":"sendifai://contacts/{contactId}","description":"Full contact card by UUID: profile, tags, community membership (requires people:read)"},{"name":"contact-pastoral-notes","uri":"sendifai://contacts/{contactId}/notes","description":"Pastoral care notes for one contact — team/public only over MCP (requires people:read)"},{"name":"contact-family","uri":"sendifai://contacts/{contactId}/family","description":"Linked family/household relationships for one contact — spouse, parent, child, sibling (requires people:read)"},{"name":"contact-care-timeline","uri":"sendifai://contacts/{contactId}/timeline","description":"Combined pastoral care timeline — notes and interactions for one contact (requires people:read)"},{"name":"event-health","uri":"sendifai://events/{eventId}","description":"Event sales, revenue, check-in, and capacity by UUID (requires ticketing:read)"}]}