MCP server & skill
Working with an AI assistant? Connect it here first — this is the fastest way to send a message, and there is no API key to paste.
On this page
The Project Blue MCP server gives Claude Desktop, Claude Code, Cursor, and any other MCP-compatible client the ability to send iMessage and SMS, place FaceTime Audio calls, manage contacts, run Workflows, and read message and call history — directly from the editor or chat surface. Authentication is OAuth 2.1 in the browser.
Writing code against the REST API instead? Start with the Quickstart.
Server URL
Two ways to connect
Add the server directly. This is the standard path and works in any MCP client — paste the URL, or run the one-liner in the rail. Nothing else is installed.
Or install the plugin (Claude Code only). It registers the same server and adds a Project Blue skill carrying the workflow rules the tool descriptions cannot: the trial verification sequence, when a retry is being deduplicated rather than failing, the FaceTime call lifecycle, and which contact endpoint merges versus replaces.
claude plugin install is a convenience, not a requirement — if you already added the server with claude mcp add, it keeps working and there is nothing to migrate. Installing both would simply register the server twice, so pick one.Set up your client
Pick your client in the rail and run the snippet. Every one of them ends the same way: your client opens a browser to app.tryprojectblue.com, you approve the connection, and it is done. OAuth 2.1 with dynamic client registration — no key to paste, no tokens to rotate.
claude mcp add, or install the plugin belowcodex mcp add then codex mcp login, or ~/.codex/config.toml~/.cursor/mcp.json or .cursor/mcp.json.vscode/mcp.jsonAny other client that speaks remote MCP over streamable HTTP works with the server URL alone. For one that only accepts stdio servers, use mcp-remote as an adapter — both are in the rail.
Available tools
send_messagesend_typing_indicatorsend_reactionsend_group_messagelookup_imessage_availabilityget_linesrequest_linelist_messagesget_messageget_call_logsstart_facetime_callget_facetime_call_statusend_facetime_callcreate_external_contactget_external_contactsupdate_external_contactlist_flowsenroll_contact_in_flowcancel_flow_runs