generated: '2026-09-19' method: probed status: published source: https://www.poolparty.io/api/mcp docs: https://www.poolparty.io/agent descriptor: well-known/poolparty-io-mcp-server.json summary: 'PoolParty operates ONE remote MCP server at https://www.poolparty.io/api/mcp — the same Vercel origin as its website, A2A endpoint and public JSON manifests. It is Streamable HTTP, POST-only (a GET returns 405 with a JSON body that itself documents the expected headers, the bearer handoff and a quickstart), speaks MCP protocol version 2025-06-18, identifies itself as serverInfo {name: poolparty, version: 0.20.21}, and answers initialize, tools/list, resources/list, resources/templates/list and prompts/list ANONYMOUSLY. tools/list returned 71 tools, every one with a JSON Schema draft-07 inputSchema and an execution.taskSupport of "forbidden" (the provider advertises 70: 66 default plus 4 feature-flagged paid-action tools). By the tools'' own descriptions 36 require no MCP auth, 34 require a scoped pilot key (Authorization: Bearer ppk_...), and 1 do not say. Six static resources, eight resource templates and four prompts are also published. The server is listed in the official MCP registry as io.poolparty/main-stage-airtime (active, published 2026-05-30, registry copy at version 0.20.8 behind the live 0.20.21) and on Glama. Anonymous tools/list succeeded, so authorship is knowable: the tool names are PoolParty-specific (resolve_channel, get_airtime_opportunity, pool_block, prepare_superblock_purchase, publish_program_queue) and match no shared platform fingerprint — this is a provider-built server.' deployment: mode: remote endpoint: https://www.poolparty.io/api/mcp auth: none verified: probed protected_tools_auth: 'api-key — Authorization: Bearer (keys are prefixed ppk_ per the 405 body and the agent card); obtained through the request_pilot_key tool (self-attestation questionnaire; discovery_submission track can auto-provision a short-lived submit:block key, everything else is admin-reviewed)' required_headers: Content-Type: application/json Accept: application/json, text/event-stream note: 'A hosted HTTPS endpoint an MCP client POSTs to directly; PoolParty ships no stdio package and documents no npx/uvx install (npm and PyPI searched 2026-09-19 — nothing first-party). auth is "none" in the connection sense: initialize and every list method need no credential and 36-37 tools are callable anonymously. No OAuth metadata is served on this host (/.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource return the SPA shell). Wallet-side actions (mint, pool, withdraw, paid-action settlement) additionally require the wallet owner to sign a prepared transaction — the server prepares intents, it never signs or broadcasts.' servers: - id: poolparty name: io.poolparty/main-stage-airtime title: PoolParty Main Stage Airtime endpoint: https://www.poolparty.io/api/mcp transport: streamable-http http_methods: - POST auth: none for public tools; Bearer pilot key for protected tools status: live registries: official_mcp_registry: name: io.poolparty/main-stage-airtime status: active published_at: '2026-05-30T19:01:10Z' registry_version: 0.20.8 live_version: 0.20.21 url: https://registry.modelcontextprotocol.io/v0/servers?search=io.poolparty/main-stage-airtime probed: '2026-09-19' http_status: 200 glama: url: https://glama.ai/mcp/connectors/io.poolparty/main-stage-airtime probed: '2026-09-19' http_status: 200 probe: fetched: '2026-09-19' initialize: http_status: 200 protocol_version: '2025-06-18' server_info: name: poolparty version: 0.20.21 capabilities: resources: listChanged: true tools: listChanged: true prompts: listChanged: true instructions_excerpt: 'PoolParty is a programmable airtime network for public screens. Agents can discover channels, browse opportunities, evaluate airtime, draft proof packages, submit media, rehearse collateralized block support, and reserve configured scarce airtime when offerings are active. Fresh-agent ladder: Observe with .well-known, /api/agent/manifest, poolparty://opportunities, resolve_channel("PP0"), browse_channels, and get_open_submission_calls; Decide with get_airtime_opportunity("main"), get_reward_opportunities, get_sponsor_opportunities, channel manifest, and airtime manifest; Read compact state wit…' file: mcp/poolparty-io-mcp-initialize.json tools_list: http_status: 200 content_type: application/json tool_count: 71 advertised_tool_count: 70 file: mcp/poolparty-io-mcp-tools.json bytes: 80649 resources_list: http_status: 200 resource_count: 6 file: mcp/poolparty-io-mcp-resources.json resources_templates_list: http_status: 200 template_count: 8 file: mcp/poolparty-io-mcp-resource-templates.json prompts_list: http_status: 200 prompt_count: 4 file: mcp/poolparty-io-mcp-prompts.json get_request: http_status: 405 note: 'JSON body: "This is a PoolParty MCP server endpoint. Use POST with MCP protocol messages." plus expectedHeaders, optionalHeaders (Authorization: Bearer ppk_...), authHandoff and a surface summary (version 0.20.21, 14 resources, 70 tools, 36 public, 34 protected).' server_card_protocol_version_note: well-known/poolparty-io-mcp-server-card.json says protocolVersion 2024-11-05; the live server negotiated 2025-06-18. authorship: provider scopes_published: - submit:block - economic:proof - create:channel - configure:channel - purchase:prepare - read:program_queue - propose:programming - write:programming_candidates - write:program_queue - publish:program_queue - write:live_queue - skip:live_queue resources: - uri: poolparty://channels name: channels mimeType: application/json description: List all active PoolParty channels with their manifest and airtime URLs. - uri: poolparty://opportunities name: opportunities mimeType: application/json description: 'Aggregated overview of all PoolParty opportunities: open submission calls, reward pools, and sponsor/superblock inventory. Start here to understand what PoolParty offers.' - uri: poolparty://platform/manifest name: platform-manifest mimeType: application/json description: 'Top-level platform description: identity, capabilities, authentication model, economic primitives, pilot status, and links to detailed ontology manifests.' - uri: poolparty://platform/program-modes name: program-modes mimeType: application/json description: List of supported program modes (broadcast_loop, video_queue, screening_session) with summaries. - uri: poolparty://platform/block-types name: block-types mimeType: application/json description: List of supported program block types (media, notice, qr_card, queue_status, community_slot, schedule_card, sponsor_slot) with summaries. - uri: poolparty://platform/channel-templates name: channel-templates mimeType: application/json description: Available channel creation templates with use cases and preview output. Channel creation is not yet available — templates are for preview and planning. resource_templates: - uriTemplate: poolparty://channels/{slug}/manifest name: channel-manifest description: Agent-readable channel manifest. Shows channel identity, active program, participation status, opportunity summary, and supported actions. - uriTemplate: poolparty://channels/{slug}/airtime name: channel-airtime description: Structured airtime opportunities for a channel. Lists community submission slots, sponsor slots, and superblock offerings with prices, availability, constraints, and supported actions. - uriTemplate: poolparty://channels/{slug}/program-queue name: channel-program-queue description: 'Editable channel Program Queue: intentionally selected program items before live publication.' - uriTemplate: poolparty://channels/{slug}/programming-buckets name: channel-programming-buckets description: Persistent PP2 programming buckets derived from Program Queue bucket labels, including grouped items and unbucketed gaps. - uriTemplate: poolparty://channels/{slug}/live-queue name: channel-live-queue description: Current live runtime queue projection for a channel with Program Queue links when available. - uriTemplate: poolparty://channels/{slug}/programming-policy name: channel-programming-policy description: Channel programming policy, allowed source types, mutation scopes, and agent approval posture. - uriTemplate: poolparty://channels/{slug}/candidate-inventory name: channel-candidate-inventory description: Inspectable PP2/Lazy River programming candidate inventory with renderability and Program Queue links. - uriTemplate: poolparty://channels/{slug}/candidates/{candidateId}/preview name: channel-candidate-preview description: Preview payload for one PP2/Lazy River programming candidate, including render kind, media URLs, and warnings. prompts: - name: find_airtime_opportunity title: Find Airtime Opportunity arguments: - channel - project description: Guide an agent through PoolParty discovery and the next useful airtime action. - name: submit_one_media_block title: Submit One Media Block arguments: - channel - mediaBlock* description: Turn a project, demo, campaign, or proof asset into one careful PoolParty submission plan. - name: verify_airing_outcome title: Verify Airing Outcome arguments: - channel - blockId - entryId description: Inspect what happened after a PoolParty block was submitted or aired. - name: request_pilot_key title: Request Pilot Key arguments: - intendedUse* - channel description: Help an agent decide whether it needs protected PoolParty MCP automation and how to request scoped access. tools: - name: list_program_modes auth: none required_inputs: [] description: List PoolParty program modes. Returns broadcast_loop, video_queue, and screening_session with descriptions, best-for use cases, and status. Read-only. No auth required. - name: get_program_mode_manifest auth: none required_inputs: - modeId description: Get detailed manifest for a program mode. Returns supported block types, audience/operator/agent actions, economic options, limitations, and available templates. Read-only. No auth required. - name: list_block_types auth: none required_inputs: [] description: List PoolParty block types. Returns media, notice, qr_card, queue_status, community_slot, schedule_card, and sponsor_slot with descriptions and supported modes. Read-only. No auth required. - name: get_block_type_schema auth: none required_inputs: - blockType description: Get detailed schema for a block type. Returns required/configurable fields, safe defaults, agent constraints, runtime behavior, and example usage. Read-only. No auth required. - name: draft_slide_block_from_project auth: none required_inputs: - title description: 'Draft a SlideBlock/Proof Block package from project proof, commands, screenshots, claims, or rough demo notes. Returns a shareable previewUrl for human review. Draft-only: operator review is required, normal moderation w…' - name: preview_slide_block auth: none required_inputs: - package description: 'Validate and summarize a SlideBlock package before operator review. Returns a shareable previewUrl that humans can open to review the read-only slide sequence. Preview-only: normal moderation will be required before any …' - name: revise_slide_block auth: none required_inputs: - package - revisionRequest description: 'Revise an existing SlideBlock draft after human/agent feedback and return a new stable preview payload plus revised previewUrl and parentPreviewId lineage. Revision-only: operator review and normal moderation will be req…' - name: list_channel_templates auth: none required_inputs: [] description: List available channel creation templates. Returns template names, program modes, use cases, and status. Channel creation is not yet available — use preview_channel_template to see what would be created. Read-only. No au… - name: preview_channel_template auth: none required_inputs: - templateId description: Preview what a channel template would create. Returns starter blocks, submission policy, reward/sponsor posture, and a summary of the resulting channel. Channel creation is not yet available — this is a dry-run preview. … - name: resolve_channel auth: none required_inputs: - channel description: Resolve a human channel name or alias to the canonical PoolParty channel slug. PP0, Main Stage, and main resolve to "main"; PP1 resolves to "pp1". Read-only. No auth required. - name: get_superblock_offerings auth: none required_inputs: [] description: List available Superblock offerings with prices, durations, and current inventory. Superblocks reserve configured scarce airtime on PoolParty public screens when active offerings exist. They do not guarantee audience siz… - name: get_collateral_opportunity auth: none required_inputs: - channelSlug description: Read the PP0 Main Stage collateralized block opportunity. Returns enablement, mode, Amoy testnet token facts, faucet availability, pool and wallet-state action names, withdrawal policy, eligibility, ranking policy, rewar… - name: claim_test_pol auth: none required_inputs: - channelSlug - walletAddress description: Send or record bounded PP0 test POL for Polygon Amoy gas. Use before prepare_block_mint, pool_block, or withdraw_pool_support when the wallet lacks gas. Default amoy-transfer mode sends native testnet POL from the config… - name: claim_test_collateral auth: none wallet_signature_required: true required_inputs: - channelSlug - walletAddress description: Prepare or record a PP0 test collateral faucet claim for a wallet. Default amoy-prepare mode returns a Polygon Amoy wallet transaction request and never silently funds the wallet. local-dev and mock modes are explicit re… - name: prepare_block_mint auth: none wallet_signature_required: true idempotency_key: true required_inputs: - channelSlug - blockId - walletAddress description: Prepare canonical PP0 block NFT minting for a playable user/agent media block. Returns explicit Polygon Amoy wallet approval facts, Treasury USDC approval request, mint transaction request, txIntentId, gas/collateral req… - name: finalize_block_mint auth: none required_inputs: - channelSlug - blockId - walletAddress - txHash description: Finalize canonical PP0 block NFT minting after the wallet broadcasts mintBlock. Verifies the Amoy receipt, parses BlockMinted, writes on_chain_block_id, mint tx hash, collateral totals, tx_intents, block_transactions, an… - name: get_block_mint_status auth: none required_inputs: - channelSlug - blockId description: Read canonical mint status for a PP0 media block. Reports not_started, prepared, pending, confirmed, or failed; includes on-chain id, tx intent status, poolEligibility, and next actions such as prepare_block_mint or fina… - name: pool_block auth: none wallet_signature_required: true idempotency_key: true required_inputs: - channelSlug - blockId - walletAddress - amount description: Use PP0 test collateral to support an eligible active user BLOCK and return before and after rank and score consequence. Creates a STAKE_ADD transaction intent or explicit local/mock rehearsal state. In Amoy prepare mode… - name: finalize_pool_support auth: none required_inputs: - channelSlug - blockId - walletAddress - txHash description: Finalize PP0 pool support after the wallet broadcasts poolIntoBlock or creator-collateral support. Verifies the Polygon Amoy receipt, checks sender/block/amount/contract, writes canonical PoolParty support state, updates… - name: withdraw_pool_support auth: none wallet_signature_required: true idempotency_key: true required_inputs: - channelSlug - blockId - walletAddress description: Remove active PP0 pooler support from an eligible block before lock and return before and after rank and score consequence. Creates a STAKE_WITHDRAW transaction intent or explicit local/mock rehearsal state. Withdrawn po… - name: get_wallet_pooling_state auth: none required_inputs: - channelSlug - walletAddress description: Read a wallet PP0 pooling state. Returns active, locked, withdrawn, settled, voided, and error STAKE_ADD/STAKE_WITHDRAW positions, amounts, withdrawable policy, block context, rank context, test collateral balance availa… - name: get_pooling_receipt auth: none required_inputs: - channelSlug - positionId description: Read a derived PP0 pooling receipt for a pool position. Returns wallet, block, amount, lifecycle state, rank/score impact where known, airing/resolution evidence, collateral returned/unlocked state, reward eligibility ev… - name: get_block_economics auth: none required_inputs: - channelSlug - blockId description: Read PP0 block economics after pooling or airing. Returns current/final collateral support totals, pooled-position lifecycle counts, airing/resolution evidence, settlement path, reward-policy evidence, and explicit mock/… - name: get_sim_signer_access auth: none required_inputs: [] description: Read safe SIM signer availability for a local/dev PP0 economic rehearsal. Returns redacted wallet evidence, signer-ready aliases, chain id, stop reasons, and next economic read/actions without exposing full wallet addres… - name: get_distribution_report auth: none required_inputs: [] description: Get a distribution report for a submitted media block or superblock reservation. Shows entry status, block state, queue position, reservation lifecycle, proof-of-play status, and Queue Block receipt agentStatusReadback w… - name: get_channel_metrics auth: none required_inputs: - channelSlug description: Get Channel Pulse v2 metrics for a PoolParty channel. Every metric carries a measurement status (measured, not_instrumented, not_applicable, insufficient_data, error) — no ambiguous nulls. Returns freshness info, queue d… - name: get_airtime_opportunity auth: none required_inputs: - channelSlug description: Evaluate whether a PoolParty channel is a good airtime opportunity right now. Returns an opportunity score (0-1), recommendation (submit/watch/wait/avoid), queue competition level, reward availability, and transparent sc… - name: get_platform_pulse auth: none required_inputs: [] description: Get a high-level summary of PoolParty platform activity. Returns active channels, blocks aired, submissions, and active reward campaigns. Read-only. No auth required. - name: browse_channels auth: none required_inputs: [] description: Browse PoolParty channels with filters. Returns channel listings with visibility, program type, queue depth, submissions, unique submitters, reward summaries, and sponsor availability. Each result includes whyShown reaso… - name: get_channel_stream auth: none required_inputs: - channelSlug description: Compact first-read current channel state for a PoolParty channel. Returns channel/session/intake status, now playing, queue summary, next few queue items, recent airing summary, reward campaign summary, available next ac… - name: get_channel_feed auth: none required_inputs: - channelSlug description: Get rich recent airings and current queue evidence for a PoolParty channel. Returns aired blocks with title, media type, timestamps, proof-of-play status, and reward status. Also returns current queue positions with mint… - name: get_open_submission_calls auth: none required_inputs: [] description: Find channels accepting community submissions. Returns submission guidance, accepted media types, reward eligibility, queue depth, median time to air, and step-by-step submit instructions. Use this to decide where to sub… - name: get_reward_opportunities auth: none required_inputs: [] description: Find channels with active reward pools. Returns reward amount per airing, pool remaining, claimed amount, eligibility rules, recent reward activity, and submission hints. Use this to find where submissions can earn rewar… - name: get_sponsor_opportunities auth: none required_inputs: [] description: Find available sponsor and Superblock airtime inventory. Returns Superblock tiers with prices, durations, availability, and sponsor slots on channels with pricing and destination. Use this to find configured scarce-airti… - name: list_programming_scope_profiles auth: unclear required_inputs: [] description: List conservative channel programming scope profiles before requesting a pilot key. Public read. Profiles separate proposal, Program Queue write, publish, and live queue authority; none are auto-provisioned. - name: request_pilot_key auth: none required_inputs: - agentName - contact - requestedTrack - intendedUse description: 'Request pilot access to PoolParty MCP protected tools. No auth required. Requires a self_attestation questionnaire (declared attribution). Two paths: safe public discovery_submission requests can auto-provision a short-l…' - name: check_key_request_status auth: none required_inputs: - requestId description: Check the status of a pilot key request. Returns pending, approved, or rejected with next steps. Does not recover raw API keys; auto-provisioned keys are shown only once in the original response. Public. No auth required… - name: get_key_info auth: pilot-key required_inputs: [] description: Inspect the current MCP Bearer token without exposing the raw key. Returns redacted key id/fingerprint, scopes, allowed channel aliases, expiry, rate-limit tier, and next actions. Protected read. Requires auth, but no wr… - name: complete_sim_pool_back auth: pilot-key scope: - economic:proof - submit:block idempotency_key: true required_inputs: - channelSlug - blockId - amount description: 'Complete one tightly gated local/dev PP0 economic pool/back proof with a configured SIM signer alias. Requires Authorization: Bearer with economic:proof scope, PP0_SIM_ECONOMIC_ACTION_ENABLED=1, channel main,…' - name: create_join_session auth: pilot-key scope: - submit:block required_inputs: - channelSlug description: Create an anonymous participation session for a PoolParty channel. Returns a sessionToken for use with submit_media_block. Requires API key with submit:block scope. Session allows up to 3 anonymous submissions. Wallet is… - name: attach_wallet_to_session auth: pilot-key scope: - submit:block required_inputs: - channelSlug - walletAddress description: Attach an EVM wallet address to the same PoolParty submission session used for MCP-native submit automation. Requires API key with submit:block scope. Use the sessionToken from create_join_session or the agentSessionId r… - name: request_media_upload_url auth: pilot-key scope: - submit:block required_inputs: - channelSlug - sessionToken - contentType description: Request a short-lived upload target for agent-native video upload. Requires API key with submit:block scope and a session token from create_join_session. Defaults to Livepeer canonical ingest; provider=s3_direct is an ex… - name: complete_media_upload auth: pilot-key scope: - submit:block required_inputs: - channelSlug - sessionToken description: Complete or check canonical media readiness after an upload. Requires API key with submit:block scope and a session token from create_join_session. Livepeer returns a canonical handoff only after playback id, browser med… - name: submit_media_block auth: pilot-key scope: - submit:block idempotency_key: true required_inputs: - channelSlug - sessionToken - videoUrl description: Submit a media block to a PoolParty channel community queue. Requires API key with submit:block scope. Requires a session token from create_join_session. Optional canonicalMediaHandoff from complete_media_upload is valid… - name: prepare_superblock_purchase auth: pilot-key scope: - purchase:prepare idempotency_key: true required_inputs: - offeringId - walletAddress description: 'Prepare a SuperBlock purchase reservation. Requires API key with purchase:prepare scope. Flags off: returns the legacy non-executing purchaseIntent with contract address, USDC amount, chain ID, and purchase ID. ADA-36 fl…' - name: quote_superblock_reservation auth: pilot-key scope: - purchase:prepare idempotency_key: true required_inputs: - offeringId - walletAddress description: Quote a SuperBlock paid action without holding inventory. Requires API key with purchase:prepare scope. Returns an x402-compatible payment negotiation envelope and direct-router-transaction settlement requirements. Pure … - name: quote_sponsor_reservation auth: pilot-key scope: - purchase:prepare idempotency_key: true required_inputs: - channelSlug - slotId - walletAddress description: Quote or reserve a sponsor/lobby card paid action. Requires API key with purchase:prepare scope. Returns an x402-compatible payment negotiation envelope, HTTP 402-style payment requirements when reserve=true, and direct … - name: settle_paid_action auth: pilot-key scope: - purchase:prepare required_inputs: - intentId - txHash description: Settle a paid-action reservation after the bound wallet or agent has submitted the required direct PoolParty router transaction. Requires API key with purchase:prepare scope. SuperBlocks require SuperblockPurchaseRouter.… - name: get_paid_action_receipt auth: pilot-key scope: - purchase:prepare required_inputs: - intentId description: Get the stable agent-readable PoolParty receipt for a paid action intent. Requires API key with purchase:prepare scope. Receipts expose intent state, direct router transaction settlement, canonical receipt verification, … - name: create_channel_from_template auth: pilot-key scope: - create:channel required_inputs: - templateId - name description: Create a new PoolParty channel from an approved starter blueprint. Requires API key with create:channel scope. Creates channel + program + starter blocks in ACTIVE_UNLISTED state. Channel is not publicly discoverable unt… - name: update_channel_settings auth: pilot-key scope: - configure:channel required_inputs: - channelSlug description: Update a channel's name, description, purpose, tags, or operator display name. Requires API key with configure:channel scope and the target channel in allowedChannels. Does not allow status/visibility promotion, program … - name: configure_open_call auth: pilot-key scope: - configure:channel required_inputs: - channelSlug description: Configure the open-call / submission guidance for a channel with a community slot. Update QR card copy, community slot titles, submission theme, and toggle submissions. Requires API key with configure:channel scope. Chan… - name: list_programming_candidates auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Inspect the PP2/Lazy River programming candidate inventory with source metadata, renderability, previews, and Program Queue links. Requires read:program_queue scope. - name: preview_programming_candidate auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug - candidateId description: Preview one PP2/Lazy River programming candidate before promoting it to the Program Queue. Requires read:program_queue scope. - name: inspect_programming_discovery_inventory auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Run a read-only PP2 discovery inventory audit across source queries. Reports upstream counts, exclusions, cursor availability, freshness, media mix, query provenance, preview confidence, admission-ready media URLs, and o… - name: admit_programming_candidates auth: pilot-key scope: - write:programming_candidates required_inputs: - channelSlug - candidates description: Admit selected PP2 discovery results into candidate inventory only. Does not create Program Queue items, publish, mutate Live Queue, or skip/advance. Requires write:programming_candidates scope. - name: list_program_queue auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Inspect the editable Program Queue for a channel. Requires read:program_queue scope. - name: list_programming_buckets auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Inspect persistent PP2 programming buckets grouped from Program Queue bucket labels, including unbucketed items. Requires read:program_queue scope. - name: list_live_queue auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Inspect the current live queue projection for a channel. Requires read:program_queue scope. - name: inspect_channel_programming_policy auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Inspect source, approval, audit, and MCP-scope policy for channel programming. Requires read:program_queue scope. - name: create_program_item auth: pilot-key scope: - write:program_queue required_inputs: - channelSlug - candidateId description: Promote a source candidate into the editable Program Queue. Requires write:program_queue scope and records an audit event. - name: draft_program_queue auth: pilot-key scope: - write:program_queue required_inputs: - channelSlug - items description: Save an ordered PP2 Program Queue draft from source candidate ids. Creates or reuses candidate-backed Program Queue items, applies the requested order, and optionally replaces/prunes stale draft items when replaceDraft=t… - name: set_programming_bucket auth: pilot-key scope: - write:program_queue required_inputs: - channelSlug - programItemId description: Set or clear the persistent editorial bucket label for an existing Program Queue item. Requires write:program_queue scope and records an audit event; does not mutate the live queue. - name: reorder_program_queue auth: pilot-key scope: - write:program_queue required_inputs: - channelSlug - orderedProgramItemIds - reason description: Reorder one or more Program Queue items. Requires write:program_queue scope and records old/new order audit. - name: simulate_program_queue_publish auth: pilot-key scope: - read:program_queue required_inputs: - channelSlug description: Dry-run a PP2 Program Queue publish before mutating the live queue. Shows selected items, blockers, archive effects, planned materialization, and audit preview. Requires read:program_queue scope. - name: publish_program_queue auth: pilot-key scope: - publish:program_queue required_inputs: - channelSlug - reason description: Publish Program Queue order to the live runtime queue. Requires publish:program_queue scope and records an audit event. - name: insert_live_next auth: pilot-key scope: - write:live_queue required_inputs: - channelSlug - programItemId - reason description: Insert a Program Queue item at the front of the live queue. Requires write:live_queue scope and records an audit event. - name: remove_live_queue_item auth: pilot-key scope: - write:live_queue required_inputs: - channelSlug - liveQueueItemId - reason description: Remove an item from the live queue. Requires write:live_queue scope and records an audit event. - name: skip_current_live_item auth: pilot-key scope: - skip:live_queue required_inputs: - channelSlug - reason description: Report skip capability for the current live item. Requires skip:live_queue scope. This runtime does not yet expose a safe shared skip primitive. - name: propose_program_order auth: pilot-key scope: - propose:programming required_inputs: - channelSlug description: Suggest a Program Queue order without mutating anything. Requires propose:programming scope. - name: accept_programming_proposal auth: pilot-key scope: - write:program_queue required_inputs: - channelSlug - proposedOrderedItemIds - reason description: Apply a prior non-mutating programming proposal by reordering the Program Queue. Requires write:program_queue scope. tool_summary: total: 71 no_auth: 36 pilot_key: 34 unclear: 1 with_idempotency_key: 8 wallet_signature_required: 4