MCP (Model Context Protocol) Integration

Use ChangeCrab from Cursor, Claude Desktop, and other AI tools via the MCP server. List changelogs, create posts, and manage your changelog from chat.

All Articles

MCP (Model Context Protocol) Integration

Use ChangeCrab from Cursor, Claude Desktop, and other AI tools via the Model Context Protocol (MCP). List changelogs, save release-note drafts, explicitly publish, edit or delete posts, and get product info—all from chat.

What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external tools and data sources. The ChangeCrab MCP server exposes your changelog management capabilities to AI tools, so you can manage your changelog directly from your IDE or chat interface.

Prerequisites

  • Node.js 18+ (for running the MCP server)
  • ChangeCrab account with an active subscription or trial (API access is paid-only)
  • API key from your ChangeCrab dashboard (see API Keys Management)

Getting an API Key

  1. Log in to ChangeCrab
  2. Go to Settings → API Keys (requires a paid or trial plan)
  3. Create a new API key and copy it

Version 2: drafts first

Version 2 changes the creation default: new posts are saved as drafts. To publish, explicitly set draft: 0 and choose notify_subscribers: true or false. Editing preserves fields you omit, including visibility, draft state and categories.

The server runs on your computer over stdio using your API key. Hosted ChatGPT and Claude connections and directory listings are planned for a later release; there is no remote MCP URL or OAuth sign-in in this version.

Installation

Run version 2 from source

The npm package is published as changecrab-mcp-server, with version 1.0.0 currently available. Until 2.0.0 is published, build from the version 2 source checkout to use the behaviour described here:

cd mcp-server
npm ci
npm test
npm run build

Use the absolute path to the built file in your client configuration below. Node.js must be available to your client; use an absolute Node.js executable path if needed.

npm installation after version 2 is published

Once 2.0.0 is available, use "command": "npx" and "args": ["-y", "changecrab-mcp-server@2.0.0"], retaining the same env object. An unversioned installation may still run 1.0.0, which publishes immediately by default.

Configuration

Cursor

Create or edit .cursor/mcp.json in your project, or ~/.cursor/mcp.json for global config:

{
  "mcpServers": {
    "changecrab": {
      "command": "node",
      "args": ["/absolute/path/to/changecrab/mcp-server/dist/index.js"],
      "env": {
        "CHANGECRAB_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config (e.g. ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "changecrab": {
      "command": "node",
      "args": ["/absolute/path/to/changecrab/mcp-server/dist/index.js"],
      "env": {
        "CHANGECRAB_API_KEY": "your-api-key-here"
      }
    }
  }
}

Replace the absolute path and your-api-key-here with your own values. Keep the key in your local configuration, out of prompts and source control. Restart Cursor or Claude after changing the config.

Available Tools

API tools (require API key)

Tool Description
list_changelogs List all changelogs. Optional: filter by team_id.
get_changelog Get details of a changelog by access ID.
list_categories List categories for a changelog.
list_posts List posts for a changelog (newest first).
create_post Create a Markdown draft by default. Requires changelog_id, summary and markdown; supports categories and explicit publication/notification choices.
update_post Update only supplied fields using PATCH. Requires changelog_id, post_id and at least one changed field.
delete_post Delete the specified post. Destructive; use only for an explicitly requested deletion.

Info tools (static)

  • get_changecrab_overview – What ChangeCrab is, features, workflows
  • get_changecrab_api_info – API auth, availability, docs link
  • get_changecrab_limits_summary – Free vs paid limits, API access

Information tools make no API requests, but starting the server still requires CHANGECRAB_API_KEY.

Drafts, edits and publication

  • create_post defaults to draft: 1 and public: 1. Public visibility applies when published; it does not publish a draft. Draft creation sends no publish notifications.
  • update_post preserves omitted fields. For a title-only edit, send only summary alongside the changelog and post IDs. Omit markdown to preserve the existing body and rich editor blocks.
  • Omit categories to preserve them; send categories: [] to clear them. Use category IDs returned by list_categories for that changelog.
  • Publishing through either tool requires draft: 0 and an explicit notify_subscribers boolean. Use true to allow subscriber alerts or false to suppress them.
  • Subscriber alert controls require the changelog owner's paid or trial access. Scheduling, prior announcements and other API rules still apply; true does not force repeat delivery. Publication may trigger configured integrations.

Example arguments for publishing an existing draft without subscriber alerts:

{
  "changelog_id": "your-access-id",
  "post_id": 123,
  "draft": 0,
  "notify_subscribers": false
}

Example Prompts

  • "List my ChangeCrab changelogs"
  • "What are the latest posts in my main changelog?"
  • "Save a draft for the new login feature: summary 'Improved login flow', markdown with bullet points"
  • "Change only the title of draft 123 to 'Clearer login messages'"
  • "Publish draft 123 without subscriber alerts"
  • "Publish draft 123 and notify subscribers"
  • "What is ChangeCrab and how do I use it?"
  • "Do I need a paid plan to use the ChangeCrab API?"

Changelog ID

Many tools require a changelog ID (also called access ID). You can find it by:

  • Using list_changelogs to see all your changelogs and their IDs
  • Checking your changelog URL (e.g. youraccount.changecrab.com or your custom domain)—the ID is in your changelog settings

Troubleshooting

"CHANGECRAB_API_KEY is required"

Set CHANGECRAB_API_KEY in the env section of your MCP config. Cursor/Claude pass this to the server when they start it.

"Invalid or missing API key" (401)

  • Check that the key is correct and has no extra spaces
  • Ensure your account has an active subscription or trial
  • Create a new key in the dashboard if needed

Access denied (403)

Read the returned message: it may mean insufficient team permissions, missing subscription/trial access, or unavailable subscriber alert controls. Not every 403 requires an upgrade.

Validation, rate limits and connection failures

For validation errors (422), correct the fields shown in the message. For rate limits (429), wait before retrying. Failed or invalid API responses are returned as tool errors, rather than successful empty results.

Requests time out after 20 seconds and are never automatically retried. If a write fails or times out, check list_posts or the dashboard before retrying: the change may have completed. Repeating creation can create duplicates, and sent notifications cannot be undone.

Custom API base URL

CHANGECRAB_API_BASE_URL defaults to https://changecrab.com/api. Include the API path when overriding it; a trailing slash is optional. Use only a trusted endpoint because it receives your API key.

Tools don't appear in Cursor

  1. Restart Cursor after editing mcp.json
  2. Confirm the config path (project .cursor/mcp.json or global ~/.cursor/mcp.json)
  3. Check Cursor's MCP settings to see if the server is listed and has errors

Next Steps