Changelog

Spur MCP release history

Track contract changes to tools, responses, and integration expectations.

v1.15.0

September 2026
  • message_send now accepts a WhatsApp group as the recipient: set to to "group:<id>", for example "group:123", using the group id from the groups API
  • Text, image, video, audio, document and approved templates can all be sent to a group, using the same content payloads as a contact send
  • Media must be a public https URL in content.<type>.link. A group cannot resolve an uploaded media id
  • A template sent to a group is billed by Meta as one conversation per delivered participant, and Meta does not accept QUICK_REPLY, LIST, PRODUCT_LIST, CATALOG or FLOW components in groups
  • A group is always messaged from the channel that owns it. options.from is only needed when several WhatsApp channels are connected, and it must be that owning channel
  • A group send never changes who the conversation is assigned to, so an automation will not take a group away from the agent handling it
  • The per-contact marketing opt-out is not applied to groups, because a group has many participants and no single opt-out state
  • Groups are WhatsApp only. A group recipient on any other channel is rejected

v1.14.0

September 2026
  • message_send now accepts channel: 'email', so a mailbox connected to Spur can send from MCP as well as read
  • Reply into an existing thread by passing options.conversationId with the eml_<n> id from conversation_search: to and content.subject are derived from the thread
  • Start a new thread by omitting options.conversationId and passing to plus content.subject
  • For email, content is { subject, text, html } and needs at least one of text or html. options.cc and options.bcc accept up to 20 addresses each
  • options.from selects the sending mailbox by address (or mailbox channel id). With more than one mailbox connected and no options.from, the send is rejected with the list of addresses instead of being sent from a guessed mailbox
  • An email send returns the thread id as emailThreadId and conversationId, so the thread can be read straight back with conversation_messages
  • Email sends land in the inbox as a normal agent reply, not as an AI agent message, and pause AI email replies on that thread for 30 minutes exactly like a reply sent from the Spur inbox
  • to is no longer a required field on message_send: it stays required for whatsapp, instagram and facebook, and is optional only on an email reply
  • Email attachments and email broadcasts are not supported. message_send remains single-send only, for email too

v1.13.0

September 2026
  • conversation_search now returns email threads alongside chat conversations, interleaved by recency, with channelType: 'email' to narrow results to email only
  • Email threads expose subject and contactEmail, and contactId is null when a thread has no linked contact yet
  • conversation_messages accepts an email thread id (eml_<n>) from conversation_search and returns emailMessage records with subject, from/to/cc/bcc, snippet, text, internal-note flag, and attachment links
  • Added includeHtml to conversation_messages for the raw HTML email body, off by default because HTML email bodies are very large
  • Fixed channels_list, which previously failed for any workspace with a connected mailbox, and added isActive so a disconnected mailbox is visible
  • email is now a valid channel value in contact_search and contact_delete, which previously failed when an email contact was in the result
  • Reading an email thread over MCP never marks it read. message_send does not yet accept channel: 'email'
  • Breaking change: conversation_search nextCursor is now an opaque string instead of a numeric conversation id. Pass it back verbatim and do not construct or parse it

v1.12.0

April 2026
  • Added conversation_search tool for listing and searching conversations with cursor pagination, channel filtering, and unread-only mode
  • Added conversation_messages tool for fetching paginated message history within a conversation
  • Added template_update_draft tool for modifying existing draft templates without recreating them
  • Hardened workspace isolation across templates, segments, broadcasts, and channels to prevent cross-workspace access
  • Improved JSON content parsing for broadcast messages and template component payloads
  • Added cross-workspace error hints to guide API key scoping
  • Composite cursor for conversation_messages eliminates duplicate-timestamp pagination gaps

v1.4.0

February 2026
  • Added customer_import_csv_validate, customer_import_csv_start, customer_import_csv_status, and customer_import_csv_clear tools
  • Mapped MCP CSV import tools to the same validation + queue backend flow used by Spur UI imports
  • Expanded MCP docs and tool catalog with import payload examples for large contact uploads

v1.3.1

February 2026
  • Fixed template_requirements dynamic URL button samples to use real template button indices (not hard-coded index 0)
  • Improved dynamic URL guidance to include exact button-index matching for runtime payloads
  • Updated MCP-level instructions to enforce segment + broadcast flow for bulk sends

v1.3.0

February 2026
  • Expanded MCP error text/hints to surface provider details for Invalid parameter failures
  • Updated template runtime guidance for dynamic URL buttons (use URL suffix params, not full URLs)
  • Clarified bulk-send workflow to prefer segment + broadcast tools instead of looping message_send

v1.2.0

February 2026
  • Added template_requirements tool to return runtime requirements and sample contentMessage payloads
  • Added carousel preflight validation in broadcast_create and broadcast_update for safer template sends
  • Expanded MCP error hints for EC_INVALID_TEMPLATE_ARGS and missing carousel runtime payloads

v1.1.0

February 2026
  • Added segment tooling: segment_filters_catalog, segment_search, segment_create, segment_update, and segment_delete
  • Added broadcast lifecycle tooling: broadcast_create, broadcast_update, broadcast_launch, broadcast_search, broadcast_analytics, and broadcast_overview_stats
  • Expanded Swagger contracts for segment and broadcast endpoints with concrete request/response/error examples
  • Extended MCP error hints for segment and broadcast business-rule failures

v1.0.0

February 2026
  • Initial Spur MCP release with Streamable HTTP transport
  • Initial tool surface covering template draft/submit, message send, contact create/update/delete/search, channels list, and template sync/search/delete
  • Structured error normalization with providerError passthrough and actionable hints
  • Swagger contracts expanded for MCP-backed REST endpoints with concrete success and failure examples

Versioning policy

  • Patch: backward-compatible fixes and error clarity improvements
  • Minor: additive optional fields and non-breaking extensions
  • Major: breaking contract updates with migration guidance