Documentation

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 on their first credit purchase.

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:

  1. Hit POST /mcp/v1 → receive 401 with a WWW-Authenticate header pointing at our discovery URL
  2. Fetch /.well-known/oauth-authorization-server + /.well-known/oauth-protected-resource
  3. Register itself via POST /oauth/register (RFC 7591 Dynamic Client Registration)
  4. Open your browser to /oauth/authorize — you'll see a consent page showing the client name and requested scopes (mcp:read, mcp:write)
  5. Click Authorizemcp-remote receives the auth code, exchanges it for an access + refresh token via POST /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:

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

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:

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

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

Pricing & privacy

MCP Endpoint

Endpoint: POST https://cloud.pinepaper.studio/mcp/v1
Auth: 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).

EndpointMethodPurpose
/.well-known/oauth-authorization-serverGETRFC 8414 metadata: endpoints, scopes, grant types
/.well-known/oauth-protected-resourceGETRFC 9728 metadata: resource URL + authorization_servers
/.well-known/jwks.jsonGETRFC 7517 JWKS — ES256 public keys for offline token verification
/oauth/registerPOSTRFC 7591 Dynamic Client Registration
/oauth/authorizeGETAuthorization endpoint — PKCE S256 mandatory
/oauth/tokenPOSTToken endpoint — authorization_code + refresh_token grants
/oauth/revokePOSTRFC 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.

OperationCost
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 151 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.6.8+local on 2026-09-18.

Full — 151 tools

Every tool in the registry. Use when context budget allows and the workflow spans many domains (canvas + diagrams + maps + fonts).

pinepaper_add_filter
pinepaper_add_ports
pinepaper_add_relation
pinepaper_agent_analyze
pinepaper_agent_batch_execute
pinepaper_agent_end_job
pinepaper_agent_export
pinepaper_agent_reset
pinepaper_agent_start_job
pinepaper_analyze_design
pinepaper_animate
pinepaper_animate_letter_collage
pinepaper_apply_animated_mask
pinepaper_apply_custom_mask
pinepaper_apply_effect
pinepaper_apply_template
pinepaper_arrange
pinepaper_artboard
pinepaper_audio_beats
pinepaper_auto_layout
pinepaper_background
pinepaper_batch_create
pinepaper_batch_modify
pinepaper_brand_kit
pinepaper_browser_connect
pinepaper_browser_disconnect
pinepaper_browser_screenshot
pinepaper_browser_status
pinepaper_camera
pinepaper_camera_animate
pinepaper_camera_director
pinepaper_capture_frames
pinepaper_character
pinepaper_chroma_key
pinepaper_clear_canvas
pinepaper_comment
pinepaper_component
pinepaper_compose
pinepaper_connect
pinepaper_connect_ports
pinepaper_construction_sequence
pinepaper_create_chart
pinepaper_create_diagonal_stripes
pinepaper_create_diagram_shape
pinepaper_create_glossy_sphere
pinepaper_create_grid
pinepaper_create_item
pinepaper_create_letter_collage
pinepaper_create_scene
pinepaper_crop_image
pinepaper_cutout_style
pinepaper_deform
pinepaper_delete_item
pinepaper_design_medium
pinepaper_design_system
pinepaper_detect_objects
pinepaper_diagnostic_report
pinepaper_diagram_mode
pinepaper_equation_path
pinepaper_event
pinepaper_execute_custom_code
pinepaper_execute_generator
pinepaper_export_scene
pinepaper_export_svg
pinepaper_export_training_data
pinepaper_export_widget
pinepaper_export_widget_html
pinepaper_extract_object
pinepaper_flip
pinepaper_font
pinepaper_game
pinepaper_geometry
pinepaper_get_animatable_properties
pinepaper_get_available_easings
pinepaper_get_canvas_ontology
pinepaper_get_canvas_size
pinepaper_get_diagram_shapes
pinepaper_get_items
pinepaper_get_mask_animations
pinepaper_get_mask_types
pinepaper_get_performance_metrics
pinepaper_get_relation_stats
pinepaper_globe
pinepaper_group
pinepaper_history
pinepaper_image_filter
pinepaper_import_asset
pinepaper_import_image
pinepaper_import_layered_character
pinepaper_import_mermaid
pinepaper_import_motion_capture
pinepaper_import_svg
pinepaper_instantiate_ontology
pinepaper_interaction
pinepaper_interchange
pinepaper_keyframe_animate
pinepaper_lasso
pinepaper_lint_scene
pinepaper_list_generators
pinepaper_magic
pinepaper_manage_scenes
pinepaper_map
pinepaper_map_animation
pinepaper_map_data
pinepaper_map_regions
pinepaper_measurement
pinepaper_media
pinepaper_modify_item
pinepaper_motion
pinepaper_p5_draw
pinepaper_path
pinepaper_physics
pinepaper_play_timeline
pinepaper_precomp
pinepaper_provenance
pinepaper_query
pinepaper_query_capabilities
pinepaper_query_ontology
pinepaper_query_relations
pinepaper_refresh_page
pinepaper_register_custom_relation
pinepaper_register_item
pinepaper_remove_connector
pinepaper_remove_mask
pinepaper_remove_relation
pinepaper_rigging
pinepaper_scene_diff
pinepaper_scene_graph
pinepaper_scene_playback
pinepaper_search_assets
pinepaper_selection
pinepaper_sequence
pinepaper_set_background_color
pinepaper_set_canvas_size
pinepaper_set_toolkit
pinepaper_shatter_image
pinepaper_sound
pinepaper_sprite_sheet
pinepaper_stagger
pinepaper_stick
pinepaper_story
pinepaper_template_params
pinepaper_text_effect
pinepaper_text_style
pinepaper_tool_guide
pinepaper_transform
pinepaper_update_connector
pinepaper_validate
pinepaper_validate_design
pinepaper_validate_scene
pinepaper_world3d
Agent (default) — 142 tools

Default profile for general-purpose AI agents. Covers canvas, items, animation, relations, effects, exports — the common creative workflow.

pinepaper_add_ports
pinepaper_add_relation
pinepaper_agent_analyze
pinepaper_agent_batch_execute
pinepaper_agent_end_job
pinepaper_agent_export
pinepaper_agent_reset
pinepaper_agent_start_job
pinepaper_analyze_design
pinepaper_animate
pinepaper_apply_animated_mask
pinepaper_apply_custom_mask
pinepaper_apply_effect
pinepaper_apply_template
pinepaper_arrange
pinepaper_artboard
pinepaper_audio_beats
pinepaper_auto_layout
pinepaper_background
pinepaper_batch_create
pinepaper_batch_modify
pinepaper_brand_kit
pinepaper_browser_connect
pinepaper_browser_disconnect
pinepaper_browser_screenshot
pinepaper_browser_status
pinepaper_camera
pinepaper_camera_animate
pinepaper_camera_director
pinepaper_capture_frames
pinepaper_character
pinepaper_chroma_key
pinepaper_clear_canvas
pinepaper_comment
pinepaper_component
pinepaper_compose
pinepaper_connect
pinepaper_connect_ports
pinepaper_construction_sequence
pinepaper_create_chart
pinepaper_create_diagonal_stripes
pinepaper_create_diagram_shape
pinepaper_create_glossy_sphere
pinepaper_create_grid
pinepaper_create_item
pinepaper_create_scene
pinepaper_crop_image
pinepaper_cutout_style
pinepaper_deform
pinepaper_delete_item
pinepaper_design_medium
pinepaper_design_system
pinepaper_detect_objects
pinepaper_diagram_mode
pinepaper_equation_path
pinepaper_event
pinepaper_execute_generator
pinepaper_export_scene
pinepaper_export_svg
pinepaper_export_training_data
pinepaper_export_widget
pinepaper_export_widget_html
pinepaper_extract_object
pinepaper_flip
pinepaper_game
pinepaper_geometry
pinepaper_get_animatable_properties
pinepaper_get_available_easings
pinepaper_get_canvas_ontology
pinepaper_get_canvas_size
pinepaper_get_diagram_shapes
pinepaper_get_items
pinepaper_get_mask_animations
pinepaper_get_mask_types
pinepaper_get_relation_stats
pinepaper_globe
pinepaper_group
pinepaper_history
pinepaper_image_filter
pinepaper_import_asset
pinepaper_import_image
pinepaper_import_layered_character
pinepaper_import_mermaid
pinepaper_import_motion_capture
pinepaper_import_svg
pinepaper_instantiate_ontology
pinepaper_interaction
pinepaper_interchange
pinepaper_keyframe_animate
pinepaper_lasso
pinepaper_lint_scene
pinepaper_list_generators
pinepaper_magic
pinepaper_manage_scenes
pinepaper_map
pinepaper_map_animation
pinepaper_map_data
pinepaper_map_regions
pinepaper_measurement
pinepaper_media
pinepaper_modify_item
pinepaper_motion
pinepaper_p5_draw
pinepaper_path
pinepaper_physics
pinepaper_play_timeline
pinepaper_precomp
pinepaper_provenance
pinepaper_query
pinepaper_query_capabilities
pinepaper_query_ontology
pinepaper_query_relations
pinepaper_refresh_page
pinepaper_register_custom_relation
pinepaper_remove_connector
pinepaper_remove_mask
pinepaper_remove_relation
pinepaper_rigging
pinepaper_scene_diff
pinepaper_scene_graph
pinepaper_scene_playback
pinepaper_search_assets
pinepaper_selection
pinepaper_sequence
pinepaper_set_background_color
pinepaper_set_canvas_size
pinepaper_set_toolkit
pinepaper_shatter_image
pinepaper_sound
pinepaper_sprite_sheet
pinepaper_stagger
pinepaper_stick
pinepaper_story
pinepaper_template_params
pinepaper_text_effect
pinepaper_tool_guide
pinepaper_transform
pinepaper_update_connector
pinepaper_validate
pinepaper_validate_design
pinepaper_validate_scene
pinepaper_world3d
Diagram — 49 tools

Flowcharts, UML, network topology — diagram shapes, connectors, layout algorithms.

pinepaper_add_ports
pinepaper_agent_analyze
pinepaper_agent_batch_execute
pinepaper_agent_end_job
pinepaper_agent_export
pinepaper_agent_reset
pinepaper_agent_start_job
pinepaper_arrange
pinepaper_auto_layout
pinepaper_background
pinepaper_browser_connect
pinepaper_browser_disconnect
pinepaper_browser_screenshot
pinepaper_browser_status
pinepaper_capture_frames
pinepaper_clear_canvas
pinepaper_connect
pinepaper_connect_ports
pinepaper_create_diagonal_stripes
pinepaper_create_diagram_shape
pinepaper_create_glossy_sphere
pinepaper_create_grid
pinepaper_create_item
pinepaper_delete_item
pinepaper_diagram_mode
pinepaper_export_scene
pinepaper_export_svg
pinepaper_export_training_data
pinepaper_export_widget
pinepaper_export_widget_html
pinepaper_geometry
pinepaper_get_canvas_size
pinepaper_get_diagram_shapes
pinepaper_get_items
pinepaper_get_relation_stats
pinepaper_group
pinepaper_import_mermaid
pinepaper_interchange
pinepaper_modify_item
pinepaper_path
pinepaper_query
pinepaper_query_capabilities
pinepaper_refresh_page
pinepaper_remove_connector
pinepaper_set_background_color
pinepaper_set_canvas_size
pinepaper_set_toolkit
pinepaper_tool_guide
pinepaper_update_connector
Map — 34 tools

Geographic visualization — load maps, highlight regions, apply data colors, project, export GeoJSON.

pinepaper_agent_analyze
pinepaper_agent_batch_execute
pinepaper_agent_end_job
pinepaper_agent_export
pinepaper_agent_reset
pinepaper_agent_start_job
pinepaper_background
pinepaper_browser_connect
pinepaper_browser_disconnect
pinepaper_browser_screenshot
pinepaper_browser_status
pinepaper_capture_frames
pinepaper_clear_canvas
pinepaper_export_scene
pinepaper_export_svg
pinepaper_export_training_data
pinepaper_export_widget
pinepaper_export_widget_html
pinepaper_get_canvas_size
pinepaper_get_items
pinepaper_get_relation_stats
pinepaper_globe
pinepaper_interchange
pinepaper_map
pinepaper_map_animation
pinepaper_map_data
pinepaper_map_regions
pinepaper_query
pinepaper_query_capabilities
pinepaper_refresh_page
pinepaper_set_background_color
pinepaper_set_canvas_size
pinepaper_set_toolkit
pinepaper_tool_guide
Font Studio — 39 tools

Typography workflows — font import, glyph editing, OTF export.

pinepaper_agent_analyze
pinepaper_agent_batch_execute
pinepaper_agent_end_job
pinepaper_agent_export
pinepaper_agent_reset
pinepaper_agent_start_job
pinepaper_animate_letter_collage
pinepaper_arrange
pinepaper_background
pinepaper_browser_connect
pinepaper_browser_disconnect
pinepaper_browser_screenshot
pinepaper_browser_status
pinepaper_capture_frames
pinepaper_clear_canvas
pinepaper_create_diagonal_stripes
pinepaper_create_glossy_sphere
pinepaper_create_grid
pinepaper_create_item
pinepaper_create_letter_collage
pinepaper_delete_item
pinepaper_export_scene
pinepaper_export_svg
pinepaper_export_training_data
pinepaper_export_widget
pinepaper_export_widget_html
pinepaper_font
pinepaper_geometry
pinepaper_get_canvas_size
pinepaper_group
pinepaper_interchange
pinepaper_modify_item
pinepaper_path
pinepaper_refresh_page
pinepaper_set_background_color
pinepaper_set_canvas_size
pinepaper_set_toolkit
pinepaper_text_style
pinepaper_tool_guide
Minimal — 19 tools

Smallest viable surface for low-context models — basic create/modify/animate only. Pair with `pinepaper_tool_guide` for on-demand discovery.

pinepaper_agent_analyze
pinepaper_agent_batch_execute
pinepaper_agent_end_job
pinepaper_agent_export
pinepaper_agent_reset
pinepaper_agent_start_job
pinepaper_background
pinepaper_browser_connect
pinepaper_browser_disconnect
pinepaper_browser_screenshot
pinepaper_browser_status
pinepaper_clear_canvas
pinepaper_get_canvas_size
pinepaper_interchange
pinepaper_refresh_page
pinepaper_set_background_color
pinepaper_set_canvas_size
pinepaper_set_toolkit
pinepaper_tool_guide

All tools (alphabetical)

Show full registry — 151 tools
pinepaper_add_filter
Add a visual filter effect to the canvas.
pinepaper_add_ports
Add connection ports to an existing item.
pinepaper_add_relation
Create a behavior relationship between two items.
pinepaper_agent_analyze
Analyze canvas content to get export recommendations and content insights.
pinepaper_agent_batch_execute
Execute ALL operations in a single call for building animated scenes — canvas setup, backgrounds, items, animations, masks, effects, and playback.
pinepaper_agent_end_job
End the current agent job, get summary + screenshot for user validation.
pinepaper_agent_export
Smart export with automatic format detection and platform optimization.
pinepaper_agent_reset
Fast canvas reset without browser refresh.
pinepaper_agent_start_job
Start a new agent job for creating animations, videos, graphics, or any visual content.
pinepaper_analyze_design
Analyze a template or scene definition using the PinePaper Design Knowledge Graph.
pinepaper_animate
Apply a simple LOOP animation to an item.
pinepaper_animate_letter_collage
Apply animation to all letters in a collage with staggered timing.
pinepaper_apply_animated_mask
Apply an animated mask reveal to an item.
pinepaper_apply_custom_mask
Direct helper for applying custom keyframe-based masks.
pinepaper_apply_effect
Apply a visual effect to an item.
pinepaper_apply_template
Load a pre-built template design onto the canvas, or list available templates.
pinepaper_arrange
Change an item's stacking order (z-order) — which items draw on top of which.
pinepaper_artboard
Resize the artboard and control how items reflow when it changes.
pinepaper_audio_beats
Detect beats in audio and bake an item's animation onto them.
pinepaper_auto_layout
Automatically arrange diagram items using a layout algorithm.
pinepaper_background
Set, clear, or query the canvas background.
pinepaper_batch_create
Create multiple items at once with a single history save.
pinepaper_batch_modify
Modify multiple items at once with a single history save.
pinepaper_brand_kit
Apply a brand kit — colours, fonts and roles — across the scene.
pinepaper_browser_connect
Connect to PinePaper Studio in a browser.
pinepaper_browser_disconnect
Disconnect from the browser and close PinePaper Studio.
pinepaper_browser_screenshot
Take a screenshot of the current PinePaper canvas.
pinepaper_browser_status
Check the current browser connection status.
pinepaper_camera
Camera control: zoom, pan, move, reset, stop, get state.
pinepaper_camera_animate
Animate camera with keyframe-based zoom, pan, and 3D tilt sequence for cinematic effects.
pinepaper_camera_director
Direct a cinematic camera walkthrough of the scene from a high-level SHOT LIST.
pinepaper_capture_frames
Deterministically render the scene at a list of times and snapshot each frame (FxTool's app.captureFramesAt, S3).
pinepaper_character
Place a CHARACTER from the design graph and DIRECT it — no geometry, no bones, no poses.
pinepaper_chroma_key
Remove a background color from an imported image (green-screen style) — one shot, no interactive session.
pinepaper_clear_canvas
Clear all items from the canvas, removing everything including any welcome template items.
pinepaper_comment
Notes pinned to a place and a moment — review feedback on a scene.
pinepaper_component
Reusable components with per-instance overrides — a master and its instances.
pinepaper_compose
Arrange items into a NAMED COMPOSITION and film it — "here are four photos, lay them out nicely and give me a clip".
pinepaper_connect
Connect two items with a smart connector.
pinepaper_connect_ports
Connect two specific ports on items.
pinepaper_construction_sequence
Reveal a geometric figure step by step (FxTool's app.constructionSequence, Layer 3).
pinepaper_create_chart
Create and manage data visualizations on the canvas.
pinepaper_create_diagonal_stripes
Create a diagonal stripe pattern.
pinepaper_create_diagram_shape
Create a diagram shape on the canvas.
pinepaper_create_glossy_sphere
Create a 3D-looking glossy sphere with realistic lighting effects.
pinepaper_create_grid
Create a grid of lines on the canvas.
pinepaper_create_item
Create an item on the PinePaper canvas.
pinepaper_create_letter_collage
Create stylized text with per-letter customization.
pinepaper_create_scene
Create a complete scene with multiple items, relations, and animations in a single operation.
pinepaper_crop_image
Crop an imported image to a rectangle — one shot, no interactive session.
pinepaper_cutout_style
Apply decorative cutout styles to image items (sticker effects, torn edges, etc.).
pinepaper_deform
Apply vertex deformation presets to items for organic motion effects.
pinepaper_delete_item
Delete a single item from the canvas by its registry ID.
pinepaper_design_medium
The THIRD design axis: the MEDIUM — what physically makes the marks.
pinepaper_design_system
The design vocabulary, as data you can read — and eighteen styles that can build a scene.
pinepaper_detect_objects
Run on-device object detection (fully local — no upload) over an imported image and either draw labeled boxes or promote each detection to a design node.
pinepaper_diagnostic_report
[Utility] Generate a diagnostic report for bug reporting.
pinepaper_diagram_mode
Control the diagram mode for interactive editing.
pinepaper_equation_path
Create a path ITEM from a math equation (FxTool's app.createEquationPath, Expression IR — S10 B5).
pinepaper_event
Manage the pp:event channel — the backbone of EVENT-DRIVEN SCENE CHAINS (FxTool S11).
pinepaper_execute_custom_code
Execute arbitrary JavaScript code in the PinePaper context.
pinepaper_execute_generator
Execute a background generator to create procedural patterns.
pinepaper_export_scene
Export the complete scene state including all items, relations, and settings.
pinepaper_export_svg
Export the scene as animated SVG.
pinepaper_export_training_data
Export relation data as training pairs for LLM fine-tuning.
pinepaper_export_widget
Export current scene as a PineWidget (pp:PinePaper ontology JSON v0.4.3).
pinepaper_export_widget_html
Export current scene as a self-contained HTML page with tree-shaken PineWidget runtime.
pinepaper_extract_object
Detect objects in an imported image and crop the best match into a NEW item — e.g.
pinepaper_flip
Animate a layout change WITHOUT describing the motion.
pinepaper_font
Font Studio control — single action-dispatched tool covering the full Studio API.
pinepaper_game
GAME-LOGIC primitives as pure computation: A* pathfinding and tilemap boards.
pinepaper_geometry
Run an exact geometric construction (FxTool's app.geometry library) and optionally create a canvas item from the result.
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_ontology
Capture 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_globe
Turn a loaded map into a spinning 3D globe and swing it on a cinematic world tour.
pinepaper_group
Combine several items into ONE entity that selects, drags, and animates as a single unit — or ungroup one back into loose items.
pinepaper_history
Undo/redo and history state inspection.
pinepaper_image_filter
Apply GPU-accelerated image filters to raster items.
pinepaper_import_asset
Import an SVG asset from search results or direct URL onto the canvas.
pinepaper_import_image
Import a raster image from a URL onto the canvas.
pinepaper_import_layered_character
Land a DECOMPOSED character illustration as one Group of role-bound parts — eyes that blink, a mouth that talks, with ZERO further wiring.
pinepaper_import_mermaid
Import a Mermaid diagram source string and render it onto the canvas as native diagram shapes + connectors.
pinepaper_import_motion_capture
Import a BVH motion-capture clip (CMU, Mixamo) as an animated skeleton, or retarget one onto a rig that already exists.
pinepaper_import_svg
Import an SVG string or SVG from URL onto the canvas.
pinepaper_instantiate_ontology
Compile a design ONTOLOGY (a pp:-namespaced JSON-LD graph of typed nodes + structural edges) into a real scene — the reverse of scene→graph extraction (FxTool S12-E3).
pinepaper_interaction
Add continuous physics behaviors and trigger interaction actions.
pinepaper_interchange
The formats other tools read and write — Lottie, dotLottie, GLB, BVH, PNG sequence.
pinepaper_keyframe_animate
Apply keyframe-based animation with precise timing and property control.
pinepaper_lasso
Freeform lasso selection for image items.
pinepaper_lint_scene
Audit the LIVE scene's relational structure (FxTool S12-E2) — read-only, nothing is changed.
pinepaper_list_generators
[Utility] Get a list of all available background generators with their parameters.
pinepaper_magic
Ontology-aware auto-animation and style remixing.
pinepaper_manage_scenes
Manage multiple saved scenes (canvas snapshots).
pinepaper_map
Load a map and control its viewport.
pinepaper_map_animation
Animate map regions with keyframes or wave effects.
pinepaper_map_data
CSV / GeoJSON import-export and source-info introspection.
pinepaper_map_regions
Highlight, color, label, and select map regions.
pinepaper_measurement
Rulers, grid overlay, snap-to-grid, and dimension readout.
pinepaper_media
Bring VIDEO and AUDIO onto the canvas from a URL, and control playback.
pinepaper_modify_item
Modify an existing item's properties.
pinepaper_motion
The generators' Animation knob, pointed at anything — the same motion engine every generator's own animation runs on, reachable for any group or list of items.
pinepaper_p5_draw
Execute p5.js-style drawing code on the PinePaper canvas.
pinepaper_path
Destructive path operations — the ones that REPLACE or ADD items rather than restyling them.
pinepaper_physics
Rigid body physics simulation (Box2D/Planck.js).
pinepaper_play_timeline
Control keyframe animation playback.
pinepaper_precomp
Nested compositions — group items into reusable animated precomps.
pinepaper_provenance
Where an item came from and what depends on it.
pinepaper_query
Query canvas items and spatial information.
pinepaper_query_capabilities
Discover and match capabilities across the engine — text styles, character-level text effects, generators, vertex deforms, and behavioral relations.
pinepaper_query_ontology
Query the PinePaper design knowledge graph — explore types, properties, edges, hierarchy, and patterns.
pinepaper_query_relations
[Utility] Query relationships for an item.
pinepaper_refresh_page
Refresh the PinePaper Studio page in the browser.
pinepaper_register_custom_relation
Register a custom relation type with compute and apply functions.
pinepaper_register_item
Register a Paper.js item created externally.
pinepaper_remove_connector
Remove a connector from the canvas.
pinepaper_remove_mask
Remove mask from an item, restoring original appearance.
pinepaper_remove_relation
Remove a relationship between items.
pinepaper_rigging
Rig and animate with SKELETONS — bones, IK chains, and pose keyframes (FxTool RiggingSystem).
pinepaper_scene_diff
What changed between two states of the scene — added, removed and modified items.
pinepaper_scene_graph
Create an interactive multi-node story or quiz card graph.
pinepaper_scene_playback
Control sequential scene chain playback — play saved scenes as a slideshow presentation.
pinepaper_search_assets
Search for free SVG assets from open repositories (SVGRepo, OpenClipart, Iconify, FontAwesome).
pinepaper_selection
Manage item selection on canvas.
pinepaper_sequence
Work out WHEN clips start, said relative to each other instead of in absolute seconds.
pinepaper_set_background_color
Set the canvas background color.
pinepaper_set_canvas_size
Change the canvas dimensions.
pinepaper_set_toolkit
Switch the active toolkit profile and/or verbosity level at runtime.
pinepaper_shatter_image
Split a raster into a GRID OF TILES — the primitive under every "photo breaks apart / assembles from pieces" effect.
pinepaper_sound
Synthesis — and the drawing that is the same object.
pinepaper_sprite_sheet
Generate, play, and export sprite sheets from skeleton poses.
pinepaper_stagger
Shape a delay across many items.
pinepaper_stick
The vendored stick-figure kit — a rigged figure posed, walking, travelling, holding a prop, with a garment and hair, plus the set it stands on and among.
pinepaper_story
A piece of prose becomes a scene.
pinepaper_template_params
Templates that take typed inputs — the same scene rebuilt for your text and colours.
pinepaper_text_effect
Animate text CHARACTER BY CHARACTER — 37 effects (terminaltexteffects' vocabulary, reimplemented from source).
pinepaper_text_style
Display TEXT STYLES and variable-font axes — the stacked-layer titles a fill+stroke+shadow cannot make, and weight/width/slant as animatable properties.
pinepaper_tool_guide
Get detailed guidance for PinePaper tools on demand.
pinepaper_transform
Transform items: fit to the canvas, nudge position, flip, or change z-order.
pinepaper_update_connector
Update the style or label of an existing connector.
pinepaper_validate
Semantically validate the LIVE scene (or a proposed mutation before you apply it) and get back STRUCTURED diagnostics — not just pass/fail.
pinepaper_validate_design
Validate and score a template definition against the PinePaper ontology.
pinepaper_validate_scene
Audit the LIVE canvas with FxTool's OntologyValidator and get structured, actionable diagnostics instead of console warnings.
pinepaper_world3d
A real 3D WORLD under the canvas — depth-buffered terrain, sky, sun shadows, an addressable actor stage and a directed camera.

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:

RelationDescription
orbitsCircular motion around target
followsSmooth follow toward target
attached_toFixed offset from target
maintains_distanceStay at fixed distance
points_atRotate to face target
mirrorsMirror target position
parallaxDepth-based movement
bounds_toConstrain within area
animatesProperty animation over time
grows_fromScale growth from target
staggered_withSequential timing offset
indicatesArrow/pointer to target
circumscribesFit around target bounds
wave_throughWave motion through items
morphs_toShape morphing transition
camera_followsCamera tracks item
camera_animatesCamera keyframe sequence
part_ofSemantic parent-child grouping
expressesFacial/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:

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

PlatformIntegrationAuth
Claude Desktop 0.10+Native MCPAuto OAuth discovery
Cursor IDEMCP extensionAuto OAuth discovery
ChatGPTCustom GPT ActionsManual OAuth or static token
Google GeminiFunction CallingManual OAuth or static token
Open WebUIFunction CallingManual OAuth or static token
LangChainCustom ToolsManual 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)

Try the tools locally first!
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:

View on GitHub →