Kickstart

MCP home · General MCP · Video MCP · Raw Markdown

General MCP

Project data, App Store Connect, website editing, reviews, revenue, analytics, and more.

For video-specific automation, including .ksvideo creation, narration, 3D devices, and movie export, use the Video MCP documentation.

What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants interact with external tools. Kickstart includes a bundled MCP helper that exposes project data - revenue, reviews, TestFlight builds, competitors, websites, and more - so AI tools can read and act on it directly.

This means you can ask Claude, Codex, Gemini, or another MCP client questions such as "How is my app performing this month?" or "Create a new subscription group", and they can use your real Kickstart data to answer.

How to Set Up

Kickstart ships with a KickstartMCP command-line helper bundled inside the app. MCP clients invoke it directly over stdio - no server to start, no port to configure.

  1. Make sure Kickstart is installed in /Applications.
  2. Open Kickstart at least once so your data is populated.
  3. Add the following to your MCP client's configuration.

Claude Code

claude mcp add kickstart -- /Applications/Kickstart.app/Contents/Helpers/KickstartMCP

Codex

codex mcp add kickstart -- /Applications/Kickstart.app/Contents/Helpers/KickstartMCP

Cursor, Gemini, and Other MCP Clients

Point your MCP client at the helper binary:

/Applications/Kickstart.app/Contents/Helpers/KickstartMCP

After adding the configuration, restart your AI tool so it picks up the new MCP server. You can also find the path in Kickstart's Settings > General.

Protocol Endpoints

Kickstart uses stdio transport with JSON-RPC 2.0 and supports MCP protocol version 2024-11-05.

Kickstart accepts both single JSON-RPC requests and batch arrays. Operational methods other than ping require the full initialize -> notifications/initialized handshake first.

Raw Client Flow

Most users should let Claude, Codex, Cursor, Gemini, or another MCP client handle this automatically. If you are building a client yourself, this is the expected request sequence:

{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}

Usage Notes

Agent Operating Loop

A capable agent should treat Kickstart as a stateful source of truth. Do not guess IDs, indexes, or tool availability; discover them, call the narrowest tool that does the job, then read back the result.

  1. Start every session with initialize, notifications/initialized, then tools/list. Hide or skip workflows whose tools are not listed.
  2. Call list_projects before project-specific work and use the returned project name when calling other tools. Matching is case-insensitive, but exact names make logs easier to audit.
  3. Read before writing. For example, call get_website before changing website sections, list_subscription_groups before subscription edits, and get_testflight_summary before build-localization work.
  4. Preserve IDs and indexes returned by read tools. App Store Connect IDs, Search Ads campaign IDs, TestFlight IDs, section indexes, item indexes, and blog post indexes should be copied from Kickstart responses.
  5. After a mutating call, read back the same resource if another call depends on the updated state. This avoids stale indexes after section reordering, deletion, or item insertion.
  6. Prefer small, reversible operations. Destructive tools such as delete_project, delete_subscription, delete_event, and remove_blog_post should only be used when the user explicitly asks for that outcome.
  7. Summarize important tool results to the user, especially public App Store actions such as review responses, in-app events, nominations, subscriptions, and offer-code generation.

Response Handling

Kickstart returns normal MCP responses. The actual tool payload is usually JSON encoded as text inside the first content item, so external clients should parse that text before deciding what happened.

Successful tool response

Look for result.content[0].type == "text", then parse result.content[0].text as JSON. Most read tools return arrays or objects with fields such as projects, tasks, reviews, sections, items, or summary. Mutating tools usually include a status message and enough updated state to plan the next call.

Tool-level errors

If result.isError is true, the MCP call reached Kickstart but the requested operation failed. Show the error to the user, then recover using a read call when possible. Common causes include missing projects, missing App Store Connect credentials, unavailable Pro-only tools, invalid website indexes, App Store API failures, or a tool schema mismatch.

JSON-RPC errors

If the top-level response contains error, the client sent an invalid MCP request, called an unknown method, skipped initialization, passed malformed JSON, or used an unknown tool name. Re-run tools/list and rebuild the call using the schema returned there.

Common General Workflows

Analyze an app launch

  1. Call list_projects, then get_project for the selected app.
  2. If the user wants fresh upstream data, call list_refresh_scopes, then refresh_project_data for the relevant available scopes before reading summaries.
  3. Call get_todays_agenda, get_task_stats, and list_tasks to assess operational work.
  4. Call get_revenue_summary, get_app_analytics, get_review_stats, and get_reviews when App Store Connect data is configured.
  5. Call get_optimization_scores, get_optimization_suggestions, list_localizations, and get_localization_stats for App Store listing quality.
  6. Return a concise written analysis with concrete next actions, and only mutate data if the user requested changes.

Edit a generated website

  1. Call get_website and keep the returned sectionIndex, itemIndex, and blogPostIndex values.
  2. Call list_website_section_types if you need to add a new section, because section type names and field names must match Kickstart's schema.
  3. Use add_website_section, update_website_section, add_section_items, remove_section_item, or reorder_website_sections for page content.
  4. Use add_blog_post, update_blog_post, or remove_blog_post for blog work.
  5. Use update_website_settings for site-level styling, navigation, footer, custom domain, analytics, and privacy settings.
  6. Call get_website again after structural changes so follow-up calls use fresh indexes.

Work with App Store Connect data

  1. Call the relevant list or summary tool first: get_testflight_summary, list_events, list_nominations, list_subscription_groups, list_offer_codes, or get_reviews.
  2. Copy exact IDs from the response into update, delete, submit, response, localization, and generation calls.
  3. For public-facing text, write complete production copy in the tool call. Do not rely on Kickstart to expand placeholders.
  4. After any create, update, submit, or delete call, read the same resource again so the user can verify the resulting App Store state.

Research competitors and keywords

  1. Use search_apps to find App Store IDs, then add_competitor to track apps selected by the user.
  2. Use list_competitors, get_competitor_analysis, get_search_rankings, and check_keyword_rankings for analysis.
  3. Use track_keyword and remove_tracked_keyword to maintain the project's tracked keyword set.

Raw Tool Call Examples

These examples are intentionally plain JSON-RPC so any client, including Gemini, Claude, Codex, Cursor, or a custom script, can reproduce them. Always compare with tools/list in the running app before sending production mutations.

List projects

{"jsonrpc":"2.0","id":10,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}

Create a project

{"jsonrpc":"2.0","id":11,"method":"tools/call","params":{"name":"create_project","arguments":{"name":"Example App","tagline":"Plan, launch, and improve faster.","description":"A focused planning app for indie developers.","launchDate":"2026-06-01"}}}

Read and update website settings

{"jsonrpc":"2.0","id":12,"method":"tools/call","params":{"name":"get_website","arguments":{"projectName":"Example App"}}}
{"jsonrpc":"2.0","id":13,"method":"tools/call","params":{"name":"update_website_settings","arguments":{"projectName":"Example App","siteName":"Example App","customDomain":"www.example.com","primaryColor":"#34C759","colorScheme":"dark","headerBrandName":"Example App","footerTagline":"Build better launches."}}}

Respond to a review

{"jsonrpc":"2.0","id":14,"method":"tools/call","params":{"name":"get_reviews","arguments":{"projectName":"Example App","limit":10}}}
{"jsonrpc":"2.0","id":15,"method":"tools/call","params":{"name":"respond_to_review","arguments":{"projectName":"Example App","reviewID":"REVIEW_ID_FROM_GET_REVIEWS","responseBody":"Thanks for the thoughtful feedback. We have passed this to the team and will keep improving the experience."}}}

Recovery Notes

Available General Tools

The general MCP surface provides 114 tools across 20 non-video categories. Every tool that accepts a projectName parameter uses case-insensitive matching.

Projects (5)

Project Data Refresh (2)

Tasks (5)

Journal (4)

Revenue and Subscriptions (2)

App Analytics (1)

Reviews (4)

TestFlight (8)

Optimization (2)

Localizations (2)

In-App Events (4)

Editorial Nominations (5)

Competitors (10)

Subscription Management (5)

Offer Codes (4)

Release Checklists (5)

Press Kit (1)

Website Builder (13)

Apple Ads (31)

Achievements (1)

Requirements