PZERO
Prepaid inference for agents over hosted MCP. Chat, image, and video.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.pzero.studio/mcp"
}
}
}Puntos de conexión remotos
https://mcp.pzero.studio/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (18)
🟢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.
Esquema de entrada
{
"type": "object",
"additionalProperties": false
}🟡chat_completions(model, messages, temperature, max_tokens)
POST /v1/chat/completions (buffered). Pass a live model id from get_models. Returns completion plus cost trace headers.
Esquema de entrada
{
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "Live model id from get_models"
},
"messages": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"additionalProperties": true
},
"description": "OpenAI-style messages"
},
"temperature": {
"type": [
"null",
"number"
]
},
"max_tokens": {
"type": [
"null",
"integer"
]
}
},
"required": [
"model",
"messages"
],
"additionalProperties": false
}🟡create_key(name)
POST /v1/agent/keys — mint another key. Does NOT add USDC credit. Plaintext shown once.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Label for the new API key"
}
},
"required": [
"name"
],
"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_…
Esquema de entrada
{
"type": "object",
"additionalProperties": false
}🟡generate_image(model, prompt, resolution, quality, aspect_ratio, ...)
POST /v1/image/generate — intent tool for image generation. Rejects enable_web_search. Returns images plus cost trace.
Esquema de entrada
{
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "Live image model id from get_models"
},
"prompt": {
"type": "string"
},
"resolution": {
"type": "string"
},
"quality": {
"type": "string"
},
"aspect_ratio": {
"type": "string"
},
"hide_watermark": {
"type": [
"null",
"boolean"
]
},
"n": {
"type": [
"null",
"integer"
],
"description": "Variants 1-4"
},
"enable_web_search": {
"type": [
"null",
"boolean"
]
}
},
"required": [
"model",
"prompt"
],
"additionalProperties": false
}🔴generate_video(model, prompt, duration, resolution, aspect_ratio, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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"
},
"audio": {
"type": [
"null",
"boolean"
]
}
},
"required": [
"model",
"prompt"
],
"additionalProperties": false
}🟢get_capacity(max_price_cents)
GET /v1/capacity — routable DIEM and price bands before funding or spend decisions.
Esquema de entrada
{
"type": "object",
"properties": {
"max_price_cents": {
"type": [
"null",
"integer"
],
"description": "Optional buyer ceiling 30-80"
}
},
"additionalProperties": false
}🟡get_generation_status(queue_id)
POST /v1/video/retrieve once — JSON status or delivered MP4.
Esquema de entrada
{
"type": "object",
"properties": {
"queue_id": {
"type": "string",
"description": "Queue id from video_queue / generate_video"
}
},
"required": [
"queue_id"
],
"additionalProperties": false
}🟢get_models(id)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Optional venice model id (bare or pzero/). Omit for the full list."
}
},
"additionalProperties": false
}🟢get_request(support_reference)
GET /v1/agent/requests/{support_reference} — recover cost/trace for a prior request.
Esquema de entrada
{
"type": "object",
"properties": {
"support_reference": {
"type": "string",
"description": "UUID support reference from a prior call"
}
},
"required": [
"support_reference"
],
"additionalProperties": false
}🟢list_keys
GET /v1/agent/keys — list active API key metadata (never plaintext).
Esquema de entrada
{
"type": "object",
"additionalProperties": false
}🔴revoke_key(id)
DELETE /v1/agent/keys/{id} — irreversible. Do not revoke the key used by this MCP session unless intentional.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "UUID of the key to revoke"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟡set_max_price(max_price_cents_per_dollar)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"max_price_cents_per_dollar": {
"type": "integer",
"description": "Buyer ceiling in cents per DIEM dollar, 30-80"
}
},
"required": [
"max_price_cents_per_dollar"
],
"additionalProperties": false
}🟡video_complete(queue_id)
POST /v1/video/complete — optional cleanup after retrieve.
Esquema de entrada
{
"type": "object",
"properties": {
"queue_id": {
"type": "string",
"description": "Queue id from video_queue / generate_video"
}
},
"required": [
"queue_id"
],
"additionalProperties": false
}🔴video_queue(model, prompt, duration, resolution, aspect_ratio, ...)
POST /v1/video/queue — paid settle+enqueue. Prefer generate_video for agents.
Esquema de entrada
{
"type": "object",
"properties": {
"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"
},
"audio": {
"type": [
"null",
"boolean"
]
}
},
"required": [
"model",
"prompt"
],
"additionalProperties": false
}🟡video_quote(model, prompt, duration, resolution, aspect_ratio, ...)
POST /v1/video/quote — no settle, no job. Check clears_now vs price ceiling vs funding before queue.
Esquema de entrada
{
"type": "object",
"properties": {
"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"
},
"audio": {
"type": [
"null",
"boolean"
]
}
},
"required": [
"model",
"prompt"
],
"additionalProperties": false
}🟡video_retrieve(queue_id)
POST /v1/video/retrieve — power-user status/media poll.
Esquema de entrada
{
"type": "object",
"properties": {
"queue_id": {
"type": "string",
"description": "Queue id from video_queue / generate_video"
}
},
"required": [
"queue_id"
],
"additionalProperties": false
}🟢wait_for_video(queue_id, interval_ms, max_polls)
Poll video retrieve until delivered or failed. Backs off on 502.
Esquema de entrada
{
"type": "object",
"properties": {
"queue_id": {
"type": "string"
},
"interval_ms": {
"type": [
"null",
"integer"
],
"description": "Poll interval ms, default 5000"
},
"max_polls": {
"type": [
"null",
"integer"
],
"description": "Max polls, default 120"
}
},
"required": [
"queue_id"
],
"additionalProperties": false
}Comunidad
Evidencia