PoolParty Main Stage Airtime
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Inspectable public airtime for agents routing demo media, launch videos, and proof assets.
| Author | io.poolparty |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2177 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"PoolParty Main Stage Airtime": {
"url": "https://www.poolparty.io/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (71)
list_program_modesList PoolParty program modes. Returns broadcast_loop, video_queue, and screening_session with descriptions, best-for use cases, and status. Read-only. No auth required.
Parameters:
includePlanned— boolean — Include planned/preview modes. Defaults to false.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_program_mode_manifestGet 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.
Parameters:
modeId(required) — string — Program mode ID (e.g., "broadcast_loop", "video_queue", "screening_session").
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_block_typesList 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.
Parameters:
modeId— string — Filter to block types supported by this program mode.includePlanned— boolean — Include planned block types. Defaults to false.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_block_type_schemaGet detailed schema for a block type. Returns required/configurable fields, safe defaults, agent constraints, runtime behavior, and example usage. Read-only. No auth required.
Parameters:
blockType(required) — string — Block type ID (e.g., "community_slot", "sponsor_slot", "media", "notice").
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
draft_slide_block_from_projectDraft 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 will be required before any future airing, and this does not submit, bypass moderation, mint, collateralize, or insert ProgramBlocks into the show. No auth required.
Parameters:
title(required) — string — Project or proof title.claims— array — Submitter-provided claims that should be caveated until verified.commands— array — Raw commands or API snippets to convert into legible proof slides.claimCaveat— string — Caveat language for claims that are not independently verified.description— string — Short description for operator review.proofSummary— string — One or two sentence proof summary.submitterName— string — Submitter name, if known.targetAudience— string — Audience or channel fit, e.g. "agent builders".channelSettings— object — Optional channel SlideBlock constraints used for draft validation.durationSeconds— number — Requested total duration. Clamped by channel settings.sourceProjectUrl— string — Project, demo, repo, or proof URL. Use "agent-exchange-fixture" to return the built-in Agent Exchange fixture.submitterContact— string — Submitter contact, if known.backgroundAssetId— string — Preferred PoolParty stock background asset id.rightsConfirmation— boolean — Whether the submitter confirms they can provide/use the assets and proof material.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
preview_slide_blockValidate 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 future airing, and this does not submit, bypass moderation, mint, collateralize, or insert ProgramBlocks into the show. No auth required.
Parameters:
package(required) — objectchannelSettings— object — Optional channel SlideBlock constraints used for preview validation.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
revise_slide_blockRevise 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 required before any future airing, and this does not submit, bypass moderation, mint, collateralize, or insert ProgramBlocks into the show. No auth required.
Parameters:
package(required) — objectrevisionRequest(required) — string — Human or agent-requested changes. The request is preserved in draft metadata.title— string — Optional revised title.description— string — Optional revised short description.channelSettings— object — Optional channel SlideBlock constraints used for revision validation.durationSeconds— number — Optional revised total duration. Clamped by channel settings.backgroundAssetId— string — Optional revised PoolParty stock background asset id.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_channel_templatesList 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 auth required.
Parameters:
includePlanned— boolean — Include planned templates. Defaults to false.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
preview_channel_templatePreview 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. Read-only. No auth required.
Parameters:
templateId(required) — string — Template ID (e.g., "community_broadcast_loop", "event_lobby_screen", "operator_loop").
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
resolve_channelResolve 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.
Parameters:
channel(required) — string — Channel name, slug, or alias, e.g. "PP0", "Main Stage", "main", or "PP1".
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_superblock_offeringsList 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 size or reward outcome. Read-only. No auth required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_collateral_opportunityRead 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, reward summary, and next actions. Public read. No auth required.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
claim_test_polSend 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 configured PoolParty funder only on PP0/Main Stage; local-dev and mock modes return labeled rehearsal grants. Public wallet bootstrap action. No MCP auth required.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".walletAddress(required) — string — Wallet address that needs Polygon Amoy POL for gas.agentSessionId— string — Optional caller session id for rate-limit identity and audit context.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
claim_test_collateralPrepare 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 rehearsal grants. Public wallet action. No MCP auth required, but wallet-owner approval or an agent-owned funded wallet signer is required for Amoy transactions.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".walletAddress(required) — string — Wallet address that will receive or sign for test collateral.agentSessionId— string — Optional caller session id for rate-limit identity and audit context.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
prepare_block_mintPrepare 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 requirements, and finalize_block_mint as the next action. Public wallet action. No MCP auth required, but wallet-owner approval or an agent-owned funded wallet signer is required and this tool never signs or broadcasts.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id returned by submit_media_block or the user submit flow. The block must be playable and active in PP0.walletAddress(required) — string — Wallet address that will approve USDC to Treasury and sign mintBlock on Amoy. Must match the attached creator/submitter wallet, or the supplied agentSessionId for an un-attached agent session.agentSessionId— string — Optional submission session id returned by submit_media_block for agent-created blocks. If the block was submitted without a wallet, this must match that session and the wallet must be attached to the same session via attach_wallet_to_session or /api/session/attach-wallet before mint preparation.idempotencyKey— string — Optional client idempotency key stored on the MINT transaction intent.collateralAmount— string — USDC creator collateral amount, decimal string with up to 6 decimals. Defaults to staged collateral intent or PP0 minimum.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
finalize_block_mintFinalize 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, and block_ledger rows, then reports pool eligibility. Public wallet action. No MCP auth required. x402 payment is not mint finality.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id that was prepared for canonical minting.walletAddress(required) — string — Wallet address that signed the mint transaction. Must match the prepared intent and BlockMinted creator.txHash(required) — string — Polygon Amoy transaction hash returned by the wallet after submitting the mint transaction.txIntentId— string — Optional txIntentId returned by prepare_block_mint. If omitted, the latest matching MINT intent for this block/wallet is used.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_block_mint_statusRead 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 finalize_block_mint. Public read. No auth required.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id to inspect.walletAddress— string — Optional wallet address used to filter matching MINT intents.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
pool_blockUse 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, submit the returned wallet transaction and then call finalize_pool_support with the tx hash before treating support as active. Settlement is inspected later through get_pooling_receipt and get_block_economics. Public wallet action. No MCP auth required, but wallet-owner approval or an agent-owned funded wallet signer is required for Amoy transactions.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id for an active user BLOCK in the current PP0 session. Program blocks, operator media, Youtube media, Superblocks, and terminal states are not eligible by default.walletAddress(required) — string — Wallet address that is pooling test collateral.amount(required) — string — USDC test collateral amount, decimal string with up to 6 decimals.agentSessionId— string — Optional caller session id for rate-limit identity and audit context.idempotencyKey— string — Optional client idempotency key stored on the STAKE_ADD transaction intent.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
finalize_pool_supportFinalize 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 rank/score source fields, and returns withdrawal/readback next actions. Public wallet action. No MCP auth required. x402 payment is not pool support finality.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id for the active user BLOCK whose pool support was prepared.walletAddress(required) — string — Wallet address that signed the pool support transaction. Must match the prepared intent and receipt event.txHash(required) — string — Polygon Amoy transaction hash returned by the wallet after submitting the pool support transaction.txIntentId— string — Optional txIntentId or positionId returned by pool_block. If omitted, the latest pending support intent for this block/wallet is used.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
withdraw_pool_supportRemove 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 positions remain visible through get_wallet_pooling_state and get_pooling_receipt. Public wallet action. No MCP auth required, but wallet-owner approval or an agent-owned funded wallet signer is required for Amoy transactions.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id for the active user BLOCK whose pool support should be withdrawn before lock.walletAddress(required) — string — Wallet address that owns the active pool support.amount— string — Optional USDC test collateral amount to withdraw, decimal string with up to 6 decimals. Omit to withdraw the maximum active support.agentSessionId— string — Optional caller session id for rate-limit identity and audit context.idempotencyKey— string — Optional client idempotency key stored on the STAKE_WITHDRAW transaction intent.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_wallet_pooling_stateRead 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 availability, and receipt/economics next actions. Public read. No auth required.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".walletAddress(required) — string — Wallet address whose PP0 pooling state should be inspected.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_pooling_receiptRead 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 evidence, and explicit mock/local/amoy truth labels. Public read. No auth required.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".positionId(required) — string — Pool position id returned by pool_block, or a related STAKE_ADD/STAKE_WITHDRAW tx_intent id.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_block_economicsRead 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/local/amoy truth labels without promising rewards. Public read. No auth required.
Parameters:
channelSlug(required) — string — Channel slug or alias, e.g. "main", "PP0", or "Main Stage".blockId(required) — string — Database block id to inspect.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_sim_signer_accessRead 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 addresses, private keys, mnemonics, or auth material. Public read. No auth required. Does not mutate state.
Parameters:
simActorAlias— string — Optional configured SIM actor alias to inspect. Prefer aliases over raw wallet material.assignedWallet— string — Optional assigned wallet address to resolve back to a redacted configured SIM actor. Full addresses are not returned.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_distribution_reportGet 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 when present. Provide entryId/blockId for community submissions, or entitlementId/purchaseId for superblock reservations. Read-only. No auth required.
Parameters:
blockId— string — Block ID from submit_media_block response.entryId— string — Channel entry ID from submit_media_block response.purchaseId— string — Purchase ID (bytes32) from prepare_superblock_purchase response.channelSlug— string — Channel slug for additional context.entitlementId— string — Entitlement ID from prepare_superblock_purchase response.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_channel_metricsGet 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 depth, median time to air, blocks aired, submissions, unique submitters (new vs returning), reward pool status, reliability data, and known measurement gaps. Read-only. No auth required.
Parameters:
channelSlug(required) — string — The channel slug (e.g., "pp1").
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_airtime_opportunityEvaluate 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 scoring reasons. Read-only. No auth required.
Parameters:
channelSlug(required) — string — The channel slug (e.g., "pp1").
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_platform_pulseGet a high-level summary of PoolParty platform activity. Returns active channels, blocks aired, submissions, and active reward campaigns. Read-only. No auth required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
browse_channelsBrowse 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 reasons. Use this to discover what channels exist and which accept submissions. Read-only. No auth required.
Parameters:
limit— number — Max results (1-50). Defaults to 20.offset— number — Pagination offset. Defaults to 0.hasRewards— boolean — Filter to channels with active reward pools.visibility— string — Filter by visibility. Defaults to showing public + unlisted.programType— string — Filter by public program mode ID (e.g., "broadcast_loop", "video_queue", "screening_session").includeInternal— boolean — Include internal/test channels. Defaults to false.acceptsSubmissions— boolean — Filter to channels that accept community submissions.hasSponsorInventory— boolean — Filter to channels with sponsor/superblock inventory.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_channel_streamCompact 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 actions, recommended drilldowns, and response truncation metadata. Prefer this before rich get_channel_feed. Read-only. No auth required.
Parameters:
channelSlug(required) — string — The channel slug or alias (e.g., "main", "PP0", or "Main Stage").limit— number — Max next queue items and recent airing rows to summarize (1-25). Defaults to 10.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_channel_feedGet 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 mintStatus and poolEligibility so agents can distinguish pre-mint, mint-pending, minted, pool-eligible, and ineligible blocks. get_channel_feed is a rich feed and may be large. Use it for diagnostic recent airing and queue evidence, mintStatus, poolEligibility, proof, and reward readbacks. For first-pass channel awareness, use get_channel_stream(channelSlug="main", limit=10) or the REST /api/channels/main/activity snapshot; use /api/channels/main/activity/stream when an SSE watch is intended. Read-only. No auth required.
Parameters:
channelSlug(required) — string — The channel slug (e.g., "pp1").limit— number — Max items per section (1-50). Defaults to 20.includePending— boolean — Include current queue entries. Defaults to true.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_open_submission_callsFind 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 submit content. Read-only. No auth required.
Parameters:
channelSlug— string — Filter to a specific channel. Omit to see all open calls.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_reward_opportunitiesFind 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 rewards. Read-only. No auth required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_sponsor_opportunitiesFind 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-airtime reservations when offerings are active. Read-only. No auth required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_programming_scope_profilesList 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.
Parameters:
channelSlug— string — Channel slug. Defaults to pp2.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_pilot_keyRequest 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-lived submit:block key scoped only to the requested enabled public channel; channel creation/configuration, purchase/economic tools, elevated limits, non-public channels, and PP2 publish/live scopes remain admin-reviewed. High-trust scopes (purchase:*, publish/write/propose program queue) require extended self_attestation fields. Use this when you need protected MCP automation beyond public read/discovery tools.
Parameters:
agentName(required) — string — Your agent/service name (2-100 chars).contact(required) — string — How the admin can reach you — email, Discord, URL (3-200 chars).requestedTrack(required) — string — Which pilot track you are requesting.intendedUse(required) — string — What you plan to do with PoolParty (10-1000 chars).notes— string — Additional context (max 1000 chars).humanName— string — Name of the human you are working with.organization— string — Organization or project name.websiteOrRepo— string — Website or repository URL.requestedScopes— array — Advisory: scopes you think you need. Admin decides final scopes.selfAttestation— object — Declared self-attestation questionnaire. REQUIRED for all requests (missing/invalid returns VALIDATION_ERROR listing the fields). High-trust scopes require the extended fields.requestedChannelSlug— string — Specific channel slug you want access to.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_key_request_statusCheck 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.
Parameters:
requestId(required) — string — The request ID returned by request_pilot_key.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_key_infoInspect 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 write scope.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
complete_sim_pool_backComplete one tightly gated local/dev PP0 economic pool/back proof with a configured SIM signer alias. Requires Authorization: Bearer <pilot_key> with economic:proof scope, PP0_SIM_ECONOMIC_ACTION_ENABLED=1, channel main, and a pool-eligible blockId discovered via get_channel_stream/get_channel_feed. Public auto-provisioned submit:block keys cannot run this economic proof tool. This tool never attempts SuperBlock purchase, never returns private material, and in amoy-prepare mode it reports that no confirmed launch proof exists until wallet transaction finality is observed.
Parameters:
channelSlug(required) — string — Channel slug or alias. Only PP0/Main Stage ("main") is supported.blockId(required) — string — Pool-eligible active user BLOCK id discovered from get_channel_feed poolEligibility.amount(required) — string — USDC test collateral amount, decimal string with up to 6 decimals.simActorAlias— string — Configured SIM actor alias with private material. Prefer this over assignedWallet.agentSessionId— string — Optional caller session id for audit context.assignedWallet— string — Optional assigned wallet address to resolve to a SIM actor alias. The response is redacted.idempotencyKey— string — Optional idempotency key for the pool intent.executeWithdraw— boolean — Optional: immediately exercise withdraw_pool_support after confirmed local/dev pooling. Defaults to false so one confirmed economic action is the proof gate.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_join_sessionCreate 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 required for reward eligibility and reward claims, not for submission.
Parameters:
channelSlug(required) — string — The channel slug to join (e.g., "pp1"). Must have participation enabled.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
attach_wallet_to_sessionAttach 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 returned by the same session flow. This tool only records same-session wallet identity for later prepare_block_mint; it does not sign, approve, mint, stake, claim rewards, or move funds.
Parameters:
channelSlug(required) — string — The channel slug for the session. Must be allowed by the API key. PP0/Main Stage aliases resolve to "main".walletAddress(required) — string — EVM wallet address to attach to this same submission session. Wallet transaction approval is still required later for mint/collateral/payment actions.sessionToken— string — Session token returned by create_join_session. Preferred for a fresh protected MCP submit path.agentSessionId— string — Optional same-session id returned by submit/session readbacks. Use only for the session that created the block.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_media_upload_urlRequest 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 explicit media-only fallback. Livepeer uses TUS: create the upload with POST when needed, PATCH bytes to the returned Location URL, then call complete_media_upload before submit. Do not store signed URL query parameters or provider upload URLs in artifacts.
Parameters:
channelSlug(required) — string — The channel slug to upload for. Must be allowed by the API key.sessionToken(required) — string — Session token from create_join_session. The session must already exist for this channel.contentType(required) — string — Video MIME type. Allowed: video/mp4, video/webm, video/quicktime, video/x-m4v.duration— number — Media duration in seconds, if known. Returned for handoff into submit_media_block.fileSize— number — File size in bytes. Max 100 MB.filename— string — Original filename. Used only to create a sanitized storage key.provider— string — Upload provider. Omit for the default Livepeer canonical ingest path; use s3_direct only as an explicit media-only fallback.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
complete_media_uploadComplete 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 media, and duration are ready. S3 direct returns only fallback_ready and should be treated as media-only fallback. Does not submit a block or mutate queue/runtime state.
Parameters:
channelSlug(required) — string — The channel slug for the upload. Must be allowed by the API key.sessionToken(required) — string — Session token from create_join_session. The session must already exist for this channel.duration— number — Positive media duration in seconds. Required for ready/fallback handoff.provider— string — Media provider to complete. Omit with providerAssetId to infer livepeer; use s3_direct only for explicit fallback readiness.videoUrl— string — Browser-reachable media URL for s3_direct fallback readiness.playbackId— string — Known playback ID if already available.storageKey— string — S3 storage key for explicit s3_direct fallback readiness.contentType— string — Media content type, if known.thumbnailUrl— string — Browser-reachable thumbnail/poster URL, if known.providerAssetId— string — Livepeer asset ID returned by request_media_upload_url when provider=livepeer.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
submit_media_blockSubmit 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 validated against scalar media fields before DB access. Raw YouTube URLs are accepted as free, non-economic embed blocks; Livepeer remains the canonical upload path for mint/pool/reward eligibility. Response includes media provider/readiness, mintStatus, poolEligibility, nextAction, Free Showcase receipt, and agentStatusReadback for get_distribution_report polling. Scalar-only submit remains supported but is labeled unverified fallback. Rate-limited per key. Pilot guidance: submit one high-quality block. Do not farm rewards. Wallet required for reward claims, not for submission.
Parameters:
channelSlug(required) — string — The channel slug to submit to. Must have participation enabled.sessionToken(required) — string — Session token from create_join_session.videoUrl(required) — string — HTTPS URL of the video to submit. Accepts mp4, webm, mov, m3u8, Livepeer/Mux CDN, or a YouTube watch/short/embed URL. YouTube submits as a free non-economic embed block.title— string — Title for the media block. Defaults to "Untitled".duration— number — Duration in seconds. Defaults to 15.playbackId— string — Livepeer/Mux playback ID if available.thumbnailUrl— string — Thumbnail image URL for the media block.idempotencyKey— string — Client-provided idempotency key. Same channel + media + session + key returns existing entry. Omit to auto-generate (non-idempotent).canonicalMediaHandoff— Optional canonical media handoff object returned by complete_media_upload. When present, it must match videoUrl, playbackId, thumbnailUrl, and duration before any DB access.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
prepare_superblock_purchasePrepare 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 flags on: also returns an HTTP 402 payment-required envelope for x402-compatible payment negotiation, paidAction intentId, settle endpoint, and receipt endpoint. Settlement requires a direct SuperblockPurchaseRouter.purchase(...) transaction followed by canonical PoolParty receipt verification. This tool does not sign or broadcast a transaction. Reservations expire in 15 minutes.
Parameters:
offeringId(required) — string — The superblock offering ID (UUID). Get this from get_superblock_offerings or the airtime manifest constraints.offeringId field.walletAddress(required) — string — The wallet address that will own the superblock entitlement and sign the purchase transaction.mode— string — How to use the superblock after purchase. INSERT_NOW, CREATE_BLOCK, or SAVE_FOR_LATER.idempotencyKey— string — Client-provided idempotency key. Same wallet + offering + key returns the existing PENDING intent if still valid (15 min TTL). Omit to auto-generate.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
quote_superblock_reservationQuote 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 quote only; use prepare_superblock_purchase to create the payment-required reservation.
Parameters:
offeringId(required) — string — The superblock offering ID (UUID). Get this from get_superblock_offerings or the airtime manifest constraints.offeringId field.walletAddress(required) — string — The wallet address that would own the SuperBlock entitlement and submit the direct router transaction.mode— string — How to use the superblock after purchase. INSERT_NOW, CREATE_BLOCK, or SAVE_FOR_LATER.idempotencyKey— string — Client-provided quote idempotency key. Same wallet + offering + key returns the existing active quote. Omit to auto-generate.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
quote_sponsor_reservationQuote 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 SponsorPaymentRouter.paySponsorBlock(...) settlement requirements. Pure quotes do not hold inventory; reserve=true creates a short-TTL payment-required sponsor reservation.
Parameters:
channelSlug(required) — string — The channel slug that contains the sponsor slot.slotId(required) — string — The SPONSOR_SLOT item id from the channel airtime manifest.walletAddress(required) — string — The wallet address that will pay for and be bound to the sponsor reservation.chainId— number — Sponsor payment chain id. Defaults to DEFAULT_SPONSOR_PAYMENT_CHAIN_ID or Base mainnet (8453).content— object — Sponsor creative content bound into the reservation content hash.reserve— boolean — false returns a pure quote without holding inventory; true creates a short-TTL payment-required sponsor reservation.idempotencyKey— string — Client-provided idempotency key. Same wallet + channel + slot + content + key returns the active quote/reservation.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
settle_paid_actionSettle 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.purchase(...); sponsor slots require SponsorPaymentRouter.paySponsorBlock(...). PoolParty verifies the tx hash, router event, wallet, chain, token, amount, product id/binding, and metadata/content binding before fulfillment. Facilitator token transfers and plain treasury transfers are rejected for production settlement.
Parameters:
intentId(required) — string — Paid action intent ID returned by prepare_superblock_purchase or quote_sponsor_reservation with reserve=true.txHash(required) — string — Direct PoolParty router transaction hash. Plain ERC-20 transfers are not valid production settlement.entitlementId— string — Optional SuperBlock entitlement ID expected to be bound to the paid action intent. Not used for sponsor slots.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_paid_action_receiptGet 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, entitlement or sponsor lifecycle, fulfillment state, and failure reason where available. Sponsor receipts omit private receipt fields such as receipt email and private memo.
Parameters:
intentId(required) — string — Paid action intent ID returned by quote_superblock_reservation, prepare_superblock_purchase, or quote_sponsor_reservation.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_channel_from_templateCreate 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 until admin promotes it. Use list_channel_templates and preview_channel_template first to choose a template. Rate-limited: 3 per hour per key.
Parameters:
templateId(required) — string — Template ID (e.g., "community_broadcast_loop", "event_lobby_screen"). Use list_channel_templates to see available templates.name(required) — string — Channel name (2+ characters).slug— string — Channel slug (3-50 chars, lowercase alphanumeric with hyphens). Auto-generated from name if omitted.tags— array — Channel tags for discovery.purpose— string — Plain-language purpose statement.description— string — Channel description. Defaults to template description.operatorDisplayName— string — Display name for the channel operator.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_channel_settingsUpdate 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 type changes, or economic configuration.
Parameters:
channelSlug(required) — string — The channel slug to update.name— string — New channel name (2-100 chars). Empty string = no change.tags— array — Channel tags (max 10 tags, each max 30 chars). Replaces existing tags.purpose— string — Plain-language purpose statement (max 300 chars). Empty string = no change.description— string — New description (max 500 chars). Empty string = no change.operatorDisplayName— string — Operator display name (max 50 chars). Empty string = no change.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
configure_open_callConfigure 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. Channel must have a community_slot in its program.
Parameters:
channelSlug(required) — string — The channel slug to configure.qrCtaLabel— string — QR card CTA button text (max 40 chars).qrHeadline— string — QR card invitation headline (max 100 chars).submissionTheme— string — Current theme or prompt (max 200 chars).acceptedMediaTypes— array — Accepted MIME types. Subset of: video/mp4, video/webm, video/quicktime, application/x-mpegURL.communitySlotTitle— string — Community slot display title (max 80 chars).submissionGuidance— string — Guidance text for submitters (max 500 chars).openSubmissionsEnabled— boolean — Enable/disable community submissions. Only works if channel already has a community_slot.communitySlotFallbackBody— string — Detail text when queue is empty (max 200 chars).maxRecommendedSubmissions— number — Recommended max submissions per agent (1-10).communitySlotFallbackTitle— string — Text shown when queue is empty (max 80 chars).maxSubmissionDurationSeconds— number — Max duration for submitted media (5-120 seconds).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_programming_candidatesInspect the PP2/Lazy River programming candidate inventory with source metadata, renderability, previews, and Program Queue links. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.limit— number — Maximum candidates to inspect. Defaults to 100, capped at 250.statuses— array — Optional candidate statuses to include, e.g. STAGED or ADMITTED.mediaTypes— array — Optional media types or candidate kinds to include, e.g. video, card, slide_block, social_video.renderableOnly— boolean — When true, omit candidates without a supported render adapter.sourceNetworks— array — Optional source networks to include, e.g. farcaster, nostr, youtube, slide_block.includeArchived— boolean — When true, include ARCHIVED candidates. Defaults to false.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
preview_programming_candidatePreview one PP2/Lazy River programming candidate before promoting it to the Program Queue. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.candidateId(required) — string — Candidate id from list_programming_candidates or source discovery.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
inspect_programming_discovery_inventoryRun 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 overlap with stored candidates/Program Queue. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.limit— number — Per-query result limit. Defaults to 25, capped at 25 to match the live adapter window.cursor— string — Optional upstream cursor returned by a previous inspection.queries— array — Search queries to sample. Defaults to poolparty; capped at 20 queries.hideTextOnly— boolean — Filter text-only results. Implied by mediaRequired/videoRequired.includeImages— boolean — Whether image-only results are allowed when media filters are active. Defaults true.mediaRequired— boolean — Require media-bearing social results.videoRequired— boolean — Require video-bearing social results. Use sparingly; PP2 should not be video-only by default.sourceNetworks— array — Networks to inspect: farcaster, nostr, youtube, internal, manual, slide_block. Farcaster/Nostr use live adapters when configured; others report stored inventory coverage.freshnessWindow— string — Optional source-published freshness window. Missing timestamps are excluded unless any.includeLinkPreviews— boolean — Whether link-preview/card results are allowed when media filters are active. Defaults true.excludeAlreadyStored— boolean — When true, omit items already stored in PP2 candidate inventory.excludeSmokeFixtures— boolean — When true, omit likely smoke/test fixtures.excludeAlreadyProgrammed— boolean — When true, omit items already linked to Program Queue history.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
admit_programming_candidatesAdmit 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.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.candidates(required) — array — Discovery candidates selected for inventory admission. Capped by service at 50.dryRun— boolean — When true, perform duplicate/overlap/rejection checks but do not write candidate inventory or audit rows.admissionNote— string — Operator/agent note recorded on admitted candidates and audit receipt.excludeSmokeFixtures— boolean — Defaults true. Reject likely smoke/test fixtures.excludeIfAlreadyStored— boolean — Defaults true. Existing candidates are never overwritten; duplicates return existing candidate ids.excludeIfAlreadyProgrammed— boolean — When true, skip candidates overlapping Program Queue history. Defaults false, but overlap is always reported.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_program_queueInspect the editable Program Queue for a channel. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_programming_bucketsInspect persistent PP2 programming buckets grouped from Program Queue bucket labels, including unbucketed items. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_live_queueInspect the current live queue projection for a channel. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
inspect_channel_programming_policyInspect source, approval, audit, and MCP-scope policy for channel programming. Requires read:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_program_itemPromote a source candidate into the editable Program Queue. Requires write:program_queue scope and records an audit event.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.candidateId(required) — string — Candidate id from source discovery/staging.note— string — Rationale or programming note.bucket— string — Editorial bucket/context label.reason— string — Audit reason.position— number — Desired queue position. Defaults to the tail.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
draft_program_queueSave 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=true. Requires write:program_queue scope. Does not publish or mutate the live queue.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.items(required) — array — Ordered candidate-backed items to save into the Program Queue draft.reason— string — Audit reason for creating/reordering this draft.replaceDraft— boolean — When true, remove stale draft/programmed Program Queue items not included in items. Never publishes or mutates Live Queue. Defaults to false to preserve existing tail items.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_programming_bucketSet 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.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.programItemId(required) — string — Program item id to bucket or unbucket.bucket— string — Editorial bucket label. Omit or pass an empty string to clear the bucket.reason— string — Audit reason for this bucket update.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
reorder_program_queueReorder one or more Program Queue items. Requires write:program_queue scope and records old/new order audit.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.orderedProgramItemIds(required) — array — Program item ids in desired order. Omitted existing ids remain after this ordered set.reason(required) — string — Audit reason for this reorder.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
simulate_program_queue_publishDry-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.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.mode— string — Publish mode to simulate. Defaults to replace_live_queue.reason— string — Optional reason that would be carried into the publish audit preview.programItemIds— array — Optional subset of program item ids to simulate. Defaults to all publishable items.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
publish_program_queuePublish Program Queue order to the live runtime queue. Requires publish:program_queue scope and records an audit event.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.reason(required) — string — Audit reason for this live-facing publish.mode— string — Publish mode. Defaults to replace_live_queue.programItemIds— array — Optional subset of program item ids to publish. Defaults to all publishable items.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
insert_live_nextInsert a Program Queue item at the front of the live queue. Requires write:live_queue scope and records an audit event.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.programItemId(required) — string — Program item id to insert next.reason(required) — string — Audit reason for this live-facing insertion.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
remove_live_queue_itemRemove an item from the live queue. Requires write:live_queue scope and records an audit event.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.liveQueueItemId(required) — string — Live queue item / channel entry id to remove.reason(required) — string — Audit reason for removal.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
skip_current_live_itemReport skip capability for the current live item. Requires skip:live_queue scope. This runtime does not yet expose a safe shared skip primitive.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.reason(required) — string — Audit reason for requested skip.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
propose_program_orderSuggest a Program Queue order without mutating anything. Requires propose:programming scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.rationale— string — Agent rationale for the proposed order.programItemIds— array — Optional proposed order. Defaults to source-score-informed order.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
accept_programming_proposalApply a prior non-mutating programming proposal by reordering the Program Queue. Requires write:program_queue scope.
Parameters:
channelSlug(required) — string — Channel slug, e.g. pp2.proposedOrderedItemIds(required) — array — Ordered ids from propose_program_order.reason(required) — string — Audit reason for accepting the proposal.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.