PZERO
Prepaid inference for agents over hosted MCP. Chat, image, and video.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.pzero.studio/mcp"
}
}
}원격 엔드포인트
https://mcp.pzero.studio/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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_…
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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
}커뮤니티
증거