Documentation
Contents
Quick Start
PinePaper Cloud Studio implements the MCP 2025-03 Authorization spec — OAuth 2.1 + PKCE + Dynamic Client Registration. Static API keys are not supported; clients authorize themselves via the browser-based OAuth flow.
1. Sign in + add credits
Sign in with Google at /auth/google, then visit /add-credits if you want to purchase credits. New users get a $1 bonus.
2. Configure Claude Desktop
Claude Desktop launches MCP servers as local stdio processes; remote HTTP MCP servers are reached through the mcp-remote bridge, which proxies stdio ↔ HTTP and handles the OAuth handshake. Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pinepaper-cloud": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://cloud.pinepaper.studio/mcp/v1"]
}
}
}
No headers block, no static keys. On first connection mcp-remote will:
- Hit
POST /mcp/v1→ receive401with aWWW-Authenticateheader pointing at our discovery URL - Fetch
/.well-known/oauth-authorization-server+/.well-known/oauth-protected-resource - Register itself via
POST /oauth/register(RFC 7591 Dynamic Client Registration) - Open your browser to
/oauth/authorize— you'll see a consent page showing the client name and requested scopes (mcp:read,mcp:write) - Click Authorize —
mcp-remotereceives the auth code, exchanges it for an access + refresh token viaPOST /oauth/token, and starts proxying real MCP calls to Claude Desktop
The browser handoff happens once per client per device — tokens are cached locally under ~/.mcp-auth/. Refresh tokens last 30 days and rotate on every use (RFC 6819 §5.2.2.3) so a stolen refresh token's window is bounded.
3. Start Creating
Try in Claude Desktop:
- "Create a red circle that pulses"
- "Make a flowchart for user login"
- "Create a solar system with Earth orbiting the Sun"
You can see + revoke each authorized client at /account → MCP Clients.
Web Studio & AI Code Console
You don't need Claude Desktop to use PinePaper. Sign in at pinepaper.studio/editor with your PinePaper Cloud account and the in-browser AI Code Console becomes available — same tools, no install.
What you get when signed in
- AI Code Console — chat panel inside the editor that generates and runs PinePaper code on the canvas in real time.
- PinePaper LLM on Credits (coming soon) — our own model (
pinepaper-llm-v0) will be served from credits, billed per token at $0.20 / 1M input and $0.60 / 1M output (a typical design turn ~$0.0006). Until it launches, all models — including third-party (Claude, Gemini, GPT, Grok) — require BYOK; PinePaper Cloud does not resell third-party LLMs. - Modes — Design and Modify route through the KG pipeline for style learning; Chat and Help talk directly to the model.
Bring Your Own Key (BYOK)
To use a third-party model in the AI Code Console, add your own API key at /account#llm-providers. Once a key is on file, that provider's models appear in the model picker and you can switch per message:
- Anthropic — Claude Opus 4.8, Sonnet 4.6, Haiku 4.5, plus Opus 4.7 (legacy). anthropic.com
- Google — Gemini 2.5 Pro, 2.5 Flash, 2.5 Flash Lite, 2.0 Flash, 2.0 Flash Lite. ai.google.dev
- OpenAI — GPT-5.5, 5.4, 5.4 Mini, 5.4 Nano, 5.3 Codex. openai.com
- xAI — Grok 4.3, Grok 4.20 (reasoning, non-reasoning, multi-agent), Grok Build 0.1. x.ai
- OpenRouter — single key, 200+ models. We curate a default set (DeepSeek V4, Kimi K2.6, Nemotron 3 Super, Qwen 3.7 Max, Mistral Medium 3.5) and surface the full live catalog with type-ahead search. openrouter.ai
A flat $0.002/request platform fee is deducted from your credits to cover infrastructure (KG pipeline, sessions, caching); your provider bills you separately for tokens.
Set a default model
Pick a provider + model on /account#llm-providers under Default Model. New chats start with that selection; per-conversation choices still win when you reopen an existing thread. The preference is stored at GET/PUT /api/me/preferences.
How your key is protected
- Encrypted at rest with AES-256-GCM, scoped to your account via a per-user PBKDF2 salt.
- Never exposed in request or response bodies.
- Every read is recorded in a private audit log you can ask us to review.
- Remove the key any time at /account#llm-providers — takes effect immediately.
Model attribution
Every provider above is independent. PinePaper Cloud does not train, host, or fine-tune any of these models — when you BYOK, your request goes directly to the provider you selected (or to OpenRouter's gateway for OpenRouter-prefixed model IDs). For OpenRouter specifically, we send HTTP-Referer: https://cloud.pinepaper.studio + X-Title: PinePaper Cloud on every call so your usage is correctly attributed in your OpenRouter activity feed. Trademarks remain with their respective owners.
Cloud Templates
The template is the unit of saved work — items, relations, animations, canvas size — that you reload, remix, and iterate on with the AI Code Console. A scene is what you compose by chaining templates together. Local templates live in your browser (free); when signed in to PinePaper Cloud you can opt in to cloud sync so the same templates follow you across devices.
Saving from the studio
- Build a template in the editor.
- Open the Templates panel (left sidebar) and click Save. Choose Local (free, browser-only) or Cloud (synced, opt-in).
- Each cloud template gets its own conversation thread (one-to-one) so the AI Code Console remembers context as you iterate on it across sessions.
- Chain saved templates into a scene to build something larger without losing the per-template KG context.
Pricing & privacy
- Cloud templates are pay-as-you-go from your credits balance — storage is small per template.
- Templates are private to your account. The MCP Cloud knowledge graph scopes data per
templateId(preferred) orconversationId(fallback), and the PinePaper LLM service learns your style profile privately at the user level. - Toggle cloud sync off any time at /account — local templates remain in your browser.
MCP Endpoint
POST https://cloud.pinepaper.studio/mcp/v1Auth: OAuth 2.1 + PKCE — JWT access token in
Authorization: Bearer <token>
The MCP endpoint uses JSON-RPC 2.0. Auth follows the MCP 2025-03 Authorization spec (OAuth 2.1 + PKCE + Dynamic Client Registration). MCP clients that support discovery (Claude Desktop 0.10+, Cursor MCP, etc.) handle the flow automatically — see Quick Start above.
For tools that don't auto-discover OAuth, complete the flow manually and use the resulting access token:
POST /mcp/v1
Authorization: Bearer <access_token_from_oauth_flow>
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list"
}
OAuth Flow Reference
The endpoints below implement OAuth 2.1 (RFC 6749 / draft-ietf-oauth-v2-1), PKCE S256 (RFC 7636), Dynamic Client Registration (RFC 7591), and Token Revocation (RFC 7009).
| Endpoint | Method | Purpose |
|---|---|---|
/.well-known/oauth-authorization-server | GET | RFC 8414 metadata: endpoints, scopes, grant types |
/.well-known/oauth-protected-resource | GET | RFC 9728 metadata: resource URL + authorization_servers |
/.well-known/jwks.json | GET | RFC 7517 JWKS — ES256 public keys for offline token verification |
/oauth/register | POST | RFC 7591 Dynamic Client Registration |
/oauth/authorize | GET | Authorization endpoint — PKCE S256 mandatory |
/oauth/token | POST | Token endpoint — authorization_code + refresh_token grants |
/oauth/revoke | POST | RFC 7009 token revocation |
Manual flow (for non-MCP clients)
# 1. Register your client
curl -X POST https://cloud.pinepaper.studio/oauth/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "My App",
"redirect_uris": ["http://localhost:54321/cb"],
"token_endpoint_auth_method": "none"
}'
# → returns { "client_id": "mcpc_..." } (no client_secret for PKCE-only clients)
# 2. Generate a PKCE verifier + challenge
verifier=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-43)
challenge=$(printf "%s" "$verifier" | openssl dgst -sha256 -binary | \
openssl base64 | tr -d "=+/" | tr "+/" "-_")
# 3. Open this URL in a browser to sign in + approve
echo "https://cloud.pinepaper.studio/oauth/authorize?client_id=mcpc_...&redirect_uri=http://localhost:54321/cb&response_type=code&code_challenge=$challenge&code_challenge_method=S256&scope=mcp:read+mcp:write&state=xyz"
# 4. Browser redirects to your callback with ?code=mcpac_...&state=xyz
# Exchange that code for tokens:
curl -X POST https://cloud.pinepaper.studio/oauth/token \
-d "grant_type=authorization_code" \
-d "client_id=mcpc_..." \
-d "code=mcpac_..." \
-d "redirect_uri=http://localhost:54321/cb" \
-d "code_verifier=$verifier"
# → { "access_token": "eyJhbGc...", "refresh_token": "mcprt_...", "expires_in": 3600 }
# 5. Use the access token for /mcp/v1 calls
curl -X POST https://cloud.pinepaper.studio/mcp/v1 \
-H "Authorization: Bearer eyJhbGc..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"1","method":"tools/list"}'
# 6. Refresh before the access token expires (1h)
curl -X POST https://cloud.pinepaper.studio/oauth/token \
-d "grant_type=refresh_token" \
-d "client_id=mcpc_..." \
-d "refresh_token=mcprt_..."
# → new access_token + new refresh_token (old refresh is revoked)
Note: refresh tokens rotate on every use. If a stolen refresh token is replayed after the legitimate client already refreshed, the entire chain is revoked and the user is forced to re-authorize.
Pricing
Pay-as-you-go with no subscriptions. Credits never expire.
| Operation | Cost |
|---|---|
| MCP Request (create, animate, query) | $0.001 |
| SVG Export | $0.005 |
| PDF Export | $0.03 |
| Video Export | $0.05/sec |
| GIF Export | $0.08/sec |
Tools & Toolkit Profiles
The full PinePaper tool registry has 102 tools across canvas, animation, diagrams, maps, fonts, exports, and more. You almost never need all of them at once — exposing the full surface to a model burns context and slows tool selection.
The MCP server organizes tools into toolkit profiles — task-shaped subsets activated per request. pinepaper_set_toolkit switches the active profile; pinepaper_tool_guide answers "which tool fits this job?" without listing the whole registry. The active profile is selected automatically based on the workflow ("draw a flowchart" → diagram profile; "highlight US states" → map profile).
Toolkit profiles
Generated from @pinepaper.studio/mcp-server@1.5.5 on 2026-07-27.
Full — 102 tools
Every tool in the registry. Use when context budget allows and the workflow spans many domains (canvas + diagrams + maps + fonts).
pinepaper_add_filterpinepaper_add_portspinepaper_add_relationpinepaper_agent_analyzepinepaper_agent_batch_executepinepaper_agent_end_jobpinepaper_agent_exportpinepaper_agent_resetpinepaper_agent_start_jobpinepaper_analyze_designpinepaper_animatepinepaper_animate_letter_collagepinepaper_apply_animated_maskpinepaper_apply_custom_maskpinepaper_apply_effectpinepaper_apply_templatepinepaper_auto_layoutpinepaper_backgroundpinepaper_batch_createpinepaper_batch_modifypinepaper_browser_connectpinepaper_browser_disconnectpinepaper_browser_screenshotpinepaper_browser_statuspinepaper_camerapinepaper_camera_animatepinepaper_clear_canvaspinepaper_connectpinepaper_connect_portspinepaper_create_chartpinepaper_create_diagonal_stripespinepaper_create_diagram_shapepinepaper_create_glossy_spherepinepaper_create_gridpinepaper_create_itempinepaper_create_letter_collagepinepaper_create_scenepinepaper_cutout_stylepinepaper_deformpinepaper_delete_itempinepaper_diagnostic_reportpinepaper_diagram_modepinepaper_execute_custom_codepinepaper_execute_generatorpinepaper_export_scenepinepaper_export_svgpinepaper_export_training_datapinepaper_export_widgetpinepaper_export_widget_htmlpinepaper_fontpinepaper_get_animatable_propertiespinepaper_get_available_easingspinepaper_get_canvas_ontologypinepaper_get_canvas_sizepinepaper_get_diagram_shapespinepaper_get_itemspinepaper_get_mask_animationspinepaper_get_mask_typespinepaper_get_performance_metricspinepaper_get_relation_statspinepaper_historypinepaper_image_filterpinepaper_import_assetpinepaper_import_imagepinepaper_import_mermaidpinepaper_import_svgpinepaper_interactionpinepaper_keyframe_animatepinepaper_lassopinepaper_list_generatorspinepaper_magicpinepaper_manage_scenespinepaper_mappinepaper_map_animationpinepaper_map_datapinepaper_map_regionspinepaper_measurementpinepaper_modify_itempinepaper_p5_drawpinepaper_physicspinepaper_play_timelinepinepaper_precomppinepaper_querypinepaper_query_ontologypinepaper_query_relationspinepaper_refresh_pagepinepaper_register_custom_relationpinepaper_register_itempinepaper_remove_connectorpinepaper_remove_maskpinepaper_remove_relationpinepaper_scene_playbackpinepaper_search_assetspinepaper_selectionpinepaper_set_background_colorpinepaper_set_canvas_sizepinepaper_set_toolkitpinepaper_sprite_sheetpinepaper_tool_guidepinepaper_transformpinepaper_update_connectorpinepaper_validate_designAgent (default) — 94 tools
Default profile for general-purpose AI agents. Covers canvas, items, animation, relations, effects, exports — the common creative workflow.
pinepaper_add_portspinepaper_add_relationpinepaper_agent_analyzepinepaper_agent_batch_executepinepaper_agent_end_jobpinepaper_agent_exportpinepaper_agent_resetpinepaper_agent_start_jobpinepaper_analyze_designpinepaper_animatepinepaper_apply_animated_maskpinepaper_apply_custom_maskpinepaper_apply_effectpinepaper_apply_templatepinepaper_auto_layoutpinepaper_backgroundpinepaper_batch_createpinepaper_batch_modifypinepaper_browser_connectpinepaper_browser_disconnectpinepaper_browser_screenshotpinepaper_browser_statuspinepaper_camerapinepaper_camera_animatepinepaper_clear_canvaspinepaper_connectpinepaper_connect_portspinepaper_create_chartpinepaper_create_diagonal_stripespinepaper_create_diagram_shapepinepaper_create_glossy_spherepinepaper_create_gridpinepaper_create_itempinepaper_create_scenepinepaper_cutout_stylepinepaper_deformpinepaper_delete_itempinepaper_diagram_modepinepaper_execute_generatorpinepaper_export_scenepinepaper_export_svgpinepaper_export_training_datapinepaper_export_widgetpinepaper_export_widget_htmlpinepaper_get_animatable_propertiespinepaper_get_available_easingspinepaper_get_canvas_ontologypinepaper_get_canvas_sizepinepaper_get_diagram_shapespinepaper_get_itemspinepaper_get_mask_animationspinepaper_get_mask_typespinepaper_get_relation_statspinepaper_historypinepaper_image_filterpinepaper_import_assetpinepaper_import_imagepinepaper_import_mermaidpinepaper_import_svgpinepaper_interactionpinepaper_keyframe_animatepinepaper_lassopinepaper_list_generatorspinepaper_magicpinepaper_manage_scenespinepaper_mappinepaper_map_animationpinepaper_map_datapinepaper_map_regionspinepaper_measurementpinepaper_modify_itempinepaper_p5_drawpinepaper_physicspinepaper_play_timelinepinepaper_precomppinepaper_querypinepaper_query_ontologypinepaper_query_relationspinepaper_refresh_pagepinepaper_register_custom_relationpinepaper_remove_connectorpinepaper_remove_maskpinepaper_remove_relationpinepaper_scene_playbackpinepaper_search_assetspinepaper_selectionpinepaper_set_background_colorpinepaper_set_canvas_sizepinepaper_set_toolkitpinepaper_sprite_sheetpinepaper_tool_guidepinepaper_transformpinepaper_update_connectorpinepaper_validate_designDiagram — 42 tools
Flowcharts, UML, network topology — diagram shapes, connectors, layout algorithms.
pinepaper_add_portspinepaper_agent_analyzepinepaper_agent_batch_executepinepaper_agent_end_jobpinepaper_agent_exportpinepaper_agent_resetpinepaper_agent_start_jobpinepaper_auto_layoutpinepaper_backgroundpinepaper_browser_connectpinepaper_browser_disconnectpinepaper_browser_screenshotpinepaper_browser_statuspinepaper_clear_canvaspinepaper_connectpinepaper_connect_portspinepaper_create_diagonal_stripespinepaper_create_diagram_shapepinepaper_create_glossy_spherepinepaper_create_gridpinepaper_create_itempinepaper_delete_itempinepaper_diagram_modepinepaper_export_scenepinepaper_export_svgpinepaper_export_training_datapinepaper_export_widgetpinepaper_export_widget_htmlpinepaper_get_canvas_sizepinepaper_get_diagram_shapespinepaper_get_itemspinepaper_get_relation_statspinepaper_import_mermaidpinepaper_modify_itempinepaper_querypinepaper_refresh_pagepinepaper_remove_connectorpinepaper_set_background_colorpinepaper_set_canvas_sizepinepaper_set_toolkitpinepaper_tool_guidepinepaper_update_connectorMap — 30 tools
Geographic visualization — load maps, highlight regions, apply data colors, project, export GeoJSON.
pinepaper_agent_analyzepinepaper_agent_batch_executepinepaper_agent_end_jobpinepaper_agent_exportpinepaper_agent_resetpinepaper_agent_start_jobpinepaper_backgroundpinepaper_browser_connectpinepaper_browser_disconnectpinepaper_browser_screenshotpinepaper_browser_statuspinepaper_clear_canvaspinepaper_export_scenepinepaper_export_svgpinepaper_export_training_datapinepaper_export_widgetpinepaper_export_widget_htmlpinepaper_get_canvas_sizepinepaper_get_itemspinepaper_get_relation_statspinepaper_mappinepaper_map_animationpinepaper_map_datapinepaper_map_regionspinepaper_querypinepaper_refresh_pagepinepaper_set_background_colorpinepaper_set_canvas_sizepinepaper_set_toolkitpinepaper_tool_guideFont Studio — 32 tools
Typography workflows — font import, glyph editing, OTF export.
pinepaper_agent_analyzepinepaper_agent_batch_executepinepaper_agent_end_jobpinepaper_agent_exportpinepaper_agent_resetpinepaper_agent_start_jobpinepaper_animate_letter_collagepinepaper_backgroundpinepaper_browser_connectpinepaper_browser_disconnectpinepaper_browser_screenshotpinepaper_browser_statuspinepaper_clear_canvaspinepaper_create_diagonal_stripespinepaper_create_glossy_spherepinepaper_create_gridpinepaper_create_itempinepaper_create_letter_collagepinepaper_delete_itempinepaper_export_scenepinepaper_export_svgpinepaper_export_training_datapinepaper_export_widgetpinepaper_export_widget_htmlpinepaper_fontpinepaper_get_canvas_sizepinepaper_modify_itempinepaper_refresh_pagepinepaper_set_background_colorpinepaper_set_canvas_sizepinepaper_set_toolkitpinepaper_tool_guideMinimal — 18 tools
Smallest viable surface for low-context models — basic create/modify/animate only. Pair with `pinepaper_tool_guide` for on-demand discovery.
pinepaper_agent_analyzepinepaper_agent_batch_executepinepaper_agent_end_jobpinepaper_agent_exportpinepaper_agent_resetpinepaper_agent_start_jobpinepaper_backgroundpinepaper_browser_connectpinepaper_browser_disconnectpinepaper_browser_screenshotpinepaper_browser_statuspinepaper_clear_canvaspinepaper_get_canvas_sizepinepaper_refresh_pagepinepaper_set_background_colorpinepaper_set_canvas_sizepinepaper_set_toolkitpinepaper_tool_guideAll tools (alphabetical)
Show full registry — 102 tools
pinepaper_add_filterAdd a visual filter effect to the canvas.
pinepaper_add_portsAdd connection ports to an existing item.
pinepaper_add_relationCreate a behavior relationship between two items.
pinepaper_agent_analyzeAnalyze canvas content to get export recommendations and content insights.
pinepaper_agent_batch_executeExecute ALL operations in a single call for building animated scenes — canvas setup, backgrounds, items, animations, masks, effects, and playback.
pinepaper_agent_end_jobEnd the current agent job, get summary + screenshot for user validation.
pinepaper_agent_exportSmart export with automatic format detection and platform optimization.
pinepaper_agent_resetFast canvas reset without browser refresh.
pinepaper_agent_start_jobStart a new agent job for creating animations, videos, graphics, or any visual content.
pinepaper_analyze_designAnalyze a template or scene definition using the PinePaper Design Knowledge Graph.
pinepaper_animateApply a simple LOOP animation to an item.
pinepaper_animate_letter_collageApply animation to all letters in a collage with staggered timing.
pinepaper_apply_animated_maskApply an animated mask reveal to an item.
pinepaper_apply_custom_maskDirect helper for applying custom keyframe-based masks.
pinepaper_apply_effectApply a visual effect to an item.
pinepaper_apply_templateLoad a pre-built template design onto the canvas, or list available templates.
pinepaper_auto_layoutAutomatically arrange diagram items using a layout algorithm.
pinepaper_backgroundSet, clear, or query the canvas background.
pinepaper_batch_createCreate multiple items at once with a single history save.
pinepaper_batch_modifyModify multiple items at once with a single history save.
pinepaper_browser_connectConnect to PinePaper Studio in a browser.
pinepaper_browser_disconnectDisconnect from the browser and close PinePaper Studio.
pinepaper_browser_screenshotTake a screenshot of the current PinePaper canvas.
pinepaper_browser_statusCheck the current browser connection status.
pinepaper_cameraCamera control: zoom, pan, move, reset, stop, get state.
pinepaper_camera_animateAnimate camera with keyframe-based zoom, pan, and 3D tilt sequence for cinematic effects.
pinepaper_clear_canvasClear all items from the canvas, removing everything including any welcome template items.
pinepaper_connectConnect two items with a smart connector.
pinepaper_connect_portsConnect two specific ports on items.
pinepaper_create_chartCreate and manage data visualizations on the canvas.
pinepaper_create_diagonal_stripesCreate a diagonal stripe pattern.
pinepaper_create_diagram_shapeCreate a diagram shape on the canvas.
pinepaper_create_glossy_sphereCreate a 3D-looking glossy sphere with realistic lighting effects.
pinepaper_create_gridCreate a grid of lines on the canvas.
pinepaper_create_itemCreate an item on the PinePaper canvas.
pinepaper_create_letter_collageCreate stylized text with per-letter customization.
pinepaper_create_sceneCreate a complete scene with multiple items, relations, and animations in a single operation.
pinepaper_cutout_styleApply decorative cutout styles to image items (sticker effects, torn edges, etc.).
pinepaper_deformApply vertex deformation presets to items for organic motion effects.
pinepaper_delete_itemDelete a single item from the canvas by its registry ID.
pinepaper_diagnostic_report[Utility] Generate a diagnostic report for bug reporting.
pinepaper_diagram_modeControl the diagram mode for interactive editing.
pinepaper_execute_custom_codeExecute arbitrary JavaScript code in the PinePaper context.
pinepaper_execute_generatorExecute a background generator to create procedural patterns.
pinepaper_export_sceneExport the complete scene state including all items, relations, and settings.
pinepaper_export_svgExport the scene as animated SVG.
pinepaper_export_training_dataExport relation data as training pairs for LLM fine-tuning.
pinepaper_export_widgetExport current scene as a PineWidget (pp:PinePaper ontology JSON v0.4.3).
pinepaper_export_widget_htmlExport current scene as a self-contained HTML page with tree-shaken PineWidget runtime.
pinepaper_fontFont Studio control — single action-dispatched tool covering the full Studio API.
pinepaper_get_animatable_properties[Utility] Get animatable properties for each mask type.
pinepaper_get_available_easings[Utility] Get list of available easing functions for mask animations.
pinepaper_get_canvas_ontologyCapture the live canvas as compact pp: ontology triples + a structured item summary.
pinepaper_get_canvas_size[Utility] Get the current canvas dimensions.
pinepaper_get_diagram_shapes[Utility] Get a list of available diagram shapes with their properties.
pinepaper_get_items[Utility] Get all or filtered items from the canvas.
pinepaper_get_mask_animations[Utility] Get available mask animation presets.
pinepaper_get_mask_types[Utility] Get available mask shape types.
pinepaper_get_performance_metrics[Utility] Get execution performance metrics to identify bottlenecks and optimize workflows.
pinepaper_get_relation_stats[Utility] Get statistics about active relations in the scene.
pinepaper_historyUndo/redo and history state inspection.
pinepaper_image_filterApply GPU-accelerated image filters to raster items.
pinepaper_import_assetImport an SVG asset from search results or direct URL onto the canvas.
pinepaper_import_imageImport a raster image from a URL onto the canvas.
pinepaper_import_mermaidImport a Mermaid diagram source string and render it onto the canvas as native diagram shapes + connectors.
pinepaper_import_svgImport an SVG string or SVG from URL onto the canvas.
pinepaper_interactionAdd continuous physics behaviors and trigger interaction actions.
pinepaper_keyframe_animateApply keyframe-based animation with precise timing and property control.
pinepaper_lassoFreeform lasso selection for image items.
pinepaper_list_generators[Utility] Get a list of all available background generators with their parameters.
pinepaper_magicOntology-aware auto-animation and style remixing.
pinepaper_manage_scenesManage multiple saved scenes (canvas snapshots).
pinepaper_mapLoad a map and control its viewport.
pinepaper_map_animationAnimate map regions with keyframes or wave effects.
pinepaper_map_dataCSV / GeoJSON import-export and source-info introspection.
pinepaper_map_regionsHighlight, color, label, and select map regions.
pinepaper_measurementRulers, grid overlay, snap-to-grid, and dimension readout.
pinepaper_modify_itemModify an existing item's properties.
pinepaper_p5_drawExecute p5.js-style drawing code on the PinePaper canvas.
pinepaper_physicsRigid body physics simulation (Box2D/Planck.js).
pinepaper_play_timelineControl keyframe animation playback.
pinepaper_precompNested compositions — group items into reusable animated precomps.
pinepaper_queryQuery canvas items and spatial information.
pinepaper_query_ontologyQuery the PinePaper design knowledge graph — explore types, properties, edges, hierarchy, and patterns.
pinepaper_query_relations[Utility] Query relationships for an item.
pinepaper_refresh_pageRefresh the PinePaper Studio page in the browser.
pinepaper_register_custom_relationRegister a custom relation type with compute and apply functions.
pinepaper_register_itemRegister a Paper.js item created externally.
pinepaper_remove_connectorRemove a connector from the canvas.
pinepaper_remove_maskRemove mask from an item, restoring original appearance.
pinepaper_remove_relationRemove a relationship between items.
pinepaper_scene_playbackControl sequential scene chain playback — play saved scenes as a slideshow presentation.
pinepaper_search_assetsSearch for free SVG assets from open repositories (SVGRepo, OpenClipart, Iconify, FontAwesome).
pinepaper_selectionManage item selection on canvas.
pinepaper_set_background_colorSet the canvas background color.
pinepaper_set_canvas_sizeChange the canvas dimensions.
pinepaper_set_toolkitSwitch the active toolkit profile and/or verbosity level at runtime.
pinepaper_sprite_sheetGenerate, play, and export sprite sheets from skeleton poses.
pinepaper_tool_guideGet detailed guidance for PinePaper tools on demand.
pinepaper_transformTransform items: nudge position, flip, or change z-order.
pinepaper_update_connectorUpdate the style or label of an existing connector.
pinepaper_validate_designValidate and score a template definition against the PinePaper ontology.
Use tools/list to fetch the live list with full descriptions and input schemas for whichever profile your client has active.
Relation Types
Behavior-driven animation relationships between items:
| Relation | Description |
|---|---|
orbits | Circular motion around target |
follows | Smooth follow toward target |
attached_to | Fixed offset from target |
maintains_distance | Stay at fixed distance |
points_at | Rotate to face target |
mirrors | Mirror target position |
parallax | Depth-based movement |
bounds_to | Constrain within area |
animates | Property animation over time |
grows_from | Scale growth from target |
staggered_with | Sequential timing offset |
indicates | Arrow/pointer to target |
circumscribes | Fit around target bounds |
wave_through | Wave motion through items |
morphs_to | Shape morphing transition |
camera_follows | Camera tracks item |
camera_animates | Camera keyframe sequence |
part_of | Semantic parent-child grouping |
expresses | Facial/body expressions |
Platform Integrations
PinePaper Cloud Studio is an HTTP MCP server with OAuth 2.1 + PKCE auth. Any MCP-aware client auto-discovers the auth flow; for other tools complete the OAuth flow once and use the resulting access token.
Claude Desktop (Native MCP)
Claude Desktop 0.10+ has native MCP discovery support. See Quick Start above — no headers, no manual key handling.
Cursor IDE (MCP Extension)
Cursor's MCP integration auto-discovers OAuth too. Add the server URL in Settings → MCP → Add server and Cursor will open the consent page in your browser on first use.
ChatGPT (Custom GPT Actions)
Custom GPTs don't currently support OAuth 2.1 + PKCE auth flows. Two options:
- OAuth-aware GPT Action — set Authentication: OAuth in the Custom GPT builder, paste the endpoints from
/.well-known/oauth-authorization-server - Static-token fallback — complete the OAuth flow once via cURL (see manual flow above), copy the access token, paste it as a Bearer header. Refresh manually before the 1h expiry.
Any HTTP Client (after completing OAuth flow)
# cURL — assumes you already ran the OAuth flow and have $ACCESS_TOKEN
curl -X POST https://cloud.pinepaper.studio/mcp/v1 \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"1","method":"tools/list"}'
# Python — full client with refresh handling
import requests
def call_mcp(access_token, method, params=None):
res = requests.post(
"https://cloud.pinepaper.studio/mcp/v1",
headers={"Authorization": f"Bearer {access_token}"},
json={"jsonrpc": "2.0", "id": "1", "method": method, "params": params or {}}
)
if res.status_code == 401:
raise RuntimeError("Access token expired — call POST /oauth/token with refresh_token")
return res.json()
def refresh(client_id, refresh_token):
res = requests.post(
"https://cloud.pinepaper.studio/oauth/token",
data={
"grant_type": "refresh_token",
"client_id": client_id,
"refresh_token": refresh_token,
}
)
return res.json() # { access_token, refresh_token (new!), expires_in }
Supported Platforms
| Platform | Integration | Auth |
|---|---|---|
| Claude Desktop 0.10+ | Native MCP | Auto OAuth discovery |
| Cursor IDE | MCP extension | Auto OAuth discovery |
| ChatGPT | Custom GPT Actions | Manual OAuth or static token |
| Google Gemini | Function Calling | Manual OAuth or static token |
| Open WebUI | Function Calling | Manual OAuth or static token |
| LangChain | Custom Tools | Manual OAuth or static token |
Examples
Animated Text
"Create text 'HELLO' in red that pulses"
→ pinepaper_create_item + pinepaper_animate
Letter Collage
"Create a Wordle-style letter collage saying CANDY with neon colors"
→ pinepaper_create_letter_collage + pinepaper_animate_letter_collage
Flowchart Diagram
"Create a flowchart: Start → Process → Decision → End"
→ pinepaper_create_diagram_shape + pinepaper_connect + pinepaper_auto_layout
Solar System
"Create a sun at center, Earth orbiting it, Moon orbiting Earth"
→ pinepaper_create_item + pinepaper_add_relation (orbits)
World Choropleth Map
"Load a world map and color countries by population"
→ pinepaper_load_map + pinepaper_apply_data_colors
Animated Map
"Animate US states changing color in a wave pattern"
→ pinepaper_load_map + pinepaper_animate_map_wave
Camera Animation
"Zoom in on the title then pan across to the diagram"
→ pinepaper_camera_animate with keyframes
Particle Effects
"Add fire effect to the dragon and snow falling on the scene"
→ pinepaper_apply_effect (fire, snow)
Interactive Quiz
"Create a multiple choice quiz about world capitals"
→ pinepaper_create_quiz with questions and answers
Mask Reveals
"Reveal the title with an iris animation"
→ pinepaper_apply_animated_mask (iris preset)
Local Installation (Free)
The open-source MCP server provides the same tools as this cloud service. Test locally before paying for cloud access.
# Install globally
npm install -g @pinepaper.studio/mcp-server
# Or use npx directly in config:
{
"mcpServers": {
"pinepaper": {
"command": "npx",
"args": ["-y", "@pinepaper.studio/mcp-server"]
}
}
}
The cloud service is for users who:
- Want remote access without local installation
- Need hosted infrastructure
- Use AI clients that don't support local MCP servers