MCP Server

PZERO

studio.pzero/mcp
AI & Agents Cloud & Infrastructure Public & reachable MCP 2025-11-25

What this MCP does

Provides prepaid hosted inference for agents, including chat completions, image generation, video generation, model discovery, job polling, and API key management.

agent_me
GET /v1/agent/me — balances, key prefix, max price. Pending USDC is not spendable until confirmed. If confirmed is low, call funding_instructions.
Input schema
{'type': 'object', 'additionalProperties': False}
chat_completions
POST /v1/chat/completions (buffered). Pass a live model id from get_models. Returns completion plus cost trace headers.
Input schema
{'type': 'object', 'required': ['model', 'messages'], 'properties': {'model': {'type': 'string', 'description': 'Live model id from get_models'}, 'messages': {'type': ['null', 'array'], 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'OpenAI-style messages'}, 'max_tokens': {'type': ['null', 'integer']}, 'temperature': {'type': ['null', 'number']}}, 'additionalProperties': False}
create_key
POST /v1/agent/keys — mint another key. Does NOT add USDC credit. Plaintext shown once.
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Label for the new API key'}}, 'additionalProperties': False}
funding_instructions
How to fund a PZERO account and authenticate MCP. MCP never accepts payment or wallet keys. Fund via Studio x402 top-up or agent HTTP signup/refill, then use Authorization Bearer pzero_…
Input schema
{'type': 'object', 'additionalProperties': False}
generate_image
POST /v1/image/generate — intent tool for image generation. Rejects enable_web_search. Returns images plus cost trace.
Input schema
{'type': 'object', 'required': ['model', 'prompt'], 'properties': {'n': {'type': ['null', 'integer'], 'description': 'Variants 1-4'}, 'model': {'type': 'string', 'description': 'Live image model id from get_models'}, 'prompt': {'type': 'string'}, 'quality': {'type': 'string'}, 'resolution': {'type': 'string'}, 'aspect_ratio': {'type': 'string'}, 'hide_watermark': {'type': ['null', 'boolean']}, 'enable_web_search': {'type': ['null', 'boolean']}}, 'additionalProperties': False}
generate_video
Intent tool: POST /v1/video/queue (settles then enqueues). Returns queue_id + cost. Confirm before calling — this spends prepaid USDC. Poll with get_generation_status or wait_for_video.
Destructive
Input schema
{'type': 'object', 'required': ['model', 'prompt'], 'properties': {'audio': {'type': ['null', 'boolean']}, 'model': {'type': 'string', 'description': 'Live video model id from get_models'}, 'prompt': {'type': 'string'}, 'duration': {'type': ['null', 'integer']}, 'resolution': {'type': 'string'}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}
get_capacity
GET /v1/capacity — routable DIEM and price bands before funding or spend decisions.
Input schema
{'type': 'object', 'properties': {'max_price_cents': {'type': ['null', 'integer'], 'description': 'Optional buyer ceiling 30-80'}}, 'additionalProperties': False}
get_generation_status
POST /v1/video/retrieve once — JSON status or delivered MP4.
Input schema
{'type': 'object', 'required': ['queue_id'], 'properties': {'queue_id': {'type': 'string', 'description': 'Queue id from video_queue / generate_video'}}, 'additionalProperties': False}
get_models
GET /v1/models — resolve a live model id before inference. Optional id retrieves one public row (same object as that id in the list). Do not hardcode model ids.
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Optional venice model id (bare or pzero/). Omit for the full list.'}}, 'additionalProperties': False}
get_request
GET /v1/agent/requests/{support_reference} — recover cost/trace for a prior request.
Input schema
{'type': 'object', 'required': ['support_reference'], 'properties': {'support_reference': {'type': 'string', 'description': 'UUID support reference from a prior call'}}, 'additionalProperties': False}
list_keys
GET /v1/agent/keys — list active API key metadata (never plaintext).
Input schema
{'type': 'object', 'additionalProperties': False}
revoke_key
DELETE /v1/agent/keys/{id} — irreversible. Do not revoke the key used by this MCP session unless intentional.
Destructive
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the key to revoke'}}, 'additionalProperties': False}
set_max_price
PATCH /v1/agent/max-price — raise/lower ceiling (30-80). Use when tools return no_eligible_supply with cheapest_posted_cents. Does not auto-apply.
Idempotent
Input schema
{'type': 'object', 'required': ['max_price_cents_per_dollar'], 'properties': {'max_price_cents_per_dollar': {'type': 'integer', 'description': 'Buyer ceiling in cents per DIEM dollar, 30-80'}}, 'additionalProperties': False}
video_complete
POST /v1/video/complete — optional cleanup after retrieve.
Input schema
{'type': 'object', 'required': ['queue_id'], 'properties': {'queue_id': {'type': 'string', 'description': 'Queue id from video_queue / generate_video'}}, 'additionalProperties': False}
video_queue
POST /v1/video/queue — paid settle+enqueue. Prefer generate_video for agents.
Destructive
Input schema
{'type': 'object', 'required': ['model', 'prompt'], 'properties': {'audio': {'type': ['null', 'boolean']}, 'model': {'type': 'string', 'description': 'Live video model id from get_models'}, 'prompt': {'type': 'string'}, 'duration': {'type': ['null', 'integer']}, 'resolution': {'type': 'string'}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}
video_quote
POST /v1/video/quote — no settle, no job. Check clears_now vs price ceiling vs funding before queue.
Input schema
{'type': 'object', 'required': ['model', 'prompt'], 'properties': {'audio': {'type': ['null', 'boolean']}, 'model': {'type': 'string', 'description': 'Live video model id from get_models'}, 'prompt': {'type': 'string'}, 'duration': {'type': ['null', 'integer']}, 'resolution': {'type': 'string'}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}
video_retrieve
POST /v1/video/retrieve — power-user status/media poll.
Input schema
{'type': 'object', 'required': ['queue_id'], 'properties': {'queue_id': {'type': 'string', 'description': 'Queue id from video_queue / generate_video'}}, 'additionalProperties': False}
wait_for_video
Poll video retrieve until delivered or failed. Backs off on 502.
Input schema
{'type': 'object', 'required': ['queue_id'], 'properties': {'queue_id': {'type': 'string'}, 'max_polls': {'type': ['null', 'integer'], 'description': 'Max polls, default 120'}, 'interval_ms': {'type': ['null', 'integer'], 'description': 'Poll interval ms, default 5000'}}, 'additionalProperties': False}
Added
wait_for_video
Sept. 17, 2026, 12:55 p.m.
Added
video_retrieve
Sept. 17, 2026, 12:55 p.m.
Added
video_quote
Sept. 17, 2026, 12:55 p.m.
Added
video_queue
Sept. 17, 2026, 12:55 p.m.
Added
video_complete
Sept. 17, 2026, 12:55 p.m.
Added
set_max_price
Sept. 17, 2026, 12:55 p.m.
Added
revoke_key
Sept. 17, 2026, 12:55 p.m.
Added
list_keys
Sept. 17, 2026, 12:55 p.m.
Added
get_request
Sept. 17, 2026, 12:55 p.m.
Added
get_models
Sept. 17, 2026, 12:55 p.m.
Added
get_generation_status
Sept. 17, 2026, 12:55 p.m.
Added
get_capacity
Sept. 17, 2026, 12:55 p.m.
Added
generate_video
Sept. 17, 2026, 12:55 p.m.
Added
generate_image
Sept. 17, 2026, 12:55 p.m.
Added
funding_instructions
Sept. 17, 2026, 12:55 p.m.
Added
create_key
Sept. 17, 2026, 12:55 p.m.
Added
chat_completions
Sept. 17, 2026, 12:55 p.m.
Added
agent_me
Sept. 17, 2026, 12:55 p.m.