Getting started

MCP server

npx -y @picoberry/mcp-server

Use PicoBerry generation as native tools in whatever AI agent you already use — Claude Code and Desktop, Cursor, VS Code (Copilot), Windsurf, Zed, OpenAI Codex, Gemini, Cline, and any other MCP client. No HTTP glue.

The PicoBerry MCP server exposes the /v1 API as Model Context Protocol tools, so an AI assistant can generate 3D models, images, and animations directly. It's a thin wrapper over the same endpoints, published on npm as @picoberry/mcp-server (source, MIT).

Same key as the REST API The MCP server uses your pb_live_ key and is available to paying accounts. See Authentication.

Install

Nothing to install — npx fetches it on first run. Add it to your MCP client config, then restart the client. Config file: Claude Code .mcp.json · Claude Desktop claude_desktop_config.json · Cursor ~/.cursor/mcp.json.

mcp config
{
  "mcpServers": {
    "picoberry": {
      "command": "npx",
      "args": ["-y", "@picoberry/mcp-server"],
      "env": {
        "PICOBERRY_API_KEY": "pb_live_xxxxxxxxxxxx",
        "PICOBERRY_API_BASE": "https://api.picoberry.ai"
      }
    }
  }
}

Codex CLI can add it in one command:

codex cli
codex mcp add picoberry -- npx -y @picoberry/mcp-server

Environment

VariableDescription
PICOBERRY_API_KEYREQ
string
Your pb_live_ key — create it in the dashboard under Profile → API Keys.
PICOBERRY_API_BASE
string
API base URL. Defaults to https://api.picoberry.ai.

Tools

Generation is asynchronous, like the REST API: a generate_* (or post-processing) call returns an asset id; call wait_for_asset (or poll get_asset) until it succeeds, then read the output URL.

ToolPurpose
list_modelsEngines/models + credit cost for a category (3d/image/remesh/texture/animate). Call this instead of hardcoding engines.
list_animation_presetsAnimation preset ids (engine-specific) for animate.
get_creditsCurrent credit balance and plan.
generate_imageText → image (with optional reference image URLs).
generate_3d_from_textText → 3D model (GLB).
generate_3d_from_imageImage → 3D model (public URL or local file path).
remeshRetopologize an existing 3D asset.
textureRe-texture (PBR) an existing 3D asset.
animateAuto-rig and animate an existing 3D character.
get_assetStatus and result URLs for one asset.
wait_for_assetPoll until an asset finishes (or times out), then return it.
list_my_assetsBrowse your generated assets.
download_assetExport a completed 3D asset (glb/fbx/obj) → signed URL.

Example

Ask your assistant: "Make a low-poly treasure chest, retopologize it to 3k triangles, and give me a Unity-ready FBX." It chains the tools:

tool calls
list_models(category="3d")                                      → pick an engine
generate_3d_from_text(prompt="low-poly treasure chest")         → { id: A }
wait_for_asset(asset_id=A)                                       → succeeded
remesh(asset_id=A, polycount=3000)                              → { id: B }
wait_for_asset(asset_id=B)
download_asset(asset_id=B, format="fbx", texture_preset="unity") → signed URL

Use alongside Blender

Run it next to blender-mcp — separate servers, so an assistant can generate with PicoBerry and import into Blender in one flow:

mcp config
{
  "mcpServers": {
    "picoberry": { "command": "npx", "args": ["-y", "@picoberry/mcp-server"] },
    "blender":   { "command": "uvx", "args": ["blender-mcp"] }
  }
}
Thin wrapper Every tool maps to a /v1 call — the same credits, rate limits, and moderation apply. Full tool reference and updates live in the README.