Integration

LoopMessage integration

LoopMessage sends and receives iMessage (with SMS, RCS and WhatsApp fallback) from dedicated sender names. Send texts, voice messages and reactions to a contact or group; show typing, edit or unsend; check delivery status; create and manage group chats; schedule bulk campaigns; generate opt-in links; read message and webhook history, the audience and subscription status; manage sender names, sender pools and organizations. Every send is a real message to a real person. LoopMessage bills by subscription plan, not per message (unlimited messages up to the plan's number of unique contacts), and answers 402 to a send the plan does not cover. Not exposed: ordering or cancelling sender names, identity documents, paid content, bulk data deletion, organization create, update and delete, and the Twilio-compatible API. Authentication is the organization API key (dashboard, API > Settings) sent raw in the Authorization header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in LoopMessage.Built from the 30 LoopMessage tools below, on the connection you add once.

What you can do with LoopMessage

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Message, 8 operations

  • edit_messageEdit messagePOSTReplaces the text of an outbound message sent within the last 15 minutes (iMessage). Inbound messages and the first message of a conversation cannot be edited; SMS and RCS do not support editing.
  • get_message_statusGet message statusGETReturns the delivery status of a message you sent (processing, delivered, failed or unknown), with its contact, text, error code when it failed, and last update time.
  • list_contact_messagesList contact messagesGETLists the message history with one contact, a page at a time, filterable by date range, direction and type, plus the contact's subscription status. Holds message text.
  • send_messageSend messagePOSTSends a real iMessage (or SMS, RCS or WhatsApp) text to one contact or to a group. Pass contact or group, and text. The 200 answer only means queued; check get_message_status.
  • send_reactionSend reactionPOSTPuts a reaction on a contact's message: an emoji, or an iMessage tapback (love, like, dislike, laugh, emphasize, question). Prefix the value with - to remove it, for example -like.
  • send_voice_messageSend voice messagePOSTSends a real voice (audio) message to one contact or group from a public https audio file (mp3, wav, m4a, caf or aac). Pass contact or group, and media_url. The 200 answer only means queued.
  • show_typing_indicatorShow typing indicatorPOSTShows the typing animation in an active conversation (up to 60 seconds) and can mark it read. Identify it by message_id, or by contact and sender. Fails if the conversation was idle for 5 minutes.
  • unsend_messageUnsend messagePOSTRemoves an outbound message from the conversation. Accepted within 2 minutes of sending on iMessage and 2 days on WhatsApp; SMS and RCS do not support it.

Group, 5 operations

  • add_group_participantAdd group participantPUTAdds a participant to a group chat. Processed asynchronously; the answer confirms the request was accepted.
  • create_groupCreate groupPOSTCreates a group chat with the given participants and sends them a real first message. Needs the init-new-conversations option on the sender. The group ID arrives later by webhook.
  • get_groupGet groupGETReturns a group chat's name, participants, channel, sender name and creation date.
  • remove_group_participantRemove group participantDELETERemoves a participant from a group chat. Processed asynchronously; the answer confirms the request was accepted.
  • update_groupUpdate groupPATCHRenames a group chat or changes its photo; send one change per call. An empty photo_url removes the photo. Processed asynchronously.

Sender pool, 5 operations

  • create_sender_poolCreate sender poolPOSTCreates a pool of sender names from their IDs (list_senders). Returns the new pool with its id.
  • delete_sender_poolDelete sender poolDELETEDeletes a sender pool.
  • get_sender_poolGet sender poolGETReturns one sender pool: id, name, status and creation date.
  • list_sender_poolsList sender poolsGETLists the organization's sender pools (groups of sender names), a page at a time: id, name, number of senders and creation date.
  • update_sender_poolUpdate sender poolPATCHRenames a sender pool or sets the sender names it contains (ids).

Audience, 3 operations

  • check_audience_statusCheck audience statusGETReturns whether a contact is subscribed to your messages: active, unsubscribed or unknown.
  • list_audienceList audienceGETLists the organization's audience, a page at a time, optionally filtered by date range or by a phone number or email: each contact's id and value (its phone number or email).
  • unsubscribe_contactUnsubscribe contactDELETEUnsubscribes a contact from your organization's audience, identified by phone number or email.

Sender, 3 operations

  • get_senderGet senderGETReturns one sender name: name, nickname, status, phone number and region, per-service health (iMessage, WhatsApp), displayed contact card, pool and call forwarding number.
  • list_sendersList sendersGETLists the sender names of the organization (the addresses you send from), a page at a time: id (the sender value send_message takes), name, status, creation date and iMessage link.
  • update_senderUpdate senderPATCHChanges a sender name's nickname, displayed contact card (name, photo), call and SMS forwarding number or organization; send only what changes. Returns the sender as get_sender does.

Campaign, 2 operations

  • create_campaignCreate campaignPOSTSchedules a real bulk send to contacts who already talked to your sender name. Pass contacts and text for one text, or messages for one text per contact. Needs a paid plan.
  • list_campaignsList campaignsGETLists the organization's campaigns, a page at a time, optionally filtered by creation dates or a word in the name: id, name, status and creation date.

Organization, 2 operations

  • get_organizationGet organizationGETReturns one organization: id, name, status and creation date. The Default organization's key reads any organization of the account; another key reads only its own.
  • list_organizationsList organizationsGETLists the organizations of the account (works only with the Default organization's API key), a page at a time, optionally filtered by name: id, name, status and creation date.

Opt in, 1 operation

  • generate_opt_in_urlGenerate opt in urlPOSTGenerates unique opt-in links (iMessage, SMS, WhatsApp, smart https link) that open the messaging app with a prefilled first message carrying an opt-in code. An unredeemed code lives 24 hours.

Webhook, 1 operation

  • list_webhook_historyList webhook historyGETLists the webhooks LoopMessage sent to your server (inbound messages, deliveries, failures, reactions), a page at a time, each with its event type, attempt number, date and full JSON payload.

Use LoopMessage from Claude Code, Cursor or Codex

Connect LoopMessage in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its LoopMessage operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect LoopMessage

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect LoopMessage once

    Add your LoopMessage connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

LoopMessage integration FAQ

What can you do with the LoopMessage integration?

LiveContext exposes 30 operations on LoopMessage, covering message, group, sender pool and audience.

Popular integrations

Browse the whole catalog