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