Skip to content
Blooio logo

Blooio MCP server

Which MCP servers are Blooio's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-31

← Back to Blooio

Whose server it is
  • Registry namecom.blooio/mcpverified in the MCP registry

The registry name sits under blooio.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-31
  • Stateanswerschecked 2026-10-31
  • Tools120
  • Server calls itselfblooio-mcp
  • Server version4.1.0
  • Protocol version2025-06-18

On 2026-10-31 the server answered initialize and tools/list without a sign-in. First answer in 68 ms.

Should an agent connect itNot proven either way yet
  • Checked on 2 of the 7 days it takes to judge reliability.

Once connected

  • Signs in by OAuth: the client opens the sign-in on first connect.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 2, the first on 2026-10-31
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 2 so far
  • Answeredmeasuring2 of the 7 daily checks it takes to print a share
  • Median first answer113 ms
  • Sign-inOAuth: the client signs you inclients register themselves: claude.ai and ChatGPT connect with nothing set up first

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers120 tools · read 2026-10-31
  • me

    Get the authenticated account Returns the authenticated organization, linked devices/numbers, usage, and API key validity.

  • get_my_default_priority

    Get the key's default priority Returns the calling API key's default channel priority, or `{ "data": null }` when none is configured (in which case the agnostic send falls back to the implicit Blooio pool of the key's own numbers).

  • list_numbers

    List sender numbers Lists the phone numbers / sender addresses available to this API key. Banned and suspended numbers stay in the list. `status` is `banned`, `suspended`, or `active`; a ban takes precedence when both apply. `is_active`…

  • get_contact_card

    Get a number's contact card

  • update_contact_card

    Update a number's contact card Updates the contact card (name, avatar, sharing settings) shared from this number. At least one field is required.

  • upload_contact_card_avatar

    Upload a contact card avatar Uploads an avatar image for the number's contact card. Max 10MB.

  • request_call_forwarding

    Request call forwarding Opens a support ticket to forward calls from an owned dedicated or inbound Blooio number. The destination must be a US E.164 number. Shared or foreign source numbers are rejected. Forwarding isn't instant: check…

  • list_location_contacts

    List Find My contacts Lists Find My friends sharing their location with the linked Apple account.

  • refresh_location_contacts

    Refresh Find My locations Forces a refresh of Find My location data from the device.

  • get_location_contact

    Get one Find My contact

  • list_channels

    List channels Lists messaging channels for the organization. Ordinary sends do not require a channel id; use this endpoint to inspect capabilities or obtain an exact channel id for advanced integrations.

  • list_available_blooio_numbers

    List available Blooio numbers Browse Blooio number inventory available to purchase. `type=shared` returns available shared lines; `type=dedicated` returns unassigned dedicated inventory. When one or more `area_code` values are supplied…

  • purchase_blooio_numbers

    Purchase Blooio numbers Purchase one or more Blooio lines. Purchases are asynchronous and billable: the call charges the organization's default payment method and returns a `purchase_id`; the lines are provisioned when Stripe confirms the…

  • get_blooio_purchase

    Get purchase status Poll the status of an asynchronous number purchase by its `purchase_id`. Returns `pending`/`provisioning`, `completed` (with the provisioned allocations), or `failed`. Requires the `numbers:read` scope for OAuth apps.

  • get_channel

    Get a channel

  • remove_blooio_number

    Remove (unsubscribe) a Blooio number Removes/unsubscribes an owned Blooio line, cancelling its subscription — the same flow as the dashboard unsubscribe button. Accepts either the E.164 number or the `ch_` channel id as `{channel}`. A…

  • get_channel_capabilities

    Get channel capabilities Returns supported protocols, content types, actions, and interactive features for a channel.

  • get_channel_health

    Get line health Messaging health for one dedicated or inbound Blooio line: its live safety state plus reply, delivery, and risk metrics over the trailing `days`. Built for polling.

  • get_channel_settings

    Get channel settings Per-channel settings for channel types that support them. `settings` and `available` are per channel type: Blooio (P2P numbers) exposes `auto_mark_read`, `auto_share_contact`, and `imessage_only`; Apple Messages for…

  • update_channel_settings

    Update channel settings Partial update of a channel's settings (send only the keys you want to change). Keys are per channel type. Blooio (P2P numbers): `auto_mark_read` is available on dedicated and inbound lines; `auto_share_contact` is…

  • update_channel_profile

    Update channel profile Partial update of the channel profile (`display_name`, `about`, `email`, `avatar`). Stored under `metadata.profile` and returned on `GET /channels/{channel}`. Null or empty string clears a field. Unknown keys are…

  • send_message_to_channel

    Send a message on a specific channel Channel-scoped equivalent of `POST /messages` with an explicit `from`: `:channel` accepts the same phone number (URL-encode `+` as `%2B`), alias, or `ch_...` value `from` accepts, and the body omits…

  • list_priorities

    List priorities Lists channel priorities owned by the calling API key.

  • create_priority

    Create a priority Creates a channel priority. Channels sharing a `priority` (and type) form a pool; ascending priority is the send-time waterfall. The first priority created for a key becomes its default unless `is_default: false` is set.

  • get_priority

    Get a priority

  • update_priority

    Update a priority Updates a priority's name, default flag, and/or channel set. When `channels` is supplied it replaces the priority's channels wholesale.

  • delete_priority

    Delete a priority

  • list_contacts

    List contacts Lists contacts. Cursor pagination is the default. Supplying `offset`, `q`, `tag`, `sort`, or `filter` switches to offset pagination and includes `pagination.total`.

  • create_contact

    Create a contact Creates a contact, optionally with one identity (phone/email on a channel type).

  • get_contact

    Get a contact

  • update_contact

    Update a contact

  • delete_contact

    Delete a contact Soft-deletes a contact and its identities.

  • merge_contact

    Merge a contact Collapses two auto-created contacts for the same person into one. The survivor is the `{contactId}` in the path; the `source_contact_id` in the body is absorbed into it. Every identity on the source is re-parented onto the…

  • list_contact_identities

    List contact identities

  • add_contact_identity

    Attach an identity Attaches a phone/email identity (on a channel type) to a contact.

  • update_contact_identity

    Update an identity Renames a contact identity in place. An optional name updates the parent contact in the same request.

  • remove_contact_identity

    Detach an identity

  • get_contact_capabilities

    Get contact capabilities Returns per-identity reachability/capabilities (iMessage/SMS/RCS, etc.) for a contact. For iMessage (blooio) identities this is a LIVE per-number lookup performed by an active iMessage channel — the request is…

  • get_contact_timeline

    Get contact timeline A single, chronological cross-channel activity feed for a contact, unifying every conversation the contact takes part in — both 1:1 chats keyed on the contact's identities and group chats where the contact is a…

  • list_contact_tags

    List contact tags

  • add_contact_tags

    Add contact tags

  • remove_contact_tag

    Remove a contact tag

  • list_groups

    List groups

  • create_group

    Create a group Creates a group chat on a group-capable channel (blooio/whatsapp) with one or more members. No iMessage conversation exists yet: the first message sent to the group opens it, and `chat_linked` becomes `true` once it does…

  • get_group

    Get a group A group id that was merged into another group on its first send (see Create a group) returns the surviving group. Compare the returned `id` with the one you asked for to pick up the canonical id.

  • update_group

    Update a group

  • delete_group

    Delete a group

  • list_group_members

    List group members For a merged group id, lists the members of the surviving group.

  • set_group_icon

    Set group icon Uploads a group icon. Max 10MB; image/jpeg|png|gif|webp|heic|heif. Requires the group chat to be linked on a device.

  • remove_group_icon

    Remove group icon

  • list_chats

    List chats Lists conversations, most recent first. Filter by channel type, state, channel, or contact.

  • create_chat

    Find or create a chat Finds or creates a 1:1 chat with a recipient on a channel. Returns the chat (with `created` indicating whether it was newly created).

  • get_chat

    Get a chat The chat of a group that was merged into another group on its first send returns the surviving group's chat on the same number.

  • update_chat

    Update a chat Sets chat state (`open`/`closed`) on an Apple Messages for Business chat. Chats on every other channel return 422 `state_not_writable`: `closed` reflects the customer ending an Apple Messages for Business conversation, and…

  • set_typing

    Start/stop typing indicator Shows or clears a business-to-customer typing indicator. Supported on Blooio channels and Apple Messages for Business.

  • stop_typing

    Stop typing indicator Clears the business-to-customer typing indicator. Supported on Blooio channels and Apple Messages for Business.

  • mark_chat_read

    Mark chat as read Sends a read receipt. Blooio channels only.

  • share_contact_card

    Share contact card Shares the sender's contact card into a chat. Blooio channels only.

  • get_chat_focus

    Read Focus status Reads whether the other person in the chat has notifications silenced by a Focus, as their device shares it over iMessage. `silenced` means new messages arrive quietly; to break through for a message you sent, use Notify…

  • send_poll

    Send a poll Sends a native iMessage poll to a chat. Requires a title and 2+ options. Blooio channels only.

The first 60 of 120, as the server listed them.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "blooio": {
      "type": "http",
      "url": "https://mcp.blooio.com/v4"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http blooio https://mcp.blooio.com/v4

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://mcp.blooio.com/v4 as a custom connector in the settings.

OpenAPI spec

91 paths, read 2026-10-31. Open the spec ↗

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.