v9.1.0
aldinokemal/go-whatsapp-web-multidevicev9.1.0Aug 15, 2026by github-actions[bot]
AI Summary
Brings MCP into the REST server, so API consumers and AI agents share one process. It consolidates the MCP surface into five tools and fixes per-device Chatwoot forwarding while making native WhatsApp interactive messages readable in Chatwoot.
Key Highlights
- MCP runs through `rest` (standalone `mcp` command removed)
- Unified MCP endpoint at `/mcp`
- Consolidated into five action-based tools
- Chatwoot supports native WhatsApp interactive messages
Breaking Changes
- MCP Runs Through `rest` (standalone `mcp` command removed)
- Endpoint URL changed from `/sse` to `/mcp`
- MCP uses streamable HTTP transport
New Features
- Unified MCP Endpoint & Consolidated Tools
- Chatwoot Supports WhatsApp Interactive Messages
- Per-Device Chatwoot Forwarding Fixes
- Device Context Propagation
Full Release Notes
## What's New in v9.1.0 š¤ **Unified MCP, Reliable Multi-Device Chatwoot & Interactive Messages** Version 9.1.0 brings MCP into the REST server, so API consumers and AI agents share one process, one WhatsApp session/device registry, one port, and one authentication boundary. It also fixes per-device Chatwoot forwarding and makes native WhatsApp interactive messages readable in Chatwoot. --- ## ā ļø Breaking Changes ### MCP Runs Through `rest` - The standalone `mcp` command is no longer available - Start both REST API and MCP with `./whatsapp rest` - Connect MCP clients to `http://<host>:<port>/mcp` (default: `http://localhost:3000/mcp`) - Existing REST basic authentication also protects the MCP endpoint - The previous granular MCP surface is consolidated into five tools: `whatsapp_send`, `whatsapp_message`, `whatsapp_chat`, `whatsapp_group`, and `whatsapp_app` ### Migration - `./whatsapp mcp` ā `./whatsapp rest` - `http://localhost:8080/sse` ā `http://localhost:3000/mcp` - MCP uses streamable HTTP transport at `/mcp` - Provide `device_id` per MCP call when needed, or select a device for the connection with `X-Device-Id` --- ## ⨠New Features ### Unified MCP Endpoint & Consolidated Tools ([#788](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/788)) - Serves MCP from the existing REST process at `/mcp`, sharing the same WhatsApp lifecycle and device state - Consolidates the public MCP surface into five action-based tools - Supports explicit `device_id`, `X-Device-Id`, and default-device resolution for MCP calls - Validates action-specific MCP input schemas before handlers execute - Restricts MCP routing to supported POST/DELETE operations, avoiding unsupported GET streaming requests ### Chatwoot Supports WhatsApp Interactive Messages ([#794](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/794)) - Renders native WhatsApp CTA buttons and interactive messages as useful plain text in Chatwoot - Includes labels and the URL, phone number, or copy code for supported button types - Preserves a readable fallback for interactive button types that cannot be reduced to one line --- ## š Bug Fixes ### Per-Device Chatwoot Forwarding Keeps Device Context ([#793](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/793)) - Preserves the WhatsApp device context in asynchronous webhook and Chatwoot forwarding work - Fixes live events silently skipping the configured per-device Chatwoot inbox - Covers messages, receipts, deletes, groups, presence, calls, newsletters, and label app-state events ### Cleaner Chatwoot Reaction Notes ([#795](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/795)) - Removes redundant raw WhatsApp message IDs from reaction notes - Keeps replies threaded to the reacted-to Chatwoot message as before ### Unstar Handles Explicit `false` - Accepts `is_starred: false` correctly through both REST and MCP message actions --- ## š§ Technical Improvements ### Release Safety & Metadata - Adds a guarded release workflow skill that checks the exact app version, clean/synced `main`, tag/release availability, and tests before a tag push - Updates the application version to `v9.1.0` so runtime metadata matches this release ### Dependencies & Documentation - Refreshes `go.mau.fi/whatsmeow` through the three dependency updates included in this release - Adds an explicit v9 Breaking Changes entry to the README - Clarifies that MCP is an endpoint of the REST server, not a separate process --- ## What's Changed * feat: unify MCP endpoint and consolidate tools ([#788](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/788)) by @aldinokemal * feat(chatwoot): render InteractiveMessage (native CTA buttons) as text ([#794](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/794)) by @Claudi0-Oliveira * fix(webhook): propagate device context to async forward goroutines ([#793](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/793)) by @Claudi0-Oliveira * fix(chatwoot): drop redundant WhatsApp message ID from reaction notes ([#795](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/795)) by @Claudi0-Oliveira * chore: update `go.mau.fi/whatsmeow` to latest snapshots by @aldinokemal * feat: add guarded new release skill by @aldinokemal * feat: increase version to `v9.1.0` by @aldinokemal * docs: clarify v9 MCP REST unification by @aldinokemal ## Contributors - [@aldinokemal](https://github.com/aldinokemal) - [@Claudi0-Oliveira](https://github.com/Claudi0-Oliveira) ## New Contributors * @Claudi0-Oliveira made their first contribution in [#793](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/793) **Full Changelog**: https://github.com/aldinokemal/go-whatsapp-web-multidevice/compare/v9.0.1...v9.1.0