MCP Integration Guide

ShipKit exposes 30 MCP tools via a single HTTP endpoint. Connect your AI coding tool and control your SaaS operations through natural language.

Getting Your API Key

  1. Sign in to your ShipKit dashboard
  2. Go to Settings > API Keys
  3. Click Create API Key, give it a name
  4. Copy the key (shown only once) — it looks like sk_xxxxxxxxxxxxxxxx

Configuration

Claude Code / Cursor / Windsurf

Add to your project's .mcp.json:

{

"mcpServers": {

"shipkit": {

"type": "http",

"url": "https://your-shipkit-url/api/mcp",

"headers": {

"Authorization": "Bearer skyourapi_key"

}

}

}

}

Alternative (URL param, deprecated but supported):

{

"mcpServers": {

"shipkit": {

"type": "http",

"url": "https://your-shipkit-url/api/mcp?apikey=skyourapikey"

}

}

}

Authentication

All tools/call requests require a valid API key. The key is validated and usage is incremented on each call.

PlanMonthly MCP Calls
Free100
Pro2,000
Team10,000

MCP Tools Reference

Screenshot Tools

shipkitcreateproject

Create a new monitoring project.

ParameterTypeRequiredDescription
namestringYesProject name
base_urlstringYesBase URL of the website
Returns: Project object with id, name, baseurl, createdat.

shipkitaddconfig

Add a screenshot configuration to a project.

ParameterTypeRequiredDescription
project_idstringYesProject UUID
namestringYesConfig name
urlstringYesFull URL to capture
css_selectorstringNoCSS selector to capture a specific element
viewport_widthnumberNoViewport width in px (default: 1280)
viewport_heightnumberNoViewport height in px (default: 800)
waitdelaymsnumberNoWait time in ms after page load (default: 0)
Returns: Config object with id, name, url, and all settings.

shipkit_capture

Capture a screenshot, compare with previous, optionally run AI analysis.

ParameterTypeRequiredDescription
config_idstringYesScreenshot config UUID
Returns: Capture result with captureid, imageurl, diff, ai_analysis.

shipkit_compare

Compare two captures and return visual diff results.

ParameterTypeRequiredDescription
capturebeforeidstringYesUUID of the older capture
captureafteridstringYesUUID of the newer capture
Returns: Diff result with changepercentage, changedpixels, diffimageurl, ai_analysis.

shipkitgetcaptures

Get historical captures for a screenshot config.

ParameterTypeRequiredDescription
config_idstringYesScreenshot config UUID
limitnumberNoMax results (default: 20)
Returns: Array of capture objects ordered by most recent first.

AI Analysis Tools

shipkitanalyzechanges

AI analysis of visual changes between two screenshots.

ParameterTypeRequiredDescription
diff_idstringYesDiff UUID to analyze
Returns: { summary, severity, changes[], suggestions[] }

shipkitdiscoverpages

Crawl a website and find all important pages.

ParameterTypeRequiredDescription
urlstringYesBase URL to discover pages on
max_pagesnumberNoMaximum pages to discover (default: 20)
use_aibooleanNoUse AI to rank pages by importance (default: false)
Returns: Array of discovered pages with url, title, importance_score.

shipkitcheckfreshness

Check which screenshot configs have stale captures.

ParameterTypeRequiredDescription
project_idstringYesProject UUID
maxagehoursnumberNoStale threshold in hours (default: 24)
Returns: Array of configs with isstale, lastcapturedat, hourssince_capture.

Documentation Tools

shipkitgeneratedocs

Generate a complete documentation suite from a URL.

ParameterTypeRequiredDescription
urlstringYesURL of the product to generate docs for
product_namestringNoProduct name (auto-detected if omitted)
languagestringNoLanguage code (default: "en")
Returns: Generated doc object with id, sections[].

shipkitupdatedocs

Check for changes and update documentation accordingly.

ParameterTypeRequiredDescription
project_idstringYesProject UUID to check
Returns: Update report with changesdetected, sectionsupdated[].

shipkittranslatedocs

Translate generated documentation to another language.

ParameterTypeRequiredDescription
doc_idstringYesGenerated doc UUID
target_languagestringYesLanguage code (e.g. "zh", "ja", "es", "de")
Returns: Translated doc object with id, language, sections[].

Publishing Tools

shipkitgetembed_url

Get a permanent public URL that always shows the latest screenshot.

ParameterTypeRequiredDescription
config_idstringYesScreenshot config UUID
Returns: { embed_url, token }

shipkitpublishto_github

Publish docs to a GitHub repo as a pull request.

ParameterTypeRequiredDescription
doc_idstringYesGenerated doc UUID
repostringYesGitHub repo in "owner/repo" format
branchstringNoTarget branch (default: "main")
pathstringNoPath in repo for docs (default: "docs/")
Returns: { prurl, branchname, files_created }

shipkitpublishto_notion

Publish docs to a Notion workspace.

ParameterTypeRequiredDescription
doc_idstringYesGenerated doc UUID
parentpageidstringYesNotion parent page ID
Returns: { pageids[], notionurl }

shipkitpublishto_gitbook

Publish docs to a GitBook space.

ParameterTypeRequiredDescription
doc_idstringYesGenerated doc UUID
space_idstringYesGitBook space ID
Returns: { spaceurl, pagescreated }

SaaS Maintenance Tools

shipkitgeneratechangelog

Generate a changelog from GitHub commits.

ParameterTypeRequiredDescription
repostringYesGitHub repo in "owner/repo" format
fromstringYesStart date (ISO 8601) or git tag
tostringNoEnd date or git tag (default: now)
Returns: Structured changelog with entries[].

shipkitseoscan

Run an SEO analysis on a URL.

ParameterTypeRequiredDescription
urlstringYesURL to scan
Returns: SEO report with score, issues[], recommendations[].

shipkitstatuscheck

Check service health and availability.

Returns: { status, version, aienabled, billingenabled }

Account Tools

shipkit_usage

View current month usage stats.

Returns: { plan, capturesused, captureslimit, mcpcallsused, mcpcallslimit }

shipkit_projects

List all projects owned by the authenticated user.

Returns: Array of projects with id, name, configcount, lastcapture_at.

Launch & Promote Tools

shipkitoptimizelanding

Analyze a landing page and return structured data for optimization.

ParameterTypeRequiredDescription
urlstringYesLanding page URL
Returns: { headings[], ctas[], metatags, contentblocks[], performance_hints[] }

shipkitscanlegal_data

Scan a product page for data collection patterns to draft legal documents.

ParameterTypeRequiredDescription
urlstringYesProduct URL to scan
product_namestringYesProduct name
typestringYes"privacy" or "terms"
Returns: { forms[], cookies[], thirdpartyscripts[], datacollectionpatterns[] }

shipkitfetchph_data

Extract product data for Product Hunt launch materials.

ParameterTypeRequiredDescription
urlstringYesProduct URL
descriptionstringNoOptional product description for context
Returns: { productname, tagline, description, features[], screenshoturls[] }

shipkitfetchsocial_data

Get product info with platform-specific formatting guidelines.

ParameterTypeRequiredDescription
urlstringYesProduct URL
platformsstring[]YesPlatforms: twitter, linkedin, reddit, hackernews, indiehackers, v2ex, xiaohongshu
Returns: { productinfo, platforms: { [name]: { charlimit, tone, format, guidelines } } }

shipkitfetchcomparison_data

Fetch your product and competitor data for comparison content.

ParameterTypeRequiredDescription
urlstringYesYour product URL
competitorsstring[]YesList of competitor URLs
Returns: { your_product, competitors[] }

shipkitgetlaunch_calendar

Get a launch calendar template with a 4-week timeline.

ParameterTypeRequiredDescription
launch_datestringYesLaunch date (YYYY-MM-DD)
Returns: { platforms[], timeline[] }

Email & Support Tools

shipkitsearchdocs

Search hosted docs for building AI-powered support bots.

ParameterTypeRequiredDescription
site_idstringYesHosted site slug
questionstringYesUser question to search for
Returns: Array of { page_title, excerpt, path }.

shipkitgetwidget_code

Get embeddable JavaScript widget code for AI doc search on your website.

ParameterTypeRequiredDescription
site_idstringYesHosted site slug
Returns: { scripttag, widgethtml }

Common Scenarios

1. "Generate documentation for my website"

Tell Claude:

"Use ShipKit to generate docs for https://myapp.com"

Claude will call:

  1. shipkitdiscoverpages — find all important pages
  2. shipkitgeneratedocs — generate full documentation
  3. shipkitpublishto_github — publish as a PR to your repo

2. "Prepare my Product Hunt launch"

Tell Claude:

"I'm launching https://myapp.com on Product Hunt next Tuesday. Help me prepare."

Claude will call:

  1. shipkitfetchph_data — extract product info and screenshots
  2. shipkitgetlaunch_calendar — get a 4-week timeline
  3. shipkitfetchsocial_data — get guidelines for each platform

Then Claude writes your tagline, description, first comment, and social posts using the returned data.

3. "Monitor my product for visual changes"

Tell Claude:

"Set up screenshot monitoring for https://myapp.com — track the homepage, pricing page, and docs."

Claude will call:

  1. shipkitcreateproject — create a monitoring project
  2. shipkitaddconfig (x3) — add configs for each page
  3. shipkit_capture (x3) — take initial screenshots

4. "Write a Twitter launch post"

Tell Claude:

"Write a Twitter post announcing https://myapp.com"

Claude will call:

  1. shipkitfetchsocial_data with platforms: ["twitter"] — get product info + Twitter guidelines

Then Claude writes the post using the returned data and platform constraints.

5. "Check my landing page"

Tell Claude:

"Analyze my landing page at https://myapp.com and suggest improvements"

Claude will call:

  1. shipkitoptimizelanding — get structured page data
  2. shipkitseoscan — check SEO issues

Then Claude provides optimization suggestions based on the returned data.


Protocol Details

ShipKit implements MCP over HTTP using JSON-RPC 2.0.

Endpoint: POST /api/mcp Supported methods:
  • initialize — handshake, returns server info and capabilities
  • notifications/initialized — client acknowledgment
  • tools/list — returns all 30 tool definitions (no API key validation)
  • tools/call — execute a tool (requires valid API key, increments usage)
Rate limit: 60 requests/minute per IP. Example raw request:
curl -X POST https://your-shipkit-url/api/mcp \

-H "Content-Type: application/json" \

-H "Authorization: Bearer skyourapi_key" \

-d '{

"jsonrpc": "2.0",

"id": 1,

"method": "tools/call",

"params": {

"name": "shipkit_usage",

"arguments": {}

}

}'

Response:
{

"jsonrpc": "2.0",

"id": 1,

"result": {

"content": [

{

"type": "text",

"text": "{ \"plan\": \"pro\", \"capturesused\": 42, \"captureslimit\": 500 }"

}

]

}

}