Categories › Communication › Messaging apps & SMS
Phone, SMS and email for AI agents. One remote MCP endpoint, OAuth login, zero install.
Remote server: your requests and data go to mcp.hail.so. Claude Code: claude mcp add --transport http hail https://mcp.hail.so · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
place_call — Start an outbound AI phone call. At least one of ``system_prompt``, ``llm`` or ``agent_id`` is required. An ``agent_id`` selects saved settisend_email — Send an email from a verified workspace sender. ``to`` is a non-empty list of email addresses. At least one of ``body_text`` or ``body_html`upload_email_attachment — Upload a small attachment for outbound email, as base64 text. Meant for small files (under about 50 KB): every base64 character goes throughcreate_file_upload — Create a one-time link that uploads one file from a shell with curl. The bytes go from the local disk to Hail directly, not through the toolget_call — Read a call's current status and timing by ID. ``call_id`` identifies an existing workspace call. Returns the call record, or an error when list_calls — List recent workspace calls, newest first. ``cursor`` accepts the previous page's ``next_cursor``. Optional filters are ``status`` and the Esend_sms — Send an outbound text message. ``to`` is an E.164 phone number and ``body`` is the message text. Without ``from_``, supported destinations uget_sms — Read a text message's current state by ID. ``sms_id`` identifies an existing workspace message. Returns the message record, including delivelist_sms — List recent workspace text messages. ``status`` filters by queued, sent, delivered, failed, undelivered or received. ``to`` filters by E.164get_email — Read a complete workspace email by ID. Returns ``body_text``, ``body_html`` and other email fields. Inbound records include reply headers anlist_emails — List workspace email summaries, newest first. ``direction`` is ``inbound`` or ``outbound``. ``status`` is queued, sent, failed, bounced, comget_email_raw — Return a temporary download URL for an inbound email's original MIME source. The URL expires after approximately five minutes and requires nget_email_attachment — Return a temporary download URL for an inbound email attachment. ``email_id`` identifies the email; ``attachment_id`` identifies one of its get_email_events — Read one email's delivery and engagement timeline. Events include sent, delivered, delivery_delayed, bounced, complained, rejected, opened aget_email_stats — Read workspace email delivery counts, rates and time series. ``from_`` and ``to`` are ISO 8601 timestamps, defaulting to the last seven daysget_events — Read a page of workspace events or events for one resource. ``id`` optionally selects ``call:<uuid>``, ``email:<uuid>`` or ``sms:<uuid>``. `list_agents — List the workspace's saved agents and their settings. Agent records contain IDs, names, instructions, greetings, disclosure settings, voice create_agent — Save an agent for calls, texts, and email replies. ``system_prompt`` defines the saved agent's behavior. ``first_message`` is an optional grroute_number — Set the saved agents that answer a number's calls and texts. ``number_id`` identifies an existing workspace number. ``voice_agent_id`` selecroute_email_domain — Choose which agent answers mail to an address, and who it answers. ``email_agent_id`` makes the agent reply to inbound mail; ``clear_agent=Tquote_numbers — Compare available phone numbers and their prices without buying or charging. ``country_code`` is an ISO alpha-2 code, such as ``US``. ``capaacquire_number — Buy a quoted phone number with explicit price confirmation. This charges the setup fee and first month immediately, then renews monthly. Thelist_numbers — List dedicated workspace phone numbers, newest first. ``limit`` is 1 to 200, defaulting to 50. ``cursor`` accepts the previous page's ``nextlist_number_regions — List US state and Canadian province codes supported by number searches. Returns ``regions`` containing ``country_code``, ``code`` and ``nameget_number — Read a workspace number's state, capabilities and assigned agents. ``number_id`` identifies the number. Returns the number record or an errorelease_number — Permanently release a phone number after explicit user authorization. ``confirm_e164`` must match the number's E.164 value. A mismatch returget_verification_requirements — Read a carrier's current registration fields, documents, address rules and fees. ``purpose`` is ``number`` or ``sms``. ``number`` is the defcheck_verification — Check a carrier registration form without filing anything. Takes the same arguments as ``submit_verification`` except ``attest_authorized``.submit_verification — Submit authorized applicant details and documents for carrier registration. Submission is irreversible once sent for review. Carriers retainlist_verifications — List workspace carrier registrations, newest first. ``purpose`` optionally selects ``number`` or ``sms`` registrations. Items include IDs, aget_verification — Read one carrier registration's current state and reported next step. ``verification_id`` identifies an existing registration. The carrier sget_sms_application — Read saved answers for an existing workspace SMS registration. Returns private applicant fields, address and available sender information. `preview_sms_application — Preview the campaign text for a US SMS registration without filing or charging. ``subject_type``, ``fields``, ``address`` and ``number_id`` amend_sms_application — Correct an existing SMS registration at the needs_information step. ``verification_id`` identifies the same paid application and identity. `cancel_verification — Cancel an eligible carrier registration after explicit user authorization. Awaiting-review drafts are discarded; rejected registrations are confirm_verification — Confirm a registration using the code the carrier sent to the applicant. ``verification_id`` identifies a registration with ``confirmation="get_agent — Read one saved workspace agent by ID. Returns its name, instructions, greeting, disclosure, voice settings, enabled channels, status, limitsupdate_agent — Update selected fields on a saved workspace agent. Omitted fields retain their values. Repeating the same update gives the same result. ``stdelete_agent — Permanently delete a saved agent after explicit user authorization. ``confirm_name`` must match the agent's saved name. A mismatch returns alist_contacts — List workspace members and manually saved contacts. ``q`` filters by name, email or phone. ``limit`` defaults to 100, with a maximum of 500.Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.