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/mcp → Connect → 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)
| Tool | Description |
|---|---|
generate_changelog | Generate a public changelog from recent commits |
generate_blog_post | Generate a blog post (optionally steered by an idea) |
generate_blog_post_ideas | Brainstorm blog post angles (synchronous) |
generate_feature_page | Generate a marketing feature landing page |
generate_kb_articles | Generate a set of knowledge base articles |
generate_release_notes_email | Generate a release notes email |
generate_twitter_thread | Generate an X (Twitter) thread |
generate_linkedin_post | Generate 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)
| Tool | Description |
|---|---|
get_generation_status | Poll a generation job's status |
get_content_draft | Read the full draft of a content record |
update_content | Revise a draft's text and/or category |
approve_content | Approve content for publication |
publish_content | Publish completed content directly |
Project & delivery
| Tool | Description |
|---|---|
get_project_context | Describe the connection's project: repos, destinations, mailing lists |
list_destinations | List connected delivery destinations |
list_mailing_lists | List mailing lists for release notes emails |
send_release_email | Send a release notes email to mailing lists |
Read (fetch published content)
| Tool | Description |
|---|---|
list_changelogs | List the project's published changelogs, newest first |
get_changelog | Fetch a single changelog by slug |
list_blog_posts | List the project's published blog posts, newest first |
get_blog_post | Fetch a single blog post by slug |
list_kb_article_sets | List the project's published knowledge base article sets |
get_kb_article_set | Fetch 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.