Step by step, from Beam's developer docs
Updated
Connect Claude Code to iMessage
Connect Claude Code to iMessage by creating a Beam workspace connection token, then registering Beam's MCP server with a single command: claude mcp add --transport http beam https://beam.aisync.link/mcp --header "Authorization: Bearer $BEAM_TOKEN". Claude Code can then read conversations, and with explicit permission on an active assigned line, send iMessage through Beam.
This is Claude Code's MCP connection, not Claude's OAuth-only hosted web connector, which Beam does not support yet.
What you need before you start
Per Beam's documented developer access flow, you need: a Beam workspace, signed in as the workspace owner rather than Client view; a connection token created under Settings → Developer access → MCP & API, with the permissions you intend to use; and, if you plan to actually send, an active assigned line plus the send permission granted on that token. Agencies should pick the specific directly managed client in Developer access before creating a token, since one token cannot switch between workspaces.
Step by step: connect Claude Code over MCP
- Create the connection token. In Beam, open Developer access, name the connection, and choose permissions. Read and train are selected by default; send, publish, automation and book require an explicit grant.
- Copy the token immediately. It expires after 90 days and cannot be displayed again, so store it in your terminal environment or a private secrets file, never in a conversation, screenshot or public repository.
- Register the server with Claude Code, with
BEAM_TOKENset in your terminal environment:claude mcp add --transport http beam https://beam.aisync.link/mcp --header "Authorization: Bearer $BEAM_TOKEN"
- Restart Claude Code if it was already running, and check that the
beamMCP server appears in its tool list. - Verify the connection before doing anything else: ask Claude to call
workspace_readand confirm the workspace name and ID match the one you intended, without making any changes.
Example prompts to try first
- "Call workspace_read and tell me the workspace name and ID. Do not make any changes."
- "Call assistant_read and summarize the current assistant configuration and its revision number."
- "List the last 10 conversations with conversation_read, newest first."
- Only once you have granted send permission on a test contact: "Pause this conversation with conversation_pause, then send a short test reply with message_send."
Start every new connection with a read-only prompt. An accepted send is not proof of delivery, so check Beam's own conversation view after a test send rather than trusting the tool call result alone.
Claude Desktop and other stdio clients
Claude Desktop and other clients that support stdio servers instead of bearer-header HTTP can use Beam's downloadable bridge. Download it, run it locally with Node.js 20 or newer, and point your client's MCP configuration at it:
{
"mcpServers": {
"beam": {
"command": "node",
"args": ["/absolute/path/beam-mcp.mjs"],
"env": { "BEAM_TOKEN": "YOUR_TOKEN" }
}
}
}Replace the absolute path with where you saved the bridge file, and keep the configuration file out of source control.
Permissions and tools
| Permission | Tools it unlocks |
|---|---|
| read | workspace_read, assistant_read, contacts_list, conversation_read, numbers_list, drafts_list, calendars_list, calendar_slots |
| train | draft_create, assistant_preview |
| publish | draft_publish |
| automation | conversation_pause |
| send | message_send |
| book | appointment_book |
The API is limited to 60 requests per minute per token. Conversations return the latest 50 messages at a time, with an after-cursor for paging through more.
Troubleshooting: "connector not working"
Work through these in order:
- Confirm the endpoint. You should be connecting to
https://beam.aisync.link/mcp, not a local preview address from a screenshot or tutorial. - Confirm this is Claude Code's HTTP transport, not Claude's hosted, OAuth-only web connector. Beam supports bearer-header HTTP and the stdio bridge today, not hosted OAuth connectors.
- Check the token itself. Confirm
BEAM_TOKENis actually present in the environment of the running Claude Code process, not just your shell's history, and that the token has not expired (90 days) or been revoked. - Re-verify the workspace. Call
workspace_readagain and confirm it matches the client or workspace you intended; a token cannot switch workspaces. - Check permissions, not just connection. A tool call can fail with a permissions error even when the MCP connection itself is working, if the token was not granted that permission.
Before you connect
Setup and troubleshooting answers
Does Beam support Claude's hosted web connector?
Not yet. Beam documents bearer-header HTTP (used by Claude Code) and a local stdio bridge (used by Claude Desktop and similar clients). Hosted connectors that require OAuth-only login are not supported.
How long does a Beam connection token last?
90 days. It cannot be displayed again after creation, so copy it immediately into a private, secure location and rotate it before it expires.
Can Claude Code actually send a real iMessage, or only read?
Both are possible, but sending requires the send permission explicitly granted on the token plus an active assigned line. An accepted send is not proof of delivery; check status in Beam.
What is the rate limit?
60 requests per minute per connection token, with conversations returning the latest 50 messages per call and an after-cursor for paging.
Can an agency give Claude Code access to one specific client only?
Yes. Agency owners choose a directly managed client in Developer access before creating that token. One token cannot switch between workspaces, so create a separate token per client.
Does Claude Desktop connect the same way as Claude Code?
Not identically. Claude Code uses the bearer-header HTTP endpoint directly. Claude Desktop and other stdio-capable clients instead run Beam's downloadable bridge locally with Node.js 20 or newer.
My connector says it is not working. What do I check first?
In order: confirm you are pointed at https://beam.aisync.link/mcp and not a local address, confirm you are using Claude Code's HTTP transport rather than the unsupported OAuth-only connector, then check that your token is present, unexpired and has the right permission for what you are trying to do.
Sources
Checked October 2026.
Start with a conversation
Bring a test contact and try it live
Tell our team you want to connect Claude Code. We will walk through the token, the connection and a safe first test send.
Live sending requires a plan and an assigned dedicated line.
iMessage
Today 9:41 AM
Hi! I would love to hear how your coaching works.
Happy to chat. Would Thursday work for a discovery call?
Thursday sounds great! Looking forward to meeting you.
Blue bubbles. Read receipts. Typing.
Want this for your business?
Try a conversation with the Beam team.
Beam is not affiliated with Anthropic or Apple.
Powered by Beam