github aldinokemal/go-whatsapp-web-multidevice v9.1.0

3 hours ago

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/ssehttp://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)

  • 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)

  • 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)

  • 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)

  • 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

Contributors

New Contributors

Full Changelog: v9.0.1...v9.1.0

Don't miss a new go-whatsapp-web-multidevice release

NewReleases is sending notifications on new releases.