The advanced technical guide to logging your Openclaw actions through ChangeCrab changelogs
Most changelog workflows fail for one reason: context switching.
Engineers ship in terminals and IDEs, then switch to a web UI to publish release notes. Product and DevRel teams draft updates in docs, then manually re-enter them in changelog tools. The friction is small each time, but high across a quarter.
If your team already runs OpenClaw, the ChangeCrab MCP server gives you a clean bridge:
TL;DR: What You'll Need
- OpenClaw CLI: Installed and configured (Node 22.14+ required, Node 24 recommended).
- ChangeCrab Account: An active paid plan or trial.
- API Key: Generated from ChangeCrab Settings -> API Keys.
At runtime, the integration is a straightforward process chain:
changecrab-mcp-server as a stdio process.The key point: OpenClaw is orchestrator, ChangeCrab MCP server is translator, and ChangeCrab API is the system of record.
OpenClaw's recommended install path:
npm install -g openclaw@latest
openclaw onboard --install-daemon
OpenClaw currently documents Node 24 as recommended, with Node 22.14+ supported.
ChangeCrab API access is paid/trial only. You need:
ChangeCrab MCP server package currently declares:
>=18
CHANGECRAB_API_KEY
OpenClaw's mcp set/list/show/unset commands manage stored MCP server definitions in OpenClaw config.
Important detail from OpenClaw docs: these commands manage config state; they do not guarantee the target server is reachable at command time.
openclaw mcp set changecrab '{"command":"npx","args":["-y","changecrab-mcp-server"],"env":{"CHANGECRAB_API_KEY":"cc_your_api_key_here"}}'
openclaw mcp set changecrab '{"command":"node","args":["/absolute/path/to/changecrab/mcp-server/dist/index.js"],"env":{"CHANGECRAB_API_KEY":"cc_your_api_key_here"}}'
openclaw mcp list
openclaw mcp show changecrab --json
openclaw mcp unset changecrab
OpenClaw documents that configured bundle MCP tools are available in normal coding and messaging profiles, but not in minimal.
So if the server is configured correctly but tools never appear in agent runs, check profile first.
Operationally:
minimal -> expect no bundled MCP toolscoding / messaging -> bundled MCP tools can be exposedThe server registers tool families in src/index.ts:
registerChangelogTools)registerPostTools)registerCategoryTools)registerInfoTools)It exits immediately when CHANGECRAB_API_KEY is missing.
StdioServerTransport)From src/api.ts:
https://changecrab.com/api
CHANGECRAB_API_BASE_URL (useful for testing)X-API-Key
Network requests use bounded retry logic:
500ms * attempt)ECONNRESET, ETIMEDOUT, etc.)Mapped status behaviors include:
401 -> invalid/missing API key guidance403 -> subscription required guidance404 -> resource not found/access denied guidance>=500 -> service unavailable guidanceThe current server test suite verifies a 10-tool surface:
list_changelogs
get_changelog
list_categories
list_posts
create_post
update_post
delete_post
get_changecrab_overview
get_changecrab_api_info
get_changecrab_limits_summary
This is useful for CI assertions when upgrading OpenClaw, MCP SDK, or the server package.
ChangeCrab API routes expose these core endpoints under authenticated middleware:
GET /changelogs
GET /changelogs/{id}
GET /changelogs/{id}/categories
GET /changelogs/{id}/posts
POST /changelogs/{id}/posts
PUT /changelogs/{id}/posts/{postId}
DELETE /changelogs/{id}/posts/{postId}
Docs endpoint:
https://changecrab.com/api/documentation
In create_post and update_post, the server first fetches changelog details (GET /changelogs/{id}) and derives team from that response before writing.
This means post writes are effectively a two-step sequence:
summary, markdown, team, plus visibility flags/categories)For developers debugging write failures, this extra dependency is critical.
Good for most teams:
openclaw mcp set changecrab '{"command":"npx","args":["-y","changecrab-mcp-server"],"env":{"CHANGECRAB_API_KEY":"cc_live_key"}}'
Pros:
Tradeoff:
Build once in your infra pipeline:
cd mcp-server
npm install
npm run build
Then register exact artifact path:
openclaw mcp set changecrab '{"command":"node","args":["/opt/integrations/changecrab-mcp/dist/index.js"],"env":{"CHANGECRAB_API_KEY":"cc_live_key"}}'
Pros:
Prefer environment injection in MCP config (env) over inline prompt usage.
Use a dedicated ChangeCrab API key for automation workflows; rotate if exposed.
Do not echo full openclaw mcp show ... --json outputs in shared logs if they include inline secrets.
OpenClaw docs emphasize that MCP registry config and MCP runtime behavior are distinct concerns. Validate both:
mcp show)After setup, validate in order:
openclaw mcp list includes changecrab
openclaw mcp show changecrab --json
minimal
list_changelogs
For local server testing, ChangeCrab also includes npm test in mcp-server/, which validates MCP handshake and tool registration behavior.
Use explicit IDs and intent to reduce back-and-forth:
<id>, list categories and recent posts."<id> with summary X and markdown Y."<post_id> in changelog <id> with this body, keep it draft."draft=0 and public=1."When you need partial updates, remember current update_post behavior expects full required post fields, so pull current values first.
Symptom:
Fix:
CHANGECRAB_API_KEY is present in registered server env
Symptom:
Fix:
Symptom:
Fix:
Symptom:
Fix:
minimal
Symptom:
Fix:
If multiple people share the same OpenClaw deployment:
list_changelogs after upgradesIf you automate release publishing:
draft=1 for generated content# Register
openclaw mcp set changecrab '{"command":"npx","args":["-y","changecrab-mcp-server"],"env":{"CHANGECRAB_API_KEY":"cc_your_api_key_here"}}'
# Inspect
openclaw mcp list
openclaw mcp show changecrab --json
# Remove
openclaw mcp unset changecrab
OpenClaw + ChangeCrab MCP is a practical, low-friction integration for teams that already ship from chat/CLI workflows.
From an engineering perspective, it is cleanly layered:
If your release communication process is currently "ship now, write notes later," this setup removes most of the friction that causes that gap.