Shipstar

Automated product marketing from your commits: generate, review, publish, and email changelogs, blog posts, and release notes over MCP (OAuth 2.1, hosted).

Documentation

MCP Overview

Use Shipstar's published content directly from LLM agents via the Model Context Protocol

Shipstar exposes its full pipeline as Model Context Protocol (MCP) tools so LLM agents — claude.ai, Claude Code, Claude Desktop, Cursor, Windsurf, custom agents, and anything else that speaks MCP — can generate marketing content from your commits, review and revise drafts, publish them, and send release emails, as well as read your published changelogs, blog posts, and knowledge base articles.

Same services, same guarantees as the dashboard — the tools call the identical review/publish/delivery code paths — surfaced as typed tools the model can call directly.

Endpoint

The MCP server is mounted on the main Shipstar backend using the Streamable HTTP transport.

POST https://mcp.shipstar.ai/mcp

Authentication

Two ways in:

OAuth 2.1 (recommended — what claude.ai uses). Add the endpoint as a custom connector and sign in; no token handling needed. Each authorization is scoped to one project, chosen on the consent screen. Full flow and protocol details: OAuth.

Static API token (for scripts and CI). Every dashboard API token works as a bearer token on /mcp — the same tokens that protect the V1 REST API. Create one at Settings → API Tokens (/dashboard/console); the token is bound to the project it was created in.

Authorization: Bearer YOUR_API_TOKEN

Requests without a token, or with an invalid/expired token, return 401 Unauthorized with a WWW-Authenticate challenge that lets OAuth-capable clients bootstrap automatically.

Connecting from claude.ai

Settings → Connectors → Add custom connector → enter https://mcp.shipstar.ai/mcpConnect → sign in and pick a project. See OAuth for the step-by-step.

Connecting from Claude Code

The quickest path is the official plugin, which bundles the server connection plus guided skills (/shipstar:announce-release, /shipstar:write-blog-post, and more):

/plugin marketplace add turbo-labs/shipstar-plugin
/plugin install shipstar@shipstar

Or add the server directly:

claude mcp add --transport http shipstar https://mcp.shipstar.ai/mcp

Either way, Claude Code runs the OAuth flow in your browser on first use. To pin a static token instead, append --header "Authorization: Bearer YOUR_API_TOKEN" to the claude mcp add form.

Connecting from Claude Desktop

Add the server to your claude_desktop_config.json, including a bearer token as a custom header:

{
  "mcpServers": {
    "shipstar": {
      "type": "http",
      "url": "https://mcp.shipstar.ai/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Restart Claude Desktop and the Shipstar tools will be available in any chat.

Connecting from Cursor / Windsurf

Both editors accept the same MCP server configuration. Add an entry with the URL above and the tools will appear in the agent sidebar.

Available Tools

Generation (kick off content from commits)

ToolDescription
generate_changelogGenerate a public changelog from recent commits
generate_blog_postGenerate a blog post (optionally steered by an idea)
generate_blog_post_ideasBrainstorm blog post angles (synchronous)
generate_feature_pageGenerate a marketing feature landing page
generate_kb_articlesGenerate a set of knowledge base articles
generate_release_notes_emailGenerate a release notes email
generate_twitter_threadGenerate an X (Twitter) thread
generate_linkedin_postGenerate a LinkedIn post

Generation tools (except generate_blog_post_ideas) return a pending content_id and run in the background — poll get_generation_status for completion.

Lifecycle (review, revise, approve, publish)

ToolDescription
get_generation_statusPoll a generation job's status
get_content_draftRead the full draft of a content record
update_contentRevise a draft's text and/or category
approve_contentApprove content for publication
publish_contentPublish completed content directly

Project & delivery

ToolDescription
get_project_contextDescribe the connection's project: repos, destinations, mailing lists
list_destinationsList connected delivery destinations
list_mailing_listsList mailing lists for release notes emails
send_release_emailSend a release notes email to mailing lists

Read (fetch published content)

ToolDescription
list_changelogsList the project's published changelogs, newest first
get_changelogFetch a single changelog by slug
list_blog_postsList the project's published blog posts, newest first
get_blog_postFetch a single blog post by slug
list_kb_article_setsList the project's published knowledge base article sets
get_kb_article_setFetch a single KB article set by slug

Use Cases

Point a support agent at `list_changelogs` / `get_changelog` so it can answer "what's new this week?" and cite the exact release that shipped a feature — without you having to copy release notes into a knowledge base. Let a coding agent (Cursor, Claude Code, Windsurf) pull your latest blog walkthroughs and KB articles on demand. The agent grounds its answers in your published guidance instead of hallucinating APIs. When drafting landing pages, ads, or email campaigns, have Claude fetch recent changelogs and blog posts to pull accurate product details, quotes, and screenshots from material you already shipped. Ask an agent to summarise the last N changelogs into a weekly or monthly update. The tool output is structured, so the model doesn't have to scrape your website. Expose `list_kb_article_sets` / `get_kb_article_set` to an internal agent so employees can ask "how do I X?" in Slack and get answers drawn from your published KB. Any agent framework that speaks MCP (LangGraph, Agent SDK, Mastra, custom) can pull Shipstar content as a read-only data source without you writing a bespoke REST client.

How it works under the hood

The MCP tools call directly into the same app.services.content layer that powers the V1 REST endpoints. That means:

  • One source of truth. Any bug fix or behaviour change in the content service automatically flows to both transports.
  • Only published content is returned. Drafts, pending items, and wrong-type rows are filtered out at the service layer.
  • Graceful skipping of invalid data. List endpoints skip rows whose stored JSON is malformed rather than failing the whole call.

If you need finer control (pagination, RSS feeds, custom filtering) or you're building a non-agent integration, use the V1 REST API directly.