Prepaid inference for agents over hosted MCP. Chat, image, and video.
Call this server's tools from your browser. Nothing to install.
Bearer pzero_… API key (prepaid USDC balance)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
GET /v1/agent/me — balances, key prefix, max price. Pending USDC is not spendable until confirmed. If confirmed is low, call funding_instructions.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
GET /v1/agent/me — balances, key prefix, max price. Pending USDC is not spendable until confirmed. If confirmed is low, call funding_instructions.
No arguments.
{
"type": "object",
"additionalProperties": false
}POST /v1/chat/completions (buffered). Pass a live model id from get_models. Returns completion plus cost trace headers.
| Argument | Type | Description |
|---|---|---|
| model* | string | Live model id from get_models |
| messages* | null | array | OpenAI-style messages |
| max_tokens | null | integer | |
| temperature | null | number |
{
"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
}POST /v1/agent/keys — mint another key. Does NOT add USDC credit. Plaintext shown once.
| Argument | Type | Description |
|---|---|---|
| name* | string | Label for the new API key |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Label for the new API key"
}
},
"additionalProperties": false
}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_…
No arguments.
{
"type": "object",
"additionalProperties": false
}POST /v1/image/generate — intent tool for image generation. Rejects enable_web_search. Returns images plus cost trace.
| Argument | Type | Description |
|---|---|---|
| n | null | integer | Variants 1-4 |
| model* | string | Live image model id from get_models |
| prompt* | string | |
| quality | string | |
| resolution | string | |
| aspect_ratio | string | |
| hide_watermark | null | boolean | |
| enable_web_search | null | boolean |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| audio | null | boolean | |
| model* | string | Live video model id from get_models |
| prompt* | string | |
| duration | null | integer | |
| resolution | string | |
| aspect_ratio | string |
{
"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 /v1/capacity — routable DIEM and price bands before funding or spend decisions.
| Argument | Type | Description |
|---|---|---|
| max_price_cents | null | integer | Optional buyer ceiling 30-80 |
{
"type": "object",
"properties": {
"max_price_cents": {
"type": [
"null",
"integer"
],
"description": "Optional buyer ceiling 30-80"
}
},
"additionalProperties": false
}POST /v1/video/retrieve once — JSON status or delivered MP4.
| Argument | Type | Description |
|---|---|---|
| queue_id* | string | Queue id from video_queue / generate_video |
{
"type": "object",
"required": [
"queue_id"
],
"properties": {
"queue_id": {
"type": "string",
"description": "Queue id from video_queue / generate_video"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| id | string | Optional venice model id (bare or pzero/). Omit for the full list. |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Optional venice model id (bare or pzero/). Omit for the full list."
}
},
"additionalProperties": false
}GET /v1/agent/requests/{support_reference} — recover cost/trace for a prior request.
| Argument | Type | Description |
|---|---|---|
| support_reference* | string | UUID support reference from a prior call |
{
"type": "object",
"required": [
"support_reference"
],
"properties": {
"support_reference": {
"type": "string",
"description": "UUID support reference from a prior call"
}
},
"additionalProperties": false
}GET /v1/agent/keys — list active API key metadata (never plaintext).
No arguments.
{
"type": "object",
"additionalProperties": false
}DELETE /v1/agent/keys/{id} — irreversible. Do not revoke the key used by this MCP session unless intentional.
| Argument | Type | Description |
|---|---|---|
| id* | string | UUID of the key to revoke |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "UUID of the key to revoke"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| max_price_cents_per_dollar* | integer | Buyer ceiling in cents per DIEM dollar, 30-80 |
{
"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
}POST /v1/video/complete — optional cleanup after retrieve.
| Argument | Type | Description |
|---|---|---|
| queue_id* | string | Queue id from video_queue / generate_video |
{
"type": "object",
"required": [
"queue_id"
],
"properties": {
"queue_id": {
"type": "string",
"description": "Queue id from video_queue / generate_video"
}
},
"additionalProperties": false
}POST /v1/video/queue — paid settle+enqueue. Prefer generate_video for agents.
| Argument | Type | Description |
|---|---|---|
| audio | null | boolean | |
| model* | string | Live video model id from get_models |
| prompt* | string | |
| duration | null | integer | |
| resolution | string | |
| aspect_ratio | string |
{
"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
}POST /v1/video/quote — no settle, no job. Check clears_now vs price ceiling vs funding before queue.
| Argument | Type | Description |
|---|---|---|
| audio | null | boolean | |
| model* | string | Live video model id from get_models |
| prompt* | string | |
| duration | null | integer | |
| resolution | string | |
| aspect_ratio | string |
{
"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
}POST /v1/video/retrieve — power-user status/media poll.
| Argument | Type | Description |
|---|---|---|
| queue_id* | string | Queue id from video_queue / generate_video |
{
"type": "object",
"required": [
"queue_id"
],
"properties": {
"queue_id": {
"type": "string",
"description": "Queue id from video_queue / generate_video"
}
},
"additionalProperties": false
}Poll video retrieve until delivered or failed. Backs off on 502.
| Argument | Type | Description |
|---|---|---|
| queue_id* | string | |
| max_polls | null | integer | Max polls, default 120 |
| interval_ms | null | integer | Poll interval ms, default 5000 |
{
"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
}