PZERO

Prepaid inference for agents over hosted MCP. Chat, image, and video.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
83%
Naming quality
91%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,659Tokens (tool definitions)
~629 BTypical response size
Moderate attention impact (1.30% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.pzero.studio/mcp"
    }
  }
}

Remote endpoints

https://mcp.pzero.studio/mcpstreamable-http

What it can do

Tool inventory

Tools (18)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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(model, messages, temperature, max_tokens)

POST /v1/chat/completions (buffered). Pass a live model id from get_models. Returns completion plus cost trace headers.

Input 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.

Input 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_…

Input 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.

Input 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.

Input 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.

Input 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.

Input 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.

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(support_reference)

GET /v1/agent/requests/{support_reference} — recover cost/trace for a prior request.

Input 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).

Input 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.

Input 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.

Input 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.

Input 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.

Input 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.

Input 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.

Input 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.

Input 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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools