MCP Server

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

11
repo-list-repositories

List GitHub repositories available to connect to ShipTell through the user's GitHub App installations, including which ones are already connected.

repo-connect

Connect 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-settings

Get the settings and sync status for a connected repo (display name, default branch, sync freshness, pending commits/PRs) by its slug.

repo-update-settings

Update a connected repo's display name and/or default branch.

repo-sync

Trigger 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-delete

Disconnect a repo from ShipTell. This is reversible for 30 days via repo-restore — existing changelogs are preserved.

repo-restore

Restore a previously disconnected repo.

repo-list-auto-release-rules

Get the auto-release schedule and its recent run history for a repo.

repo-create-auto-release-rule

Create or replace the auto-release schedule for a repo. Only the project owner can manage auto-release settings.

repo-toggle-auto-release-rule

Enable 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-rule

Permanently remove the auto-release schedule for a repo. Only the project owner can manage auto-release settings.

Changelogs

13
changelog-list

List changelogs for a repo, with status, publish/schedule state, and entry counts. Paginated, defaults to 50 per page.

changelog-get

Get 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-generate

AI-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-create

Manually create a draft changelog (no AI, no GitHub data) with a title and optional entries.

changelog-update

Update a changelog's title, version, summary, video URL, entries, or publish channels.

changelog-regenerate

Ask 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-publish

Publish 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-unpublish

Revert a published changelog back to a draft.

changelog-schedule

Schedule a changelog to auto-publish at a future date/time.

changelog-cancel-schedule

Cancel a changelog's scheduled auto-publish, returning it to a plain draft.

changelog-delete

Soft-delete a changelog. Reversible via changelog-restore.

changelog-restore

Restore a soft-deleted changelog. Only the user who created it can restore it.

changelog-preview-quality

Preview 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

7
distribution-get-settings

Get a repo's widget/drawer distribution settings — position, accent color, subtitle, excluded URLs, embed URLs, and subscriber counts.

distribution-update-widget-position

Update just the widget's screen position ("left" or "right") for a repo.

distribution-update-widget-config

Update the widget's position, accent color, subtitle, and excluded-URL blocklist for a repo.

distribution-update-drawer-config

Update the changelog drawer's position and accent color for a repo.

distribution-list-subscribers

List a repo's changelog email subscribers, paginated. Defaults to 50 per page, matching the dashboard.

distribution-delete-subscriber

Remove a subscriber from a repo's changelog email list.

distribution-send-test-digest

Send a preview of the changelog digest email (using the repo's latest published changelog) to a given address.

Support inbox

23
inbox-list-conversations

List support inbox conversations for a repo, optionally filtered by status. Paginated, defaults to 50 per page, matching the dashboard.

inbox-get-conversation

Get a single support inbox conversation, including its tags, custom field values, and full message history.

inbox-reply

Send a reply to a customer in a support inbox conversation, as the founder.

inbox-close

Close a support inbox conversation, marking it resolved.

inbox-add-internal-note

Add an internal note to a support inbox conversation, visible to the team only, never to the customer.

inbox-tag-conversation

Replace 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-field

Set (or clear) a custom field value on a conversation. Field definitions are configured per repo under inbox settings.

inbox-mark-as-feature-request

Toggle whether a conversation is flagged as a feature request. Calling this on an already-flagged conversation removes the flag.

inbox-list-accounts

List B2B accounts for a repo, optionally searching by name or domain. Paginated, defaults to 50 per page, matching the dashboard.

inbox-get-account

Get details for a single B2B account, including its notes and known contacts.

inbox-update-account

Update a B2B account's name or MRR (monthly recurring revenue, in cents).

inbox-add-account-note

Add an internal note to a B2B account, visible to the team only.

inbox-list-tags

List inbox tags configured for a repo.

inbox-create-tag

Create a new inbox tag for a repo.

inbox-update-tag

Update an inbox tag's name or color.

inbox-delete-tag

Delete an inbox tag from a repo. Removes it from any conversations it was applied to.

inbox-list-canned-responses

List canned responses configured for a repo.

inbox-create-canned-response

Create a new canned response for a repo, optionally with a shortcut for quick insertion.

inbox-update-canned-response

Update a canned response's title, body, or shortcut.

inbox-delete-canned-response

Delete a canned response from a repo.

inbox-list-custom-fields

List custom conversation field definitions configured for a repo.

inbox-create-custom-field

Create a new custom conversation field definition for a repo. Field type is "text" or "select"; "select" fields require an options list.

inbox-delete-custom-field

Delete a custom conversation field definition from a repo.

Knowledge base

10
kb-list-articles

List knowledge base articles for a repo, drafts and published. Paginated, defaults to 25 per page, matching the dashboard.

kb-get-article

Get a single knowledge base article, including its full body and staleness state.

kb-create-article

Create a new knowledge base article as a draft.

kb-update-article

Update a knowledge base article's title, body, or meta description. Only the fields you pass are changed.

kb-publish-article

Publish a draft knowledge base article, making it visible on the public docs site and the widget.

kb-delete-article

Permanently delete a knowledge base article.

kb-list-review-queue

List 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-article

Approve an AI-drafted article sitting in the review queue, publishing it.

kb-reject-reviewed-article

Reject an AI-drafted article sitting in the review queue, permanently deleting it.

kb-dismiss-stale-article

Dismiss a published article's staleness flag, without changing the article content.

Feature requests

5
feature-request-list

List 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-status

Update a feature request's status. Setting it to "shipped" notifies voters.

feature-request-delete

Permanently delete a feature request.

feature-request-link-to-changelog

Link a feature request to a changelog as the release that shipped it, without changing its status.

feature-request-reject-match

Reject an auto-matched changelog for a feature request. If it was the only accepted match, the feature request reverts to "under_review".

Team

5
team-list-members

List team members and pending invitations for a repo.

team-invite-member

Invite a new team member to a repo by email. Only owners can invite team members.

team-update-member-role

Update a team member's role. Only owners can change roles, and the project owner's role cannot be changed.

team-remove-member

Remove a team member from a repo. Only owners can remove team members, and the project owner cannot be removed.

team-revoke-invitation

Revoke a pending team invitation. Only owners can revoke invitations.

Account

2
account-get-profile

Get the acting user's ShipTell account profile (name, email, email verification status).

account-update-profile

Update the acting user's display name. Email and password cannot be changed through this tool.

Dashboard

1
dashboard-get-overview

Get 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.