PZERO
Prepaid inference for agents over hosted MCP. Chat, image, and video.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.pzero.studio/mcp"
}
}
}Remote-Endpunkte
https://mcp.pzero.studio/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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_…
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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).
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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
}Community
Nachweis