shipshots-mcp
v0.11.0
Published
MCP server for Shipshots — create app store assets, preview videos, and paid-social campaign creative with your AI assistant
Downloads
1,609
Maintainers
Readme
Shipshots MCP Server
shipshots-mcp lets MCP-compatible agents create and improve Shipshots projects through the Shipshots API.
Agents can use it to build App Store screenshots, Play Store screenshots, social carousels, paid ads, launch graphics, and preview/export assets while the user keeps final control in the Shipshots web editor.
Quick Setup
npx shipshots-mcp init --token sb_your_token_hereGet a token from Shipshots at:
Dashboard -> Setup MCPor:
Dashboard -> Settings -> MCP TokensSetup Options
npx shipshots-mcp init --token sb_... --client claude-code
npx shipshots-mcp init --token sb_... --client claude-desktop
npx shipshots-mcp init --token sb_... --client cursor
npx shipshots-mcp init --token sb_... --client stdout
npx shipshots-mcp init --token sb_... --url http://localhost:3000Use --url http://localhost:3000 for local development.
Manual MCP Config
{
"mcpServers": {
"shipshots": {
"command": "npx",
"args": ["-y", "shipshots-mcp"],
"env": {
"SHIPSHOTS_API_URL": "https://shipshots.app",
"SHIPSHOTS_API_TOKEN": "sb_your_token_here"
}
}
}
}Config locations vary by client:
- Claude Code:
.mcp.jsonin the current project - Claude Desktop macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop Windows:
%APPDATA%/Claude/claude_desktop_config.json - Cursor:
.cursor/mcp.json
Local Development
Start the app and render worker from the repository root:
make localThen point the MCP server at the local app:
{
"mcpServers": {
"shipshots_local": {
"command": "node",
"args": ["/absolute/path/to/screenshotbuilder/packages/mcp/dist/index.js"],
"env": {
"SHIPSHOTS_API_URL": "http://localhost:3000",
"SHIPSHOTS_API_TOKEN": "sb_local_user_token"
}
}
}
}Build the MCP package after code changes:
cd packages/mcp
pnpm run build
pnpm testWhen both local and production MCP servers are configured, ask the agent to call start_design_workflow or get_server_info first. The response identifies whether the server writes to local development, production, or a custom API.
Recommended Agent Workflow
For new marketing work, agents should start with the workflow tools rather than jumping directly into primitive layer calls:
start_design_workflowplan_marketing_campaignsuggest_creative_directionscreate_marketing_projectorset_marketing_mode- Layer/component creation and screenshot upload
run_quality_passaudit_marketing_quality- Thumbnail or screen preview
- Export or hand off the editor URL
This keeps the asset mode-aware. A social carousel, paid ad, and App Store screenshot set should not be judged by the same panel-count and CTA rules.
Marketing Modes
| Mode | Panel range | Device required | Notes |
| --- | ---: | --- | --- |
| app_store | 5-10 | Yes | App Store screenshot arc |
| play_store | 2-8 | Yes | Google Play screenshot arc |
| social_carousel | 3-10 | No | Swipeable social/LinkedIn/Instagram carousel |
| paid_ad | 1-3 | No | Claim, proof, CTA |
| launch_graphic | 1-5 | No | Product launch or announcement graphics |
Campaign metadata is stored on project.campaign. Screen roles are stored on screen.marketingRole.
Tool Groups
Workflow and Marketing
start_design_workflow- returns server target, supported modes, guardrails, and current project contextset_marketing_mode- persists campaign metadata on an existing projectplan_marketing_campaign- suggests panel roles and copy structuresuggest_creative_directions- returns creative directions such as safe store, bold carousel, or premium editorialcreate_marketing_project- creates a generic mode-aware project with starter screens and optional screenshotsaudit_marketing_quality- runs mode-aware marketing review plus layout quality context
Project Management
create_projectget_projectdelete_projectlist_projectslist_templatesget_project_urlget_server_info
Screen Management
add_screenupdate_screenremove_screenduplicate_screenconnect_screensreorder_screens
Layer Management
add_text_layeradd_device_frame_layeradd_image_layeradd_shape_layeradd_badge_layeradd_arrow_layerupdate_layerremove_layerduplicate_layermove_layerreorder_layersalign_layeralign_layersupload_screenshot
Grouped Marketing Components
These tools create flat shape+text layers with shared component metadata:
add_button_componentadd_pill_componentadd_callout_componentadd_proof_chip_componentadd_rating_componentadd_feature_tag_componentupdate_componentremove_component
The validator understands same-component overlap, so text sitting on a button or pill is not treated like accidental overlap.
Layout, Quality, and Validation
apply_layoutvalidate_screenrun_quality_pass
run_quality_pass has two modes:
- Check mode reports issues without changing the project.
- Fix mode applies deterministic geometry and contrast fixes only.
The quality pass checks clipping, text/device overlap, poor spacing, low contrast, and connected-strip bounds. It understands intentional carousel bleed.
Install Campaigns (Admin Dogfood)
plan_install_campaignupload_campaign_assetsave_install_campaignrender_campaign_packget_campaignget_campaign_packrecord_campaign_result
The install-campaign workflow turns portrait app recordings into a fixed pack of English and Thai TikTok/Meta creative: three concepts, two hooks each, a 9:16 narrated video and dedicated 4:5 and 1:1 posters per variant. Rendering is asynchronous; poll with get_campaign and retrieve the private ZIP with get_campaign_pack.
Batch Operations
batch_add_layersbatch_update_layersbatch_remove_layers
Video
update_video_configlist_video_presets
Export and Preview
get_screen_previewget_strip_previewget_thumbnail_previewget_contact_sheet_previewexport_screenshotexport_marketing_bundle
Preview tools accept a scale where supported. Thumbnail-scale previews are useful for iteration because store screenshots and social carousels often fail at small sizes before they fail at full size.
get_contact_sheet_preview returns ordered thumbnail image outputs through MCP. It is not currently a single stitched image.
export_marketing_bundle returns MCP image outputs with suggested filenames. It is not currently a ZIP download from MCP.
Design Data
list_fontslist_paletteslist_gradients
Supported Export Sizes
App Store
| Display | Size | | --- | --- | | iPhone 6.9" | 1260 x 2736 | | iPhone 6.5" | 1242 x 2688 | | iPhone 6.3" | 1206 x 2622 | | iPhone 6.1" | 1170 x 2532 | | iPhone 5.5" | 1242 x 2208 | | iPad 13" | 2064 x 2752 | | iPad 12.9" | 2048 x 2732 | | iPad 11" | 1668 x 2388 |
Google Play
| Display | Size | | --- | --- | | Android Phone | 1080 x 1920 | | Android Pixel | 1080 x 2340 | | Android Galaxy | 1440 x 3200 | | Android 7" Tablet | 1200 x 1920 |
Social and Ads
| Output | Size | | --- | --- | | Social Square | 1080 x 1080 | | Social Portrait | 1080 x 1350 | | Social Story | 1080 x 1920 | | Ad Square | 1080 x 1080 | | Ad Story | 1080 x 1920 |
Example Prompts
Use the local Shipshots MCP server only. Call start_design_workflow first and confirm the target is local.Create a 4-panel social carousel for this app. Plan the arc, suggest creative directions, create the project, run the quality pass, audit it as social_carousel, and show thumbnail previews.Create an App Store screenshot set from these real screenshots. Use app_store mode, make a 5-panel hook/feature/proof/CTA arc, run quality fixes only if deterministic, and report remaining issues.Audit this project as paid_ad, not app_store. Tell me what is weak before changing anything.Environment Variables
| Variable | Required | Description |
| --- | --- | --- |
| SHIPSHOTS_API_URL | Yes | Shipshots instance URL, for example https://shipshots.app or http://localhost:3000 |
| SHIPSHOTS_API_TOKEN | Yes | User API token from the dashboard |
Notes and Limits
- Free accounts are limited by the app's plan rules. Pro removes project and preview limits.
- Real app screenshots are still required for final App Store-grade output.
- The generic campaign workflow intentionally avoids hyper-specific app-vertical templates.
- Preview rendering depends on the app and render worker being reachable from the configured API.
License
MIT
