ShipTell MCP Server
The ShipTell MCP server lets AI agents like Claude Code, Cursor, and Claude Desktop manage your changelogs, feature requests, knowledge base, support inbox, repos, and team directly — no browser tab required. It exposes 77 tools covering every part of ShipTell.
1. Get a token
The MCP server authenticates with a personal access token. Create one from Settings → API Tokens (requires signing in). The token has full account access — store it like a password.
Two things the token does not get you: it only reaches repos your ShipTell user owns or is a team member on, and it needs an active subscription — tools return Your ShipTell subscription is inactive otherwise. Rate limits are shared with the dashboard and API, so an agent can’t buy extra quota by going through MCP.
2. Server URL
https://shiptell.com/mcp
3. Connect your AI tool
Claude Code
claude mcp add --transport http shiptell https://shiptell.com/mcp --header "Authorization: Bearer YOUR_TOKEN"
Cursor
Cursor Settings → MCP → Add new MCP server, or add to .cursor/mcp.json:
{
"mcpServers": {
"shiptell": {
"url": "https://shiptell.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"shiptell": {
"url": "https://shiptell.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Tool catalog
77 tools across 9 domains. Every tool operates on a specific repo — pass the repo slug shown in the ShipTell dashboard URL.
Repositories
repo-list-repositoriesList GitHub repositories available to connect to ShipTell through the user's GitHub App installations, including which ones are already connected.
repo-connectConnect a GitHub repository (from a known GitHub App installation) as a ShipTell project. The repository must already be accessible via the installation — use repo-list-repositories first to find it and its installation_id.
repo-get-settingsGet the settings and sync status for a connected repo (display name, default branch, sync freshness, pending commits/PRs) by its slug.
repo-update-settingsUpdate a connected repo's display name and/or default branch.
repo-syncTrigger a manual GitHub sync for a connected repo (fetches new commits/PRs). Rate limited to 10 syncs per minute per repo, matching the dashboard.
repo-deleteDisconnect a repo from ShipTell. This is reversible for 30 days via repo-restore — existing changelogs are preserved.
repo-restoreRestore a previously disconnected repo.
repo-list-auto-release-rulesGet the auto-release schedule and its recent run history for a repo.
repo-create-auto-release-ruleCreate or replace the auto-release schedule for a repo. Only the project owner can manage auto-release settings.
repo-toggle-auto-release-ruleEnable or disable the auto-release schedule for a repo (does not delete it). Only the project owner can manage auto-release settings.
repo-delete-auto-release-rulePermanently remove the auto-release schedule for a repo. Only the project owner can manage auto-release settings.
Changelogs
changelog-listList changelogs for a repo, with status, publish/schedule state, and entry counts. Paginated, defaults to 50 per page.
changelog-getGet a single changelog's full details, including entries and publish/schedule state. Use this to poll a changelog started with changelog-generate — check "status" for "generating" vs "draft"/"failed".
changelog-generateAI-generate a changelog from GitHub commits/PRs since the last release (or a given date range). This is ASYNCHRONOUS: it returns immediately with a changelog in "generating" status, and the real content is built in the background. Poll changelog-get with the returned changelog_id until its status is no longer "generating" before reading its entries.
changelog-createManually create a draft changelog (no AI, no GitHub data) with a title and optional entries.
changelog-updateUpdate a changelog's title, version, summary, video URL, entries, or publish channels.
changelog-regenerateAsk AI to refine an existing changelog's entries given extra instructions (e.g. "make it punchier", "focus on the API changes"). This runs SYNCHRONOUSLY and returns the refined entries directly — it does not save them. Use changelog-update to persist the result.
changelog-publishPublish a changelog immediately, dispatching it to the given channels (or the changelog's own stored channels, or the defaults). Use changelog-schedule instead to publish at a future time.
changelog-unpublishRevert a published changelog back to a draft.
changelog-scheduleSchedule a changelog to auto-publish at a future date/time.
changelog-cancel-scheduleCancel a changelog's scheduled auto-publish, returning it to a plain draft.
changelog-deleteSoft-delete a changelog. Reversible via changelog-restore.
changelog-restoreRestore a soft-deleted changelog. Only the user who created it can restore it.
changelog-preview-qualityPreview the input quality (PR/commit coverage, confidence level) of a would-be AI-generated changelog for a date range, without creating anything. Use before changelog-generate to decide whether the data is good enough.
Distribution & widget
distribution-get-settingsGet a repo's widget/drawer distribution settings — position, accent color, subtitle, excluded URLs, embed URLs, and subscriber counts.
distribution-update-widget-positionUpdate just the widget's screen position ("left" or "right") for a repo.
distribution-update-widget-configUpdate the widget's position, accent color, subtitle, and excluded-URL blocklist for a repo.
distribution-update-drawer-configUpdate the changelog drawer's position and accent color for a repo.
distribution-list-subscribersList a repo's changelog email subscribers, paginated. Defaults to 50 per page, matching the dashboard.
distribution-delete-subscriberRemove a subscriber from a repo's changelog email list.
distribution-send-test-digestSend a preview of the changelog digest email (using the repo's latest published changelog) to a given address.
Support inbox
inbox-list-conversationsList support inbox conversations for a repo, optionally filtered by status. Paginated, defaults to 50 per page, matching the dashboard.
inbox-get-conversationGet a single support inbox conversation, including its tags, custom field values, and full message history.
inbox-replySend a reply to a customer in a support inbox conversation, as the founder.
inbox-closeClose a support inbox conversation, marking it resolved.
inbox-add-internal-noteAdd an internal note to a support inbox conversation, visible to the team only, never to the customer.
inbox-tag-conversationReplace the set of inbox tags on a conversation. Pass the full list of tag IDs you want applied; existing tags not in the list are removed. Pass an empty array to remove all tags.
inbox-set-conversation-fieldSet (or clear) a custom field value on a conversation. Field definitions are configured per repo under inbox settings.
inbox-mark-as-feature-requestToggle whether a conversation is flagged as a feature request. Calling this on an already-flagged conversation removes the flag.
inbox-list-accountsList B2B accounts for a repo, optionally searching by name or domain. Paginated, defaults to 50 per page, matching the dashboard.
inbox-get-accountGet details for a single B2B account, including its notes and known contacts.
inbox-update-accountUpdate a B2B account's name or MRR (monthly recurring revenue, in cents).
inbox-add-account-noteAdd an internal note to a B2B account, visible to the team only.
inbox-list-tagsList inbox tags configured for a repo.
inbox-create-tagCreate a new inbox tag for a repo.
inbox-update-tagUpdate an inbox tag's name or color.
inbox-delete-tagDelete an inbox tag from a repo. Removes it from any conversations it was applied to.
inbox-list-canned-responsesList canned responses configured for a repo.
inbox-create-canned-responseCreate a new canned response for a repo, optionally with a shortcut for quick insertion.
inbox-update-canned-responseUpdate a canned response's title, body, or shortcut.
inbox-delete-canned-responseDelete a canned response from a repo.
inbox-list-custom-fieldsList custom conversation field definitions configured for a repo.
inbox-create-custom-fieldCreate a new custom conversation field definition for a repo. Field type is "text" or "select"; "select" fields require an options list.
inbox-delete-custom-fieldDelete a custom conversation field definition from a repo.
Knowledge base
kb-list-articlesList knowledge base articles for a repo, drafts and published. Paginated, defaults to 25 per page, matching the dashboard.
kb-get-articleGet a single knowledge base article, including its full body and staleness state.
kb-create-articleCreate a new knowledge base article as a draft.
kb-update-articleUpdate a knowledge base article's title, body, or meta description. Only the fields you pass are changed.
kb-publish-articlePublish a draft knowledge base article, making it visible on the public docs site and the widget.
kb-delete-articlePermanently delete a knowledge base article.
kb-list-review-queueList the knowledge base review queue for a repo: AI-drafted articles pending review, and published articles flagged as potentially stale by the auto-detection pipeline.
kb-approve-reviewed-articleApprove an AI-drafted article sitting in the review queue, publishing it.
kb-reject-reviewed-articleReject an AI-drafted article sitting in the review queue, permanently deleting it.
kb-dismiss-stale-articleDismiss a published article's staleness flag, without changing the article content.
Feature requests
feature-request-listList feature requests for a repo, optionally filtered by status (submitted, under_review, planned, in_progress, shipped). Paginated, defaults to 50 per page, matching the dashboard.
feature-request-update-statusUpdate a feature request's status. Setting it to "shipped" notifies voters.
feature-request-deletePermanently delete a feature request.
feature-request-link-to-changelogLink a feature request to a changelog as the release that shipped it, without changing its status.
feature-request-reject-matchReject an auto-matched changelog for a feature request. If it was the only accepted match, the feature request reverts to "under_review".
Team
team-list-membersList team members and pending invitations for a repo.
team-invite-memberInvite a new team member to a repo by email. Only owners can invite team members.
team-update-member-roleUpdate a team member's role. Only owners can change roles, and the project owner's role cannot be changed.
team-remove-memberRemove a team member from a repo. Only owners can remove team members, and the project owner cannot be removed.
team-revoke-invitationRevoke a pending team invitation. Only owners can revoke invitations.
Account
account-get-profileGet the acting user's ShipTell account profile (name, email, email verification status).
account-update-profileUpdate the acting user's display name. Email and password cannot be changed through this tool.
Dashboard
dashboard-get-overviewGet an overview of the acting user's ShipTell dashboard: the repos they own, plan limits, and GitHub installation status.
Troubleshooting
My client only shows some of the tools
tools/list is paginated per the MCP spec. ShipTell returns all 77 tools in a single page, but a client that requests a smaller per_page and then ignores nextCursor will stop early and appear to be missing whole domains. If you see only the repository tools, that’s this — keep following nextCursor until it comes back null.
A tool says it can’t find my repo
Every tool takes a repo_slug. It’s the segment in your dashboard URL — shiptell.com/your-repo-slug/inbox means the slug is your-repo-slug. Call repo-list-repositories to see every slug your token can reach.
I added the server but no tools appear at all
Check the Authorization header is sent as Bearer YOUR_TOKEN, and reconnect the server after changing it — most clients cache the tool list from the moment they connect.