# PinePaper Studio MCP server

> Enables AI assistants to create and animate vector graphics, diagrams, and data visualizations using 178 specialized tools.

- Repository: https://github.com/pinepaper/mcp-server
- Page: https://hostedmcp.org/servers/pinepaper/mcp-server
- Transport: stdio
- Stars: 6
- License: MIT

## Install

### Claude Code

```sh
claude mcp add mcp-server -- npx -y @pinepaper.studio/mcp-server
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@pinepaper.studio/mcp-server"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@pinepaper.studio/mcp-server"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"mcp-server","type":"stdio","command":"npx","args":["-y","@pinepaper.studio/mcp-server"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@pinepaper.studio/mcp-server"
      ]
    }
  }
}
```

### Codex

```sh
codex mcp add mcp-server -- npx -y @pinepaper.studio/mcp-server
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.mcp-server]
command = "npx"
args = ["-y", "@pinepaper.studio/mcp-server"]
```

### Gemini CLI

```sh
gemini mcp add -s user mcp-server npx -- -y @pinepaper.studio/mcp-server
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@pinepaper.studio/mcp-server"
      ]
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `PINEPAPER_ALLOW_CODE` | no | no |  |
| `PINEPAPER_ALLOW_LOCAL_FILES` | no | no |  |
| `PINEPAPER_EXECUTION_MODE` | no | no |  |
| `PINEPAPER_LOCALE` | no | no |  |
| `PINEPAPER_METRICS_ENABLED` | no | no |  |
| `PINEPAPER_METRICS_RETENTION` | no | no |  |

## Tools (178)

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

## FAQ

### Does the server include FFmpeg for video exports?

No, the MCP server does not include or install FFmpeg. You must install it yourself if you need to encode specific formats like MP4 or ProRes.

### Can I run the server without a browser installed?

Yes, you can use a code-only execution mode that does not require Chrome or a 320 MB download by setting the PINEPAPER_EXECUTION_MODE to 'code'.

### How do I enable the agent to run custom JavaScript code?

You must manually enable it by setting the PINEPAPER_ALLOW_CODE environment variable to 1, as it is off by default for security.
