Server definition
- Hash
- sha256:e01dd6f25ec8eff5596099fa9e916e7d1e11ad4a71f057b22a92636a6e79610b
- What it is
- What a remote MCP server returned when asked what it offers: 71 tools
The blob, as servednamed by its sha256
{
"instructions": "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 with get_channel_stream(\"main\") or /api/channels/main/activity before rich reads; Drill down with get_channel_feed, get_block_economics, get_distribution_report, get_pooling_receipt, get_wallet_pooling_state, and get_block_mint_status only as needed; Act through no-key browser Free Entry or protected MCP submit/upload/mint/support flows; Verify with receipts, economics, wallet state, distribution report, and rich feed when evidence is needed. Start with resolve_channel: PP0, Main Stage, and main all resolve to canonical channelSlug \"main\"; PP1 resolves to \"pp1\". Read compact current state with get_channel_stream before using rich get_channel_feed diagnostics. Start with Free Entry when PP0 intake is open: submit one block through the public join flow; no pilot key is required, and the launch path uses wallet approval for Amoy minting before pool eligibility. If the human has project proof, commands, screenshots, claims, or rough demos but no finished video, use draft_slide_block_from_project, preview_slide_block, and revise_slide_block to create and iterate a Slide/Proof Block package for operator review only; each returns or preserves a shareable previewUrl for the human to inspect before operator review. These tools do not submit, bypass moderation, mint, collateralize, or guarantee airtime. For protected agent media submit, request_media_upload_url defaults to Livepeer; use TUS by creating the upload when required and PATCHing bytes to the returned Location URL, call complete_media_upload until it returns a ready Livepeer canonicalMediaHandoff, then call submit_media_block. Use provider=s3_direct only as an explicit media-only fallback; submit_media_block still returns mintStatus, poolEligibility, and nextAction so S3 fallback blocks are not economically silent. For PP0 canonical economic blocks, a submitted media block must be minted before pooling or rewards: check get_block_mint_status, call claim_test_pol if the wallet lacks Amoy gas, call attach_wallet_to_session with the same sessionToken or agentSessionId before prepare_block_mint when required, have the bound wallet or agent-owned funded wallet submit the returned Amoy transaction, then call finalize_block_mint and confirm poolEligibility. attach_wallet_to_session only binds identity to that same PoolParty session; it does not sign, approve, mint, stake, claim, or move funds. For PP0 collateralized blocks, call get_collateral_opportunity, inspect get_channel_stream first, then get_channel_feed only when poolEligibility/mintStatus evidence is needed, call get_sim_signer_access when the operator assigned a local/dev SIM signer, call claim_test_pol for testnet gas when needed, claim_test_collateral if needed, call pool_block only for an eligible active user BLOCK, submit the returned wallet transaction, then call finalize_pool_support with the tx hash before treating rank, score, wallet state, receipts, or withdrawal as canonical. Use complete_sim_pool_back only with economic:proof auth plus PP0_SIM_ECONOMIC_ACTION_ENABLED=1 in local/dev to prove one confirmed pool/back rank or score movement. Re-read queue/rank consequence, inspect get_wallet_pooling_state, use withdraw_pool_support before lock when removing active support, and use get_pooling_receipt or get_block_economics after airing/resolution to inspect what happened. Creator wallets use creator-collateral support, third-party wallets use pooled support, and each participant controls only their own support lane; creator withdrawal does not cancel or refund pooler support. claim_test_pol sends or records bounded Polygon Amoy test POL for gas; claim_test_collateral and mint preparation default to amoy-prepare so wallet transaction approval is explicit. An agent-owned funded wallet may sign directly, while delegated human budgets are not enabled. local-dev/mock modes are labeled test rehearsals. Complete any x402 boundary only where a tool advertises it; x402 payment is not NFT mint finality, pool eligibility, or collateral movement. Use get_key_info with a Bearer token before protected MCP-native submission to inspect scopes, allowed channels, expiry, and next actions. Use browse_channels or get_open_submission_calls to see what is available. Use get_channel_metrics for detailed pulse on a specific channel. Use get_reward_opportunities and get_sponsor_opportunities to find economic opportunities. Read poolparty://opportunities for a single aggregated overview. Use create_join_session + request_media_upload_url + complete_media_upload + submit_media_block only for protected MCP-native submit automation (requires API key with submit:block scope). Prepare configured airtime reservations via get_superblock_offerings + prepare_superblock_purchase (requires API key with purchase:prepare scope). Use get_distribution_report to track submission or purchase status. ADA-36 SuperBlock paid actions are enabled: use quote_superblock_reservation for x402-compatible payment negotiation, prepare_superblock_purchase for the HTTP 402 payment-required reservation, settle_paid_action after a direct router transaction, and get_paid_action_receipt for canonical PoolParty receipt verification. ADA-37 sponsor paid actions are enabled: use quote_sponsor_reservation for a pure quote or short-TTL payment-required sponsor reservation, then settle_paid_action after a direct SponsorPaymentRouter transaction and get_paid_action_receipt for canonical PoolParty receipt verification. PoolParty is in pilot — moderation applies, support receipts are derived from existing PoolParty rows, and airing, rewards, real-money value, or audience outcomes are never guaranteed.",
"tools": [
{
"description": "Apply a prior non-mutating programming proposal by reordering the Program Queue. Requires write:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"proposedOrderedItemIds": {
"description": "Ordered ids from propose_program_order.",
"items": {
"type": "string"
},
"type": "array"
},
"reason": {
"description": "Audit reason for accepting the proposal.",
"type": "string"
}
},
"required": [
"channelSlug",
"proposedOrderedItemIds",
"reason"
],
"type": "object"
},
"name": "accept_programming_proposal",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"admissionNote": {
"description": "Operator/agent note recorded on admitted candidates and audit receipt.",
"type": "string"
},
"candidates": {
"description": "Discovery candidates selected for inventory admission. Capped by service at 50.",
"items": {
"additionalProperties": false,
"properties": {
"authorLabel": {
"description": "Creator/author label when available.",
"type": "string"
},
"canonicalExternalId": {
"description": "Stable upstream id/hash/cast id. Used for idempotency.",
"type": "string"
},
"caption": {
"description": "Caption, text excerpt, or description.",
"type": "string"
},
"discoveredAt": {
"description": "Discovery timestamp if known.",
"type": "string"
},
"discoveryRunId": {
"type": "string"
},
"freshnessConfidence": {
"type": "string"
},
"freshnessReason": {
"type": "string"
},
"imageUrl": {
"description": "Image URL when discovery exposed one.",
"type": "string"
},
"mediaType": {
"description": "Media classification, e.g. video, image, card.",
"type": "string"
},
"mediaUrls": {
"description": "Renderable media URLs from discovery.",
"items": {
"type": "string"
},
"type": "array"
},
"originalPublishedAt": {
"description": "Upstream/source-published timestamp if known.",
"type": "string"
},
"posterUrl": {
"description": "Poster URL when discovery exposed or derived one.",
"type": "string"
},
"queryProvenance": {
"additionalProperties": {},
"description": "Query/cursor/rank provenance that led to discovery.",
"type": "object"
},
"reason": {
"description": "Why this item should enter the candidate shelf.",
"type": "string"
},
"renderability": {
"additionalProperties": false,
"description": "Preview/renderability signal from discovery or preview. Unsupported candidates are rejected.",
"properties": {
"render_kind": {
"enum": [
"youtube_embed",
"slide_block",
"social_card",
"social_video",
"unsupported"
],
"type": "string"
},
"status": {
"enum": [
"ready",
"partial",
"unsupported"
],
"type": "string"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"score": {
"type": "number"
},
"scoreReasons": {
"items": {
"type": "string"
},
"type": "array"
},
"sourceCoverageContext": {
"additionalProperties": {},
"type": "object"
},
"sourceNetwork": {
"description": "Source network, e.g. farcaster, nostr, youtube, internal, manual.",
"type": "string"
},
"sourceUrl": {
"description": "Canonical source URL/permalink when available.",
"type": "string"
},
"thesisTags": {
"items": {
"type": "string"
},
"type": "array"
},
"thumbnailUrl": {
"description": "Preview thumbnail URL when discovery exposed or derived one.",
"type": "string"
},
"title": {
"description": "Short title/headline when available.",
"type": "string"
},
"videoUrl": {
"description": "Playable social video URL when discovery exposed or derived one.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"dryRun": {
"description": "When true, perform duplicate/overlap/rejection checks but do not write candidate inventory or audit rows.",
"type": "boolean"
},
"excludeIfAlreadyProgrammed": {
"description": "When true, skip candidates overlapping Program Queue history. Defaults false, but overlap is always reported.",
"type": "boolean"
},
"excludeIfAlreadyStored": {
"description": "Defaults true. Existing candidates are never overwritten; duplicates return existing candidate ids.",
"type": "boolean"
},
"excludeSmokeFixtures": {
"description": "Defaults true. Reject likely smoke/test fixtures.",
"type": "boolean"
}
},
"required": [
"channelSlug",
"candidates"
],
"type": "object"
},
"name": "admit_programming_candidates",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "Optional same-session id returned by submit/session readbacks. Use only for the session that created the block.",
"type": "string"
},
"channelSlug": {
"description": "The channel slug for the session. Must be allowed by the API key. PP0/Main Stage aliases resolve to \"main\".",
"type": "string"
},
"sessionToken": {
"description": "Session token returned by create_join_session. Preferred for a fresh protected MCP submit path.",
"type": "string"
},
"walletAddress": {
"description": "EVM wallet address to attach to this same submission session. Wallet transaction approval is still required later for mint/collateral/payment actions.",
"type": "string"
}
},
"required": [
"channelSlug",
"walletAddress"
],
"type": "object"
},
"name": "attach_wallet_to_session",
"outputSchema": null
},
{
"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 reasons. Use this to discover what channels exist and which accept submissions. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"acceptsSubmissions": {
"description": "Filter to channels that accept community submissions.",
"type": "boolean"
},
"hasRewards": {
"description": "Filter to channels with active reward pools.",
"type": "boolean"
},
"hasSponsorInventory": {
"description": "Filter to channels with sponsor/superblock inventory.",
"type": "boolean"
},
"includeInternal": {
"description": "Include internal/test channels. Defaults to false.",
"type": "boolean"
},
"limit": {
"description": "Max results (1-50). Defaults to 20.",
"type": "number"
},
"offset": {
"description": "Pagination offset. Defaults to 0.",
"type": "number"
},
"programType": {
"description": "Filter by public program mode ID (e.g., \"broadcast_loop\", \"video_queue\", \"screening_session\").",
"type": "string"
},
"visibility": {
"description": "Filter by visibility. Defaults to showing public + unlisted.",
"enum": [
"public",
"unlisted",
"pilot",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "browse_channels",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"requestId": {
"description": "The request ID returned by request_pilot_key.",
"type": "string"
}
},
"required": [
"requestId"
],
"type": "object"
},
"name": "check_key_request_status",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "Optional caller session id for rate-limit identity and audit context.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"walletAddress": {
"description": "Wallet address that will receive or sign for test collateral.",
"type": "string"
}
},
"required": [
"channelSlug",
"walletAddress"
],
"type": "object"
},
"name": "claim_test_collateral",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "Optional caller session id for rate-limit identity and audit context.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"walletAddress": {
"description": "Wallet address that needs Polygon Amoy POL for gas.",
"type": "string"
}
},
"required": [
"channelSlug",
"walletAddress"
],
"type": "object"
},
"name": "claim_test_pol",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug for the upload. Must be allowed by the API key.",
"type": "string"
},
"contentType": {
"description": "Media content type, if known.",
"type": "string"
},
"duration": {
"description": "Positive media duration in seconds. Required for ready/fallback handoff.",
"type": "number"
},
"playbackId": {
"description": "Known playback ID if already available.",
"type": "string"
},
"provider": {
"description": "Media provider to complete. Omit with providerAssetId to infer livepeer; use s3_direct only for explicit fallback readiness.",
"enum": [
"s3_direct",
"livepeer"
],
"type": "string"
},
"providerAssetId": {
"description": "Livepeer asset ID returned by request_media_upload_url when provider=livepeer.",
"type": "string"
},
"sessionToken": {
"description": "Session token from create_join_session. The session must already exist for this channel.",
"type": "string"
},
"storageKey": {
"description": "S3 storage key for explicit s3_direct fallback readiness.",
"type": "string"
},
"thumbnailUrl": {
"description": "Browser-reachable thumbnail/poster URL, if known.",
"type": "string"
},
"videoUrl": {
"description": "Browser-reachable media URL for s3_direct fallback readiness.",
"type": "string"
}
},
"required": [
"channelSlug",
"sessionToken"
],
"type": "object"
},
"name": "complete_media_upload",
"outputSchema": null
},
{
"description": "Complete 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "Optional caller session id for audit context.",
"type": "string"
},
"amount": {
"description": "USDC test collateral amount, decimal string with up to 6 decimals.",
"type": "string"
},
"assignedWallet": {
"description": "Optional assigned wallet address to resolve to a SIM actor alias. The response is redacted.",
"type": "string"
},
"blockId": {
"description": "Pool-eligible active user BLOCK id discovered from get_channel_feed poolEligibility.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias. Only PP0/Main Stage (\"main\") is supported.",
"type": "string"
},
"executeWithdraw": {
"description": "Optional: immediately exercise withdraw_pool_support after confirmed local/dev pooling. Defaults to false so one confirmed economic action is the proof gate.",
"type": "boolean"
},
"idempotencyKey": {
"description": "Optional idempotency key for the pool intent.",
"type": "string"
},
"simActorAlias": {
"description": "Configured SIM actor alias with private material. Prefer this over assignedWallet.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId",
"amount"
],
"type": "object"
},
"name": "complete_sim_pool_back",
"outputSchema": null
},
{
"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. Channel must have a community_slot in its program.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"acceptedMediaTypes": {
"description": "Accepted MIME types. Subset of: video/mp4, video/webm, video/quicktime, application/x-mpegURL.",
"items": {
"type": "string"
},
"type": "array"
},
"channelSlug": {
"description": "The channel slug to configure.",
"type": "string"
},
"communitySlotFallbackBody": {
"description": "Detail text when queue is empty (max 200 chars).",
"type": "string"
},
"communitySlotFallbackTitle": {
"description": "Text shown when queue is empty (max 80 chars).",
"type": "string"
},
"communitySlotTitle": {
"description": "Community slot display title (max 80 chars).",
"type": "string"
},
"maxRecommendedSubmissions": {
"description": "Recommended max submissions per agent (1-10).",
"type": "number"
},
"maxSubmissionDurationSeconds": {
"description": "Max duration for submitted media (5-120 seconds).",
"type": "number"
},
"openSubmissionsEnabled": {
"description": "Enable/disable community submissions. Only works if channel already has a community_slot.",
"type": "boolean"
},
"qrCtaLabel": {
"description": "QR card CTA button text (max 40 chars).",
"type": "string"
},
"qrHeadline": {
"description": "QR card invitation headline (max 100 chars).",
"type": "string"
},
"submissionGuidance": {
"description": "Guidance text for submitters (max 500 chars).",
"type": "string"
},
"submissionTheme": {
"description": "Current theme or prompt (max 200 chars).",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "configure_open_call",
"outputSchema": null
},
{
"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 until admin promotes it. Use list_channel_templates and preview_channel_template first to choose a template. Rate-limited: 3 per hour per key.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"description": "Channel description. Defaults to template description.",
"type": "string"
},
"name": {
"description": "Channel name (2+ characters).",
"type": "string"
},
"operatorDisplayName": {
"description": "Display name for the channel operator.",
"type": "string"
},
"purpose": {
"description": "Plain-language purpose statement.",
"type": "string"
},
"slug": {
"description": "Channel slug (3-50 chars, lowercase alphanumeric with hyphens). Auto-generated from name if omitted.",
"type": "string"
},
"tags": {
"description": "Channel tags for discovery.",
"items": {
"type": "string"
},
"type": "array"
},
"templateId": {
"description": "Template ID (e.g., \"community_broadcast_loop\", \"event_lobby_screen\"). Use list_channel_templates to see available templates.",
"type": "string"
}
},
"required": [
"templateId",
"name"
],
"type": "object"
},
"name": "create_channel_from_template",
"outputSchema": null
},
{
"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 required for reward eligibility and reward claims, not for submission.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug to join (e.g., \"pp1\"). Must have participation enabled.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "create_join_session",
"outputSchema": null
},
{
"description": "Promote a source candidate into the editable Program Queue. Requires write:program_queue scope and records an audit event.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bucket": {
"description": "Editorial bucket/context label.",
"type": "string"
},
"candidateId": {
"description": "Candidate id from source discovery/staging.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"note": {
"description": "Rationale or programming note.",
"type": "string"
},
"position": {
"description": "Desired queue position. Defaults to the tail.",
"type": "number"
},
"reason": {
"description": "Audit reason.",
"type": "string"
}
},
"required": [
"channelSlug",
"candidateId"
],
"type": "object"
},
"name": "create_program_item",
"outputSchema": null
},
{
"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=true. Requires write:program_queue scope. Does not publish or mutate the live queue.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"items": {
"description": "Ordered candidate-backed items to save into the Program Queue draft.",
"items": {
"additionalProperties": false,
"properties": {
"bucket": {
"description": "Editorial bucket/context label for this program item.",
"type": "string"
},
"candidateId": {
"description": "Candidate id from list_programming_candidates or preview_programming_candidate.",
"type": "string"
},
"note": {
"description": "Agent rationale or programming note for this item.",
"type": "string"
}
},
"required": [
"candidateId"
],
"type": "object"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"reason": {
"description": "Audit reason for creating/reordering this draft.",
"type": "string"
},
"replaceDraft": {
"description": "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.",
"type": "boolean"
}
},
"required": [
"channelSlug",
"items"
],
"type": "object"
},
"name": "draft_program_queue",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"backgroundAssetId": {
"description": "Preferred PoolParty stock background asset id.",
"type": "string"
},
"channelSettings": {
"additionalProperties": false,
"description": "Optional channel SlideBlock constraints used for draft validation.",
"properties": {
"allowCodeSnippets": {
"type": "boolean"
},
"allowedBackgroundTypes": {
"items": {
"enum": [
"stock_video",
"stock_image",
"uploaded_image",
"uploaded_video",
"solid"
],
"type": "string"
},
"type": "array"
},
"enabled": {
"type": "boolean"
},
"maxDurationSeconds": {
"type": "number"
},
"maxSlides": {
"type": "number"
},
"minSlideDurationSeconds": {
"type": "number"
},
"requireClaimCaveats": {
"type": "boolean"
},
"requireRightsConfirmation": {
"type": "boolean"
}
},
"type": "object"
},
"claimCaveat": {
"description": "Caveat language for claims that are not independently verified.",
"type": "string"
},
"claims": {
"description": "Submitter-provided claims that should be caveated until verified.",
"items": {
"type": "string"
},
"type": "array"
},
"commands": {
"description": "Raw commands or API snippets to convert into legible proof slides.",
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"description": "Short description for operator review.",
"type": "string"
},
"durationSeconds": {
"description": "Requested total duration. Clamped by channel settings.",
"type": "number"
},
"proofSummary": {
"description": "One or two sentence proof summary.",
"type": "string"
},
"rightsConfirmation": {
"description": "Whether the submitter confirms they can provide/use the assets and proof material.",
"type": "boolean"
},
"sourceProjectUrl": {
"description": "Project, demo, repo, or proof URL. Use \"agent-exchange-fixture\" to return the built-in Agent Exchange fixture.",
"type": "string"
},
"submitterContact": {
"description": "Submitter contact, if known.",
"type": "string"
},
"submitterName": {
"description": "Submitter name, if known.",
"type": "string"
},
"targetAudience": {
"description": "Audience or channel fit, e.g. \"agent builders\".",
"type": "string"
},
"title": {
"description": "Project or proof title.",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "draft_slide_block_from_project",
"outputSchema": null
},
{
"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, and block_ledger rows, then reports pool eligibility. Public wallet action. No MCP auth required. x402 payment is not mint finality.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"blockId": {
"description": "Database block id that was prepared for canonical minting.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"txHash": {
"description": "Polygon Amoy transaction hash returned by the wallet after submitting the mint transaction.",
"type": "string"
},
"txIntentId": {
"description": "Optional txIntentId returned by prepare_block_mint. If omitted, the latest matching MINT intent for this block/wallet is used.",
"type": "string"
},
"walletAddress": {
"description": "Wallet address that signed the mint transaction. Must match the prepared intent and BlockMinted creator.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId",
"walletAddress",
"txHash"
],
"type": "object"
},
"name": "finalize_block_mint",
"outputSchema": null
},
{
"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 rank/score source fields, and returns withdrawal/readback next actions. Public wallet action. No MCP auth required. x402 payment is not pool support finality.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"blockId": {
"description": "Database block id for the active user BLOCK whose pool support was prepared.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"txHash": {
"description": "Polygon Amoy transaction hash returned by the wallet after submitting the pool support transaction.",
"type": "string"
},
"txIntentId": {
"description": "Optional txIntentId or positionId returned by pool_block. If omitted, the latest pending support intent for this block/wallet is used.",
"type": "string"
},
"walletAddress": {
"description": "Wallet address that signed the pool support transaction. Must match the prepared intent and receipt event.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId",
"walletAddress",
"txHash"
],
"type": "object"
},
"name": "finalize_pool_support",
"outputSchema": null
},
{
"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 scoring reasons. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug (e.g., \"pp1\").",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "get_airtime_opportunity",
"outputSchema": null
},
{
"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/local/amoy truth labels without promising rewards. Public read. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"blockId": {
"description": "Database block id to inspect.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId"
],
"type": "object"
},
"name": "get_block_economics",
"outputSchema": null
},
{
"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 finalize_block_mint. Public read. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"blockId": {
"description": "Database block id to inspect.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"walletAddress": {
"description": "Optional wallet address used to filter matching MINT intents.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId"
],
"type": "object"
},
"name": "get_block_mint_status",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"blockType": {
"description": "Block type ID (e.g., \"community_slot\", \"sponsor_slot\", \"media\", \"notice\").",
"type": "string"
}
},
"required": [
"blockType"
],
"type": "object"
},
"name": "get_block_type_schema",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug (e.g., \"pp1\").",
"type": "string"
},
"includePending": {
"description": "Include current queue entries. Defaults to true.",
"type": "boolean"
},
"limit": {
"description": "Max items per section (1-50). Defaults to 20.",
"type": "number"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "get_channel_feed",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug (e.g., \"pp1\").",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "get_channel_metrics",
"outputSchema": null
},
{
"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 actions, recommended drilldowns, and response truncation metadata. Prefer this before rich get_channel_feed. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug or alias (e.g., \"main\", \"PP0\", or \"Main Stage\").",
"type": "string"
},
"limit": {
"description": "Max next queue items and recent airing rows to summarize (1-25). Defaults to 10.",
"type": "number"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "get_channel_stream",
"outputSchema": null
},
{
"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, reward summary, and next actions. Public read. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "get_collateral_opportunity",
"outputSchema": null
},
{
"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 when present. Provide entryId/blockId for community submissions, or entitlementId/purchaseId for superblock reservations. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"blockId": {
"description": "Block ID from submit_media_block response.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug for additional context.",
"type": "string"
},
"entitlementId": {
"description": "Entitlement ID from prepare_superblock_purchase response.",
"type": "string"
},
"entryId": {
"description": "Channel entry ID from submit_media_block response.",
"type": "string"
},
"purchaseId": {
"description": "Purchase ID (bytes32) from prepare_superblock_purchase response.",
"type": "string"
}
},
"type": "object"
},
"name": "get_distribution_report",
"outputSchema": null
},
{
"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 write scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_key_info",
"outputSchema": null
},
{
"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 submit content. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Filter to a specific channel. Omit to see all open calls.",
"type": "string"
}
},
"type": "object"
},
"name": "get_open_submission_calls",
"outputSchema": null
},
{
"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, entitlement or sponsor lifecycle, fulfillment state, and failure reason where available. Sponsor receipts omit private receipt fields such as receipt email and private memo.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"intentId": {
"description": "Paid action intent ID returned by quote_superblock_reservation, prepare_superblock_purchase, or quote_sponsor_reservation.",
"type": "string"
}
},
"required": [
"intentId"
],
"type": "object"
},
"name": "get_paid_action_receipt",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_platform_pulse",
"outputSchema": null
},
{
"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 evidence, and explicit mock/local/amoy truth labels. Public read. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"positionId": {
"description": "Pool position id returned by pool_block, or a related STAKE_ADD/STAKE_WITHDRAW tx_intent id.",
"type": "string"
}
},
"required": [
"channelSlug",
"positionId"
],
"type": "object"
},
"name": "get_pooling_receipt",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"modeId": {
"description": "Program mode ID (e.g., \"broadcast_loop\", \"video_queue\", \"screening_session\").",
"type": "string"
}
},
"required": [
"modeId"
],
"type": "object"
},
"name": "get_program_mode_manifest",
"outputSchema": null
},
{
"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 rewards. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_reward_opportunities",
"outputSchema": null
},
{
"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 addresses, private keys, mnemonics, or auth material. Public read. No auth required. Does not mutate state.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"assignedWallet": {
"description": "Optional assigned wallet address to resolve back to a redacted configured SIM actor. Full addresses are not returned.",
"type": "string"
},
"simActorAlias": {
"description": "Optional configured SIM actor alias to inspect. Prefer aliases over raw wallet material.",
"type": "string"
}
},
"type": "object"
},
"name": "get_sim_signer_access",
"outputSchema": null
},
{
"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-airtime reservations when offerings are active. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_sponsor_opportunities",
"outputSchema": null
},
{
"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 size or reward outcome. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_superblock_offerings",
"outputSchema": null
},
{
"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 availability, and receipt/economics next actions. Public read. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"walletAddress": {
"description": "Wallet address whose PP0 pooling state should be inspected.",
"type": "string"
}
},
"required": [
"channelSlug",
"walletAddress"
],
"type": "object"
},
"name": "get_wallet_pooling_state",
"outputSchema": null
},
{
"description": "Insert a Program Queue item at the front of the live queue. Requires write:live_queue scope and records an audit event.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"programItemId": {
"description": "Program item id to insert next.",
"type": "string"
},
"reason": {
"description": "Audit reason for this live-facing insertion.",
"type": "string"
}
},
"required": [
"channelSlug",
"programItemId",
"reason"
],
"type": "object"
},
"name": "insert_live_next",
"outputSchema": null
},
{
"description": "Inspect source, approval, audit, and MCP-scope policy for channel programming. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "inspect_channel_programming_policy",
"outputSchema": null
},
{
"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 overlap with stored candidates/Program Queue. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"cursor": {
"description": "Optional upstream cursor returned by a previous inspection.",
"type": "string"
},
"excludeAlreadyProgrammed": {
"description": "When true, omit items already linked to Program Queue history.",
"type": "boolean"
},
"excludeAlreadyStored": {
"description": "When true, omit items already stored in PP2 candidate inventory.",
"type": "boolean"
},
"excludeSmokeFixtures": {
"description": "When true, omit likely smoke/test fixtures.",
"type": "boolean"
},
"freshnessWindow": {
"description": "Optional source-published freshness window. Missing timestamps are excluded unless any.",
"enum": [
"24h",
"72h",
"7d",
"14d",
"30d",
"180d",
"any"
],
"type": "string"
},
"hideTextOnly": {
"description": "Filter text-only results. Implied by mediaRequired/videoRequired.",
"type": "boolean"
},
"includeImages": {
"description": "Whether image-only results are allowed when media filters are active. Defaults true.",
"type": "boolean"
},
"includeLinkPreviews": {
"description": "Whether link-preview/card results are allowed when media filters are active. Defaults true.",
"type": "boolean"
},
"limit": {
"description": "Per-query result limit. Defaults to 25, capped at 25 to match the live adapter window.",
"type": "number"
},
"mediaRequired": {
"description": "Require media-bearing social results.",
"type": "boolean"
},
"queries": {
"description": "Search queries to sample. Defaults to poolparty; capped at 20 queries.",
"items": {
"type": "string"
},
"type": "array"
},
"sourceNetworks": {
"description": "Networks to inspect: farcaster, nostr, youtube, internal, manual, slide_block. Farcaster/Nostr use live adapters when configured; others report stored inventory coverage.",
"items": {
"type": "string"
},
"type": "array"
},
"videoRequired": {
"description": "Require video-bearing social results. Use sparingly; PP2 should not be video-only by default.",
"type": "boolean"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "inspect_programming_discovery_inventory",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"includePlanned": {
"description": "Include planned block types. Defaults to false.",
"type": "boolean"
},
"modeId": {
"description": "Filter to block types supported by this program mode.",
"type": "string"
}
},
"type": "object"
},
"name": "list_block_types",
"outputSchema": null
},
{
"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 auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"includePlanned": {
"description": "Include planned templates. Defaults to false.",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_channel_templates",
"outputSchema": null
},
{
"description": "Inspect the current live queue projection for a channel. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "list_live_queue",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"includePlanned": {
"description": "Include planned/preview modes. Defaults to false.",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_program_modes",
"outputSchema": null
},
{
"description": "Inspect the editable Program Queue for a channel. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "list_program_queue",
"outputSchema": null
},
{
"description": "Inspect persistent PP2 programming buckets grouped from Program Queue bucket labels, including unbucketed items. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "list_programming_buckets",
"outputSchema": null
},
{
"description": "Inspect the PP2/Lazy River programming candidate inventory with source metadata, renderability, previews, and Program Queue links. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"includeArchived": {
"description": "When true, include ARCHIVED candidates. Defaults to false.",
"type": "boolean"
},
"limit": {
"description": "Maximum candidates to inspect. Defaults to 100, capped at 250.",
"type": "number"
},
"mediaTypes": {
"description": "Optional media types or candidate kinds to include, e.g. video, card, slide_block, social_video.",
"items": {
"type": "string"
},
"type": "array"
},
"renderableOnly": {
"description": "When true, omit candidates without a supported render adapter.",
"type": "boolean"
},
"sourceNetworks": {
"description": "Optional source networks to include, e.g. farcaster, nostr, youtube, slide_block.",
"items": {
"type": "string"
},
"type": "array"
},
"statuses": {
"description": "Optional candidate statuses to include, e.g. STAGED or ADMITTED.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "list_programming_candidates",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug. Defaults to pp2.",
"type": "string"
}
},
"type": "object"
},
"name": "list_programming_scope_profiles",
"outputSchema": null
},
{
"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, 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "Optional caller session id for rate-limit identity and audit context.",
"type": "string"
},
"amount": {
"description": "USDC test collateral amount, decimal string with up to 6 decimals.",
"type": "string"
},
"blockId": {
"description": "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.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"idempotencyKey": {
"description": "Optional client idempotency key stored on the STAKE_ADD transaction intent.",
"type": "string"
},
"walletAddress": {
"description": "Wallet address that is pooling test collateral.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId",
"walletAddress",
"amount"
],
"type": "object"
},
"name": "pool_block",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "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.",
"type": "string"
},
"blockId": {
"description": "Database block id returned by submit_media_block or the user submit flow. The block must be playable and active in PP0.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"collateralAmount": {
"description": "USDC creator collateral amount, decimal string with up to 6 decimals. Defaults to staged collateral intent or PP0 minimum.",
"type": "string"
},
"idempotencyKey": {
"description": "Optional client idempotency key stored on the MINT transaction intent.",
"type": "string"
},
"walletAddress": {
"description": "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.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId",
"walletAddress"
],
"type": "object"
},
"name": "prepare_block_mint",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"idempotencyKey": {
"description": "Client-provided idempotency key. Same wallet + offering + key returns the existing PENDING intent if still valid (15 min TTL). Omit to auto-generate.",
"type": "string"
},
"mode": {
"default": "SAVE_FOR_LATER",
"description": "How to use the superblock after purchase. INSERT_NOW, CREATE_BLOCK, or SAVE_FOR_LATER.",
"type": "string"
},
"offeringId": {
"description": "The superblock offering ID (UUID). Get this from get_superblock_offerings or the airtime manifest constraints.offeringId field.",
"type": "string"
},
"walletAddress": {
"description": "The wallet address that will own the superblock entitlement and sign the purchase transaction.",
"type": "string"
}
},
"required": [
"offeringId",
"walletAddress"
],
"type": "object"
},
"name": "prepare_superblock_purchase",
"outputSchema": null
},
{
"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. Read-only. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"templateId": {
"description": "Template ID (e.g., \"community_broadcast_loop\", \"event_lobby_screen\", \"operator_loop\").",
"type": "string"
}
},
"required": [
"templateId"
],
"type": "object"
},
"name": "preview_channel_template",
"outputSchema": null
},
{
"description": "Preview one PP2/Lazy River programming candidate before promoting it to the Program Queue. Requires read:program_queue scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"candidateId": {
"description": "Candidate id from list_programming_candidates or source discovery.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
}
},
"required": [
"channelSlug",
"candidateId"
],
"type": "object"
},
"name": "preview_programming_candidate",
"outputSchema": null
},
{
"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 future airing, and this does not submit, bypass moderation, mint, collateralize, or insert ProgramBlocks into the show. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSettings": {
"additionalProperties": false,
"description": "Optional channel SlideBlock constraints used for preview validation.",
"properties": {
"allowCodeSnippets": {
"type": "boolean"
},
"allowedBackgroundTypes": {
"items": {
"enum": [
"stock_video",
"stock_image",
"uploaded_image",
"uploaded_video",
"solid"
],
"type": "string"
},
"type": "array"
},
"enabled": {
"type": "boolean"
},
"maxDurationSeconds": {
"type": "number"
},
"maxSlides": {
"type": "number"
},
"minSlideDurationSeconds": {
"type": "number"
},
"requireClaimCaveats": {
"type": "boolean"
},
"requireRightsConfirmation": {
"type": "boolean"
}
},
"type": "object"
},
"package": {
"additionalProperties": false,
"properties": {
"background": {
"additionalProperties": false,
"properties": {
"assetId": {
"type": "string"
},
"color": {
"type": "string"
},
"type": {
"enum": [
"stock_video",
"stock_image",
"uploaded_image",
"uploaded_video",
"solid"
],
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"claimCaveat": {
"type": "string"
},
"description": {
"type": "string"
},
"durationSeconds": {
"type": "number"
},
"lifecycle": {
"additionalProperties": false,
"properties": {
"canonicalIdentityDecision": {
"const": "canonical_json_artifact_recommended_v0",
"type": "string"
},
"directSubmitSupported": {
"const": false,
"type": "boolean"
},
"economicsStatus": {
"const": "not_economically_live_until_canonical_identity",
"type": "string"
},
"moderationRequired": {
"const": true,
"type": "boolean"
},
"queueParityTarget": {
"type": "boolean"
},
"submissionMode": {
"const": "draft_only_operator_review_v0",
"type": "string"
}
},
"required": [
"submissionMode",
"moderationRequired",
"queueParityTarget",
"directSubmitSupported",
"economicsStatus",
"canonicalIdentityDecision"
],
"type": "object"
},
"rightsConfirmation": {
"type": "boolean"
},
"slides": {
"items": {
"additionalProperties": false,
"properties": {
"body": {
"type": "string"
},
"code": {
"type": "string"
},
"durationSeconds": {
"type": "number"
},
"headline": {
"type": "string"
},
"motion": {
"enum": [
"fade",
"slow_push",
"slide_left",
"code_reveal",
"none"
],
"type": "string"
}
},
"required": [
"durationSeconds",
"headline"
],
"type": "object"
},
"type": "array"
},
"sourceProjectUrl": {
"type": "string"
},
"submitter": {
"additionalProperties": false,
"properties": {
"contact": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"title": {
"type": "string"
},
"type": {
"const": "slide_sequence",
"type": "string"
}
},
"required": [
"type",
"title",
"description",
"rightsConfirmation",
"claimCaveat",
"durationSeconds",
"background",
"slides",
"lifecycle"
],
"type": "object"
}
},
"required": [
"package"
],
"type": "object"
},
"name": "preview_slide_block",
"outputSchema": null
},
{
"description": "Suggest a Program Queue order without mutating anything. Requires propose:programming scope.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"programItemIds": {
"description": "Optional proposed order. Defaults to source-score-informed order.",
"items": {
"type": "string"
},
"type": "array"
},
"rationale": {
"description": "Agent rationale for the proposed order.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "propose_program_order",
"outputSchema": null
},
{
"description": "Publish Program Queue order to the live runtime queue. Requires publish:program_queue scope and records an audit event.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"mode": {
"description": "Publish mode. Defaults to replace_live_queue.",
"enum": [
"replace_live_queue",
"append",
"insert_after_current"
],
"type": "string"
},
"programItemIds": {
"description": "Optional subset of program item ids to publish. Defaults to all publishable items.",
"items": {
"type": "string"
},
"type": "array"
},
"reason": {
"description": "Audit reason for this live-facing publish.",
"type": "string"
}
},
"required": [
"channelSlug",
"reason"
],
"type": "object"
},
"name": "publish_program_queue",
"outputSchema": null
},
{
"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 SponsorPaymentRouter.paySponsorBlock(...) settlement requirements. Pure quotes do not hold inventory; reserve=true creates a short-TTL payment-required sponsor reservation.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chainId": {
"description": "Sponsor payment chain id. Defaults to DEFAULT_SPONSOR_PAYMENT_CHAIN_ID or Base mainnet (8453).",
"type": "number"
},
"channelSlug": {
"description": "The channel slug that contains the sponsor slot.",
"type": "string"
},
"content": {
"additionalProperties": false,
"description": "Sponsor creative content bound into the reservation content hash.",
"properties": {
"body": {
"description": "Sponsor card body copy.",
"type": "string"
},
"ctaLabel": {
"description": "Optional CTA label.",
"type": "string"
},
"ctaUrl": {
"description": "Optional CTA URL.",
"type": "string"
},
"economicCaption": {
"description": "Optional economic disclosure caption.",
"type": "string"
},
"headline": {
"description": "Sponsor card headline.",
"type": "string"
},
"logoUrl": {
"description": "Optional logo URL.",
"type": "string"
},
"mediaUrl": {
"description": "Optional sponsor media URL.",
"type": "string"
},
"qrDestination": {
"description": "Optional QR destination.",
"type": "string"
},
"sponsorName": {
"description": "Sponsor display name. Required when reserve=true.",
"type": "string"
}
},
"type": "object"
},
"idempotencyKey": {
"description": "Client-provided idempotency key. Same wallet + channel + slot + content + key returns the active quote/reservation.",
"type": "string"
},
"reserve": {
"default": false,
"description": "false returns a pure quote without holding inventory; true creates a short-TTL payment-required sponsor reservation.",
"type": "boolean"
},
"slotId": {
"description": "The SPONSOR_SLOT item id from the channel airtime manifest.",
"type": "string"
},
"walletAddress": {
"description": "The wallet address that will pay for and be bound to the sponsor reservation.",
"type": "string"
}
},
"required": [
"channelSlug",
"slotId",
"walletAddress"
],
"type": "object"
},
"name": "quote_sponsor_reservation",
"outputSchema": null
},
{
"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 quote only; use prepare_superblock_purchase to create the payment-required reservation.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"idempotencyKey": {
"description": "Client-provided quote idempotency key. Same wallet + offering + key returns the existing active quote. Omit to auto-generate.",
"type": "string"
},
"mode": {
"default": "SAVE_FOR_LATER",
"description": "How to use the superblock after purchase. INSERT_NOW, CREATE_BLOCK, or SAVE_FOR_LATER.",
"type": "string"
},
"offeringId": {
"description": "The superblock offering ID (UUID). Get this from get_superblock_offerings or the airtime manifest constraints.offeringId field.",
"type": "string"
},
"walletAddress": {
"description": "The wallet address that would own the SuperBlock entitlement and submit the direct router transaction.",
"type": "string"
}
},
"required": [
"offeringId",
"walletAddress"
],
"type": "object"
},
"name": "quote_superblock_reservation",
"outputSchema": null
},
{
"description": "Remove an item from the live queue. Requires write:live_queue scope and records an audit event.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"liveQueueItemId": {
"description": "Live queue item / channel entry id to remove.",
"type": "string"
},
"reason": {
"description": "Audit reason for removal.",
"type": "string"
}
},
"required": [
"channelSlug",
"liveQueueItemId",
"reason"
],
"type": "object"
},
"name": "remove_live_queue_item",
"outputSchema": null
},
{
"description": "Reorder one or more Program Queue items. Requires write:program_queue scope and records old/new order audit.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"orderedProgramItemIds": {
"description": "Program item ids in desired order. Omitted existing ids remain after this ordered set.",
"items": {
"type": "string"
},
"type": "array"
},
"reason": {
"description": "Audit reason for this reorder.",
"type": "string"
}
},
"required": [
"channelSlug",
"orderedProgramItemIds",
"reason"
],
"type": "object"
},
"name": "reorder_program_queue",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug to upload for. Must be allowed by the API key.",
"type": "string"
},
"contentType": {
"description": "Video MIME type. Allowed: video/mp4, video/webm, video/quicktime, video/x-m4v.",
"type": "string"
},
"duration": {
"description": "Media duration in seconds, if known. Returned for handoff into submit_media_block.",
"type": "number"
},
"fileSize": {
"description": "File size in bytes. Max 100 MB.",
"type": "number"
},
"filename": {
"description": "Original filename. Used only to create a sanitized storage key.",
"type": "string"
},
"provider": {
"description": "Upload provider. Omit for the default Livepeer canonical ingest path; use s3_direct only as an explicit media-only fallback.",
"enum": [
"livepeer",
"s3_direct"
],
"type": "string"
},
"sessionToken": {
"description": "Session token from create_join_session. The session must already exist for this channel.",
"type": "string"
}
},
"required": [
"channelSlug",
"sessionToken",
"contentType"
],
"type": "object"
},
"name": "request_media_upload_url",
"outputSchema": null
},
{
"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-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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentName": {
"description": "Your agent/service name (2-100 chars).",
"type": "string"
},
"contact": {
"description": "How the admin can reach you — email, Discord, URL (3-200 chars).",
"type": "string"
},
"humanName": {
"description": "Name of the human you are working with.",
"type": "string"
},
"intendedUse": {
"description": "What you plan to do with PoolParty (10-1000 chars).",
"type": "string"
},
"notes": {
"description": "Additional context (max 1000 chars).",
"type": "string"
},
"organization": {
"description": "Organization or project name.",
"type": "string"
},
"requestedChannelSlug": {
"description": "Specific channel slug you want access to.",
"type": "string"
},
"requestedScopes": {
"description": "Advisory: scopes you think you need. Admin decides final scopes.",
"items": {
"type": "string"
},
"type": "array"
},
"requestedTrack": {
"description": "Which pilot track you are requesting.",
"enum": [
"discovery_submission",
"economic_proof",
"channel_creation",
"superblock_purchase_intent",
"pp2_programming",
"other"
],
"type": "string"
},
"selfAttestation": {
"additionalProperties": false,
"description": "Declared self-attestation questionnaire. REQUIRED for all requests (missing/invalid returns VALIDATION_ERROR listing the fields). High-trust scopes require the extended fields.",
"properties": {
"contact": {
"description": "Reachable contact for the responsible party (3-200 chars).",
"type": "string"
},
"discovery_detail": {
"description": "Detail on how you discovered PoolParty (3-500 chars).",
"type": "string"
},
"discovery_source": {
"description": "How you found PoolParty: one of search_engine, ai_assistant, agent_directory, mcp_registry, social_media, referral, documentation, existing_integration, hackathon_or_event, other.",
"type": "string"
},
"intended_action": {
"description": "What you intend to do with the key (10-500 chars).",
"type": "string"
},
"operator_contact": {
"description": "High-trust: human operator contact.",
"type": "string"
},
"organization": {
"description": "High-trust: organization name.",
"type": "string"
},
"project_url": {
"description": "High-trust: project URL (project_url or repo_url required).",
"type": "string"
},
"reason_for_high_trust_scope": {
"description": "High-trust: why you need purchase/publish/write/propose scopes (min 10 chars).",
"type": "string"
},
"repo_url": {
"description": "High-trust: repository URL (project_url or repo_url required).",
"type": "string"
},
"requested_channel": {
"description": "Channel you are requesting access to (1-64 chars).",
"type": "string"
},
"responsible_party": {
"description": "Person or team accountable for this agent (2-120 chars).",
"type": "string"
}
},
"required": [
"responsible_party",
"contact",
"discovery_source",
"discovery_detail",
"intended_action",
"requested_channel"
],
"type": "object"
},
"websiteOrRepo": {
"description": "Website or repository URL.",
"type": "string"
}
},
"required": [
"agentName",
"contact",
"requestedTrack",
"intendedUse"
],
"type": "object"
},
"name": "request_pilot_key",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channel": {
"description": "Channel name, slug, or alias, e.g. \"PP0\", \"Main Stage\", \"main\", or \"PP1\".",
"type": "string"
}
},
"required": [
"channel"
],
"type": "object"
},
"name": "resolve_channel",
"outputSchema": null
},
{
"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 required before any future airing, and this does not submit, bypass moderation, mint, collateralize, or insert ProgramBlocks into the show. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"backgroundAssetId": {
"description": "Optional revised PoolParty stock background asset id.",
"type": "string"
},
"channelSettings": {
"additionalProperties": false,
"description": "Optional channel SlideBlock constraints used for revision validation.",
"properties": {
"allowCodeSnippets": {
"type": "boolean"
},
"allowedBackgroundTypes": {
"items": {
"enum": [
"stock_video",
"stock_image",
"uploaded_image",
"uploaded_video",
"solid"
],
"type": "string"
},
"type": "array"
},
"enabled": {
"type": "boolean"
},
"maxDurationSeconds": {
"type": "number"
},
"maxSlides": {
"type": "number"
},
"minSlideDurationSeconds": {
"type": "number"
},
"requireClaimCaveats": {
"type": "boolean"
},
"requireRightsConfirmation": {
"type": "boolean"
}
},
"type": "object"
},
"description": {
"description": "Optional revised short description.",
"type": "string"
},
"durationSeconds": {
"description": "Optional revised total duration. Clamped by channel settings.",
"type": "number"
},
"package": {
"additionalProperties": false,
"properties": {
"background": {
"additionalProperties": false,
"properties": {
"assetId": {
"type": "string"
},
"color": {
"type": "string"
},
"type": {
"enum": [
"stock_video",
"stock_image",
"uploaded_image",
"uploaded_video",
"solid"
],
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"claimCaveat": {
"type": "string"
},
"description": {
"type": "string"
},
"draftMetadata": {
"additionalProperties": false,
"properties": {
"parentPreviewId": {
"type": "string"
},
"requestedChanges": {
"items": {
"type": "string"
},
"type": "array"
},
"schema": {
"const": "poolparty.slide_block.draft.v0",
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"schema",
"version"
],
"type": "object"
},
"durationSeconds": {
"type": "number"
},
"lifecycle": {
"additionalProperties": false,
"properties": {
"canonicalIdentityDecision": {
"const": "canonical_json_artifact_recommended_v0",
"type": "string"
},
"directSubmitSupported": {
"const": false,
"type": "boolean"
},
"economicsStatus": {
"const": "not_economically_live_until_canonical_identity",
"type": "string"
},
"moderationRequired": {
"const": true,
"type": "boolean"
},
"queueParityTarget": {
"type": "boolean"
},
"submissionMode": {
"const": "draft_only_operator_review_v0",
"type": "string"
}
},
"required": [
"submissionMode",
"moderationRequired",
"queueParityTarget",
"directSubmitSupported",
"economicsStatus",
"canonicalIdentityDecision"
],
"type": "object"
},
"rightsConfirmation": {
"type": "boolean"
},
"slides": {
"items": {
"additionalProperties": false,
"properties": {
"body": {
"type": "string"
},
"code": {
"type": "string"
},
"durationSeconds": {
"type": "number"
},
"headline": {
"type": "string"
},
"motion": {
"enum": [
"fade",
"slow_push",
"slide_left",
"code_reveal",
"none"
],
"type": "string"
}
},
"required": [
"durationSeconds",
"headline"
],
"type": "object"
},
"type": "array"
},
"sourceProjectUrl": {
"type": "string"
},
"submitter": {
"additionalProperties": false,
"properties": {
"contact": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"title": {
"type": "string"
},
"type": {
"const": "slide_sequence",
"type": "string"
}
},
"required": [
"type",
"title",
"description",
"rightsConfirmation",
"claimCaveat",
"durationSeconds",
"background",
"slides",
"lifecycle"
],
"type": "object"
},
"revisionRequest": {
"description": "Human or agent-requested changes. The request is preserved in draft metadata.",
"type": "string"
},
"title": {
"description": "Optional revised title.",
"type": "string"
}
},
"required": [
"package",
"revisionRequest"
],
"type": "object"
},
"name": "revise_slide_block",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bucket": {
"description": "Editorial bucket label. Omit or pass an empty string to clear the bucket.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"programItemId": {
"description": "Program item id to bucket or unbucket.",
"type": "string"
},
"reason": {
"description": "Audit reason for this bucket update.",
"type": "string"
}
},
"required": [
"channelSlug",
"programItemId"
],
"type": "object"
},
"name": "set_programming_bucket",
"outputSchema": null
},
{
"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.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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"entitlementId": {
"description": "Optional SuperBlock entitlement ID expected to be bound to the paid action intent. Not used for sponsor slots.",
"type": "string"
},
"intentId": {
"description": "Paid action intent ID returned by prepare_superblock_purchase or quote_sponsor_reservation with reserve=true.",
"type": "string"
},
"txHash": {
"description": "Direct PoolParty router transaction hash. Plain ERC-20 transfers are not valid production settlement.",
"type": "string"
}
},
"required": [
"intentId",
"txHash"
],
"type": "object"
},
"name": "settle_paid_action",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"mode": {
"description": "Publish mode to simulate. Defaults to replace_live_queue.",
"enum": [
"replace_live_queue",
"append",
"insert_after_current"
],
"type": "string"
},
"programItemIds": {
"description": "Optional subset of program item ids to simulate. Defaults to all publishable items.",
"items": {
"type": "string"
},
"type": "array"
},
"reason": {
"description": "Optional reason that would be carried into the publish audit preview.",
"type": "string"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "simulate_program_queue_publish",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "Channel slug, e.g. pp2.",
"type": "string"
},
"reason": {
"description": "Audit reason for requested skip.",
"type": "string"
}
},
"required": [
"channelSlug",
"reason"
],
"type": "object"
},
"name": "skip_current_live_item",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"canonicalMediaHandoff": {
"description": "Optional canonical media handoff object returned by complete_media_upload. When present, it must match videoUrl, playbackId, thumbnailUrl, and duration before any DB access."
},
"channelSlug": {
"description": "The channel slug to submit to. Must have participation enabled.",
"type": "string"
},
"duration": {
"description": "Duration in seconds. Defaults to 15.",
"type": "number"
},
"idempotencyKey": {
"description": "Client-provided idempotency key. Same channel + media + session + key returns existing entry. Omit to auto-generate (non-idempotent).",
"type": "string"
},
"playbackId": {
"description": "Livepeer/Mux playback ID if available.",
"type": "string"
},
"sessionToken": {
"description": "Session token from create_join_session.",
"type": "string"
},
"thumbnailUrl": {
"description": "Thumbnail image URL for the media block.",
"type": "string"
},
"title": {
"description": "Title for the media block. Defaults to \"Untitled\".",
"type": "string"
},
"videoUrl": {
"description": "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.",
"type": "string"
}
},
"required": [
"channelSlug",
"sessionToken",
"videoUrl"
],
"type": "object"
},
"name": "submit_media_block",
"outputSchema": null
},
{
"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 type changes, or economic configuration.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"channelSlug": {
"description": "The channel slug to update.",
"type": "string"
},
"description": {
"description": "New description (max 500 chars). Empty string = no change.",
"type": "string"
},
"name": {
"description": "New channel name (2-100 chars). Empty string = no change.",
"type": "string"
},
"operatorDisplayName": {
"description": "Operator display name (max 50 chars). Empty string = no change.",
"type": "string"
},
"purpose": {
"description": "Plain-language purpose statement (max 300 chars). Empty string = no change.",
"type": "string"
},
"tags": {
"description": "Channel tags (max 10 tags, each max 30 chars). Replaces existing tags.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"channelSlug"
],
"type": "object"
},
"name": "update_channel_settings",
"outputSchema": null
},
{
"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 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentSessionId": {
"description": "Optional caller session id for rate-limit identity and audit context.",
"type": "string"
},
"amount": {
"description": "Optional USDC test collateral amount to withdraw, decimal string with up to 6 decimals. Omit to withdraw the maximum active support.",
"type": "string"
},
"blockId": {
"description": "Database block id for the active user BLOCK whose pool support should be withdrawn before lock.",
"type": "string"
},
"channelSlug": {
"description": "Channel slug or alias, e.g. \"main\", \"PP0\", or \"Main Stage\".",
"type": "string"
},
"idempotencyKey": {
"description": "Optional client idempotency key stored on the STAKE_WITHDRAW transaction intent.",
"type": "string"
},
"walletAddress": {
"description": "Wallet address that owns the active pool support.",
"type": "string"
}
},
"required": [
"channelSlug",
"blockId",
"walletAddress"
],
"type": "object"
},
"name": "withdraw_pool_support",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:e01dd6f25ec8eff5596099fa9e916e7d1e11ad4a71f057b22a92636a6e79610b | sha256sum