Use ChangeCrab from Cursor, Claude Desktop, and other AI tools via the MCP server. List changelogs, create posts, and manage your changelog from chat.
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.
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.
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.
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.
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.
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"
}
}
}
}
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.
| 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. |
get_changecrab_overview – What ChangeCrab is, features, workflowsget_changecrab_api_info – API auth, availability, docs linkget_changecrab_limits_summary – Free vs paid limits, API accessInformation tools make no API requests, but starting the server still requires CHANGECRAB_API_KEY.
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.categories to preserve them; send categories: [] to clear them. Use category IDs returned by list_categories for that changelog.draft: 0 and an explicit notify_subscribers boolean. Use true to allow subscriber alerts or false to suppress them.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
}
Many tools require a changelog ID (also called access ID). You can find it by:
list_changelogs to see all your changelogs and their IDsyouraccount.changecrab.com or your custom domain)—the ID is in your changelog settings
Set CHANGECRAB_API_KEY in the env section of your MCP config. Cursor/Claude pass this to the server when they start it.
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.
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.
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.
mcp.json.cursor/mcp.json or global ~/.cursor/mcp.json)