comms
Org-scoped Comms for iMessage and SMS: conversations, agents, knowledge, lines, and analytics.
What it can do
- Osis Comms List Conversations: List comms conversations, optionally filtered by state, channel, or search text.
- Osis Comms Get Conversation: Get one comms conversation together with its messages.
- Osis Comms List Messages: List messages in a comms conversation in chronological order.
What data it sees
Do you need an account
An API key from the service settings is required
Org-scoped Comms for iMessage and SMS: conversations, agents, knowledge, lines, and analytics. Connect with an Comms API key or sign in. Destructive tools need the matching scope.
How to connect
How to connect comms to Claude
The server address to paste into Claude settings:
https://comms--cale.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect comms to ChatGPT
The server address to paste into ChatGPT settings:
https://comms--cale.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect comms to Cursor
The server address to paste into Cursor settings:
https://comms--cale.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| osis_comms_list_conversations | List comms conversations, optionally filtered by state, channel, or search text. |
| osis_comms_get_conversation | Get one comms conversation together with its messages. |
| osis_comms_list_messages | List messages in a comms conversation in chronological order. |
| osis_comms_send_message | Queue a customer message. Target exactly one contact_id, phone, or conversation_id. Generic write scope never authorizes this tool. |
| osis_comms_send_contact_card | Send a saveable vCard contact card. Target exactly one contact_id, phone, or conversation_id. Pass agent_id to send that hosted agent's card. |
| osis_comms_set_contact_card | Set the hosted contact card for a dedicated-line agent. Name and photo show as Add Contact when people text that number. |
| osis_comms_reply_to_conversation | Send a manual human-style reply to an existing conversation. |
| osis_comms_set_conversation_state | Set a conversation state to agent, needs_human, human, waiting, or resolved. |
| osis_comms_trigger_agent | Run an active comms agent manually. With conversation_id, a reply is queued only when that agent itself also has comms_send. |
| osis_comms_list_contacts | List comms contacts, optionally filtered by list or search text. |
| osis_comms_upsert_contact | Create a contact by phone or email, or update an existing contact by contact_id. |
| osis_comms_opt_out_contact | Opt a contact out of future messaging. |
| osis_comms_list_lists | List contact audience lists for the organization. |
| osis_comms_create_list | Create a contact audience list. |
| osis_comms_add_contacts_to_list | Add one or more organization contacts to an audience list. |
| osis_comms_list_agents | List agents with status, trigger, channels, tool scopes, and assigned phone details. Prompt and settings fields are redacted. |
| osis_comms_get_agent | Get the complete configuration for one org-owned agent. |
| osis_comms_create_agent | Create an agent from a safe field allowlist. New agents default to draft; use the dedicated settings and creed tools for those documents. |
| osis_comms_update_agent | Update identity and lifecycle fields on an org-owned agent. Line assignment, settings, and creed are intentionally excluded. |
| osis_comms_set_agent_status | Set an agent status to active, paused, or draft. |
| osis_comms_delete_agent | Permanently delete an org-owned agent and detach its retained conversation and audit history. |
| osis_comms_get_agent_settings | Get the desired and effective settings document, locked rails, and available tool catalog for an agent. |
| osis_comms_replace_agent_settings | Replace the complete desired agent settings document (PUT semantics). Call osis_comms_get_agent_settings first, modify desired, then send the full document. |
| osis_comms_get_agent_creed | Get the canonical markdown creed for an org-owned agent. |
| osis_comms_update_agent_creed | Replace an agent canonical markdown creed after verifying the profile belongs to that agent and organization. |
| osis_comms_list_agent_runs | List recent agent runs, optionally for one org-owned agent. |
| osis_comms_run_agent_playground | Run an agent against a test message without customer delivery. |
| osis_comms_get_builder_capabilities | List Fatima-facing builder capabilities (calendar, external orders, dual role, vision todos) and whether each is enabled on an agent. |
| osis_comms_apply_builder_capability_preset | Apply the Fatima cleaner-ops capability preset (iCal reminders, DoorDash-shaped orders with budget/approve, dual role, photo→todo) onto an agent settings document. |
| osis_comms_list_lines | List every line this workspace owns: the workspace line, dedicated lines assigned to agents, and parked dedicated numbers with no agent. Unrelated inventory is omitted; results contain e164, label, status, and capabilities. |
| osis_comms_assign_shared_line | Assign an org-owned agent to the shared workspace text line with a unique claim keyword. Omit line_e164 to use the workspace line. |
| osis_comms_remove_shared_line | Clear an agent's current phone and claim assignment using the dashboard shared-line removal semantics, which also clears a dedicated assignment, and deactivate stale subscriber routing assignments. |
| osis_comms_assign_dedicated_line | Assign a provider-owned dedicated +E.164 line to an org-owned agent after shared-line exclusion and global uniqueness checks. |
| osis_comms_remove_dedicated_line | Remove an agent's dedicated line, return it to shared mode, and deactivate stale subscriber routing assignments. |
| osis_comms_set_inbound_mode | Set org inbound mode to api (Messages API / webhooks only; pauses active no-code agents) or agent (no-code auto-reply). |
| osis_comms_claim_line_api_only | Attach a dedicated provider line (or ensure the workspace line) for API / webhooks without creating a live no-code agent. Sets inbound_mode=api. |
| osis_comms_list_calls | List the organization's FaceTime calls, newest first. Served from Comms' own records, so it still answers when the calling bridge is offline. |
| osis_comms_get_call | Get one FaceTime call, including its state, remote handle, duration, and end reason. |
| osis_comms_get_call_turns | Read the transcript of a FaceTime call as ordered turns. Use `after` with the last cursor you saw to poll a live call. |
| osis_comms_place_call | Place an outbound FaceTime call from a workspace line to a phone number or Apple ID. The line must belong to this workspace. Use media_mode=relay when the bridge advertises media_relay so the agent can inject/receive live audio and video. |
| osis_comms_answer_call | Answer a ringing inbound FaceTime call. Prefer media_mode=relay when media_relay is live so the agent can hear and inject continuous audio/video. Safe to call even if the inbound webhook already answered it. |
| osis_comms_get_call_media | Get the relay media session for a live FaceTime call (NMH audio/video stream URLs and token). Only works when the call was placed or answered with media_mode=relay and media_relay is live. |
| osis_comms_decline_call | Decline a ringing inbound FaceTime call. |
| osis_comms_say_on_call | Speak text on a live FaceTime call. This is how an agent talks — the voice equivalent of replying to a conversation. |
| osis_comms_hangup_call | Hang up a live FaceTime call. Idempotent — hanging up an already-ended call is a no-op. |
| osis_comms_create_payment_request | Create a payment request and get a hosted checkout link. Optionally text the link to a contact, conversation, or phone number. |
| osis_comms_get_payment_request | Read one payment request, including whether it has been paid. |
| osis_comms_list_payment_requests | List payment requests for the organization, newest first. |
| osis_comms_cancel_payment_request | Cancel a pending payment request so its link stops asking for money. |
| osis_comms_register_mini_app | Register a mini app: a web app the organization can open from a message thread. |
| osis_comms_list_mini_apps | List the organization’s registered mini apps. |
| osis_comms_update_mini_app | Update a registered mini app’s name, url, emoji, tagline, or published state. |
| osis_comms_delete_mini_app | Remove a mini app from the organization’s registry. |
| osis_comms_list_knowledge | List all org knowledge documents, optionally filtered to one org-owned agent. |
| osis_comms_upsert_knowledge | Create or fully update an org-owned knowledge document. Omit agent_id for global knowledge. |
| osis_comms_delete_knowledge | Delete an org-owned knowledge document. |
| osis_comms_search_knowledge | Search the org knowledge base by relevance, optionally scoped to an agent and global documents. |
| osis_comms_list_announcements | List recent announcements for the organization. |
| osis_comms_get_announcement | Get one announcement by id. |
| osis_comms_create_announcement | Send or schedule an announcement to one or more audience lists. Delivery is entitlement checked. |