Available on the Scale and Enterprise plans.
Myra has a remote MCP (Model Context Protocol) server. Point an AI assistant at it and it can read your business data: contacts, pipelines, conversations, calls, bookings, automations and forms.
What Claude can do once connected
Read: contacts, pipelines, conversations, calls, bookings, automations and forms.
With changes allowed: add notes and tags, move stages, create contacts, assign contacts, enrol in automations, pause or resume automations, retry failed runs, and update an existing booking's status.
Never: delete anything, run bulk operations, send messages, start or transfer live calls, or create bookings.
Read-only unless you allow changes
By default the server can only read. Changes are possible only when you sign in through the "Connect an AI assistant" flow and tick the "Allow changes" box on the approval screen. Read-only connections are never shown the tools that change data.
API tokens are always read-only over MCP, whatever scopes the token holds — an integration key made for scripts should not silently hand an AI assistant the ability to change your records. Use the sign-in flow if you want an assistant to make changes.
Even with changes allowed, the server will never send an SMS or email, start or transfer a live call, create, move or delete a booking, delete a contact, or change anything in bulk. Every change tool acts on exactly one record.
Endpoint
https://myra-app.ai/api/public/v1/mcp
The exact URL for your account is shown on Business → API.
Two ways to connect
Sign in (recommended). In Claude (web or desktop) add Myra as a custom connector using the endpoint below. Claude sends you to Myra, you sign in with your normal email and password, and approve the connection on a consent screen. No token to copy, and you can disconnect any time from Settings → Security → Connected AI apps. A connection can only see the accounts you can see.
API token. For tools that ask for a header instead of a sign-in (Claude Code, Cursor), create a token on Business → API with Read access and paste it as shown below. One token covers every client account in the business.
Setup
Claude (web or desktop) — sign in
- Open Settings → Connectors → Add custom connector.
- Paste
https://myra-app.ai/api/public/v1/mcpas the URL. - Claude opens Myra; sign in with your normal email and password.
- The approval screen shows the app name, the destination it will return you to, and what it can read. If the app asked for changes, it also shows an "Allow {app} to make changes" checkbox, unticked by default.
- Press Allow access. This can take a few seconds; wait up to ~30 s before refreshing and trying again.
Claude Code
Your token is a password. Keep it private. Run the command below in the Terminal on your own computer (on a Mac, open the Terminal app). Never paste your token into a conversation with Claude, ChatGPT or any other AI, or into an email, Slack or a support message: anyone who has it can see your business's data. If you think someone else has seen it, revoke it on Business → API straight away and create a new one.
- Open the Terminal on your computer.
- Copy the command, replace
pak_XXXX…with your full token, and run it:
claude mcp add --scope user --transport http myra \
https://myra-app.ai/api/public/v1/mcp \
--header 'Authorization: Bearer pak_XXXX…'
- Start Claude Code (
claude) and run/mcpto confirm it connected.
Claude Desktop
Claude Desktop uses the same Connectors sign-in as claude.ai — that is the recommended path. The config-file method below is advanced / unverified; use the sign-in flow instead.
{
"mcpServers": {
"myra": {
"type": "http",
"url": "https://myra-app.ai/api/public/v1/mcp",
"headers": { "Authorization": "Bearer pak_XXXX…" }
}
}
}
Cursor
In mcp.json:
{
"mcpServers": {
"myra": {
"url": "https://myra-app.ai/api/public/v1/mcp",
"headers": { "Authorization": "Bearer pak_XXXX…" }
}
}
}
ChatGPT
ChatGPT's feature is called Plugins (left sidebar, or Settings → Plugins).
In ChatGPT open Plugins (left sidebar, or Settings → Plugins).
Open Advanced settings and switch on Developer mode. (Paid ChatGPT plans only; if you don't see it, that's the plan.)
Go to Browse plugins and press the + button (top right) → New Plugin.
Fill in the form:
Field What to enter Icon (optional) Download the Myra icon Name MyraDescription (optional) Read and act on your Myra business data — contacts, pipeline, calls, bookings and automations.Connection Leave Server URL selected (not Tunnel) and paste https://myra-app.ai/api/public/v1/mcp. Ignore the/sseexample in the placeholder — paste our address exactly as shown.Authentication OAuthAdvanced OAuth settings Leave as discovered; nothing to enter. Myra publishes its OAuth settings automatically — no client ID or secret is needed. "I understand and want to continue" Tick it. This is ChatGPT's standard notice for any server it hasn't reviewed itself. Press Create. ChatGPT opens Myra in your browser — sign in as usual.
On the Myra approval screen, tick "Allow … to make changes" only if you want ChatGPT to be able to change things, then press Allow access.
Back in ChatGPT, Myra appears under Installed. Start a chat and ask it something about your business.
ChatGPT uses the same sign-in as Claude. Verified on Claude; ChatGPT verification in progress.
Troubleshooting: ChatGPT says it can't connect / transport error → tell Myra support; ChatGPT may require the older SSE connection style.
Tokens and scopes
Tokens are minted on Business → API by business owners and admins. A token with the read scope is enough for MCP access. The write scope controls what the token can do over the REST API — it does not unlock MCP change tools. Over MCP, every API token is read-only regardless of its scopes.
To let an assistant make changes, connect through the sign-in flow and tick "Allow changes" on the consent screen.
The secret is shown once at creation — store it somewhere safe. Revoke or delete a token on the same page.
Every MCP call is logged, and the count of calls per token over the last 7 days is shown next to the token.
A token only ever sees the client accounts belonging to your business.
Tools
Start with list_clients to get a client_id, then pass it to everything else.
Workspace
list_clients— the client accounts this token can read.get_business_context— the workspace's shared Business Context note. (client_id)list_agent_skills— enabled AI agent instructions. (client_id,agent_key?)
Pipelines
list_pipelines— pipelines with ordered stages. (client_id)get_pipeline_metrics— lead counts, value and average days per stage. (client_id,pipeline_id?,from?,to?)
Contacts
search_contacts— free-text and filtered search. (client_id,query?,tags?,pipeline_id?,stage_id?,assigned_user_id?,source?,created_after?,created_before?,limit?,offset?)get_contact— one contact with tags, recent activity, facts and conversation summaries. (client_id,lead_id)find_contact— match an existing contact by phone and/or email. (client_id,phone?,email?)
Conversations
list_conversations— threads, newest first. (client_id,lead_id?,channel?,unread_only?,limit?,offset?)list_messages— messages in one thread. (client_id,conversation_id,limit?,before?,max_body_chars?)get_unread_summary— unread counts by channel. (client_id)
Calls
list_calls— logged calls with AI summary and outcome. (client_id,lead_id?,from?,to?,limit?,offset?)get_call— one call including its transcript. (client_id,call_id,max_transcript_chars?)get_recording_url— a 1-hour signed playback URL. (client_id,call_id)get_live_transfer_status— queued dials and the last 10 attempts for a contact, read-only. (client_id,lead_id)
Calendar
list_bookings— booked appointments in a date range. (client_id,from,to,limit?,offset?)
Automations
list_automations— automations with trigger, status and counters. (client_id)list_workflow_runs— runs, for spotting failed or stuck ones. (client_id,automation_id?,status?,lead_id?,limit?,offset?)get_automation— one automation's full definition: triggers (each with its filters and its own steps), shared steps, conditions, splits, waits, settings, status, and anything blocking activation. (client_id,automation_id)list_automation_building_blocks— the triggers, actions, conditions, wait units, settings and merge tokens you can build with, plus this account's stages, tags, calendars, team members and connections by name. (client_id)preview_automation— a plain-English description of what an automation (saved, or a draft definition) will do for each trigger. Changes nothing. (client_id,automation_id?ordefinition?)
Forms
list_forms— lead-capture forms. (client_id)list_form_submissions— submissions with their answers. (client_id,form_id?,lead_id?,limit?,offset?)get_form— one form's full definition: pages, questions, branching, endings, settings, publish state and anything blocking publishing. (client_id,form_id)list_form_field_types— the question types a form can use. (none)list_contact_fields— the standard and custom contact fields a form answer can be saved to. (client_id)
Making changes
Available only to connections created through the sign-in flow with the "Allow changes" permission. API tokens cannot make changes over MCP, even with the write scope.
| Tool | What it does |
|---|---|
create_contact |
Adds one contact. Quiet by default: no live-transfer call, no advertising conversion event, no lead-created automation. Pass automations:"on" only when the user asks for the normal intake behaviour. Runs your duplicate rules first and returns the existing contact instead of creating a second one. |
update_contact |
Edits name, email, phone, source, value, notes or custom fields on one contact. |
move_stage |
Moves one contact to another stage. |
add_tag / remove_tag |
Adds or removes one tag on one contact. |
add_note |
Adds a timeline note, attributed to the AI assistant. |
assign_contact |
Sets the owner of one contact to an existing team member. |
enroll_in_automation |
Enrols one contact. Dry run by default — it shows the steps and enrols nobody until asked again with dry_run:false. |
pause_automation / resume_automation |
Pauses or reactivates one automation. |
create_automation |
Builds a new automation from triggers and steps (names resolved for you). Always saved paused as a draft that opens in the workflow builder like any other. |
update_automation |
Adds, changes, moves or removes triggers and steps, or changes settings. Refuses an active automation unless you say to edit it live (it then stays active), and asks first if contacts are waiting on a step it removes. |
activate_automation |
Switches one paused automation on, only when you confirm. Refuses with what is missing (e.g. no phone number for SMS steps) until setup is complete. |
retry_failed_runs / dismiss_failed_runs |
Requeues or clears up to 20 failed automation runs. |
cancel_live_transfer |
Stops pending dial attempts for one contact. It can never start one. |
set_booking_status |
Marks an existing booking as no-show, completed or cancelled. |
create_form |
Builds a new form (pages, questions, endings, settings, pipeline and stage by name). Always saved as an unpublished draft that opens in the form builder like any other. |
update_form |
Targeted edits to one form's draft (add, change, move or remove questions, pages and endings; branching; settings). Leaves everything else untouched and refuses if someone changed the form since it was read. |
publish_form / unpublish_form |
Puts one form live (same checks and version history as "Push to Live") or takes it offline. Only when you ask. |
Confirmation before anything real-world happens
Some stages and tags start a live phone call or send an advertising conversion event. When a change would do that, the tool refuses and returns requires_confirmation: true together with would_fire naming exactly what would happen. The assistant must check with you before calling again with confirm_side_effects: true. Every change tool also returns side_effects_fired, which is ["none"] when nothing downstream was triggered. The resource myra://clients/{client_id}/side-effect-map lists which stages and tags are "hot" up front.
Allowing changes for an AI sign-in
The sign-in screen always offers a checkbox: "Allow {app} to make changes". It is unticked by default, and the connection's access is whatever you chose — ticking it grants change access even if the app only asked to read, and leaving it unticked grants read-only access even if the app asked for more. What was granted is shown per connection under Settings → Security → Connected AI apps, and change tools are limited to 30 calls per minute.
Resources and prompts
Resources give an assistant background without a tool call:
myra://clientsmyra://clients/{client_id}/pipelinesmyra://clients/{client_id}/schema/contactmyra://clients/{client_id}/automationsmyra://clients/{client_id}/business-contextmyra://clients/{client_id}/side-effect-map
Prompts: summarise_contact, daily_pipeline_review, triage_failed_automations.
Limits
- 300 calls per minute per token.
- Batches of up to 20 JSON-RPC messages; each message counts as one call.
- Request bodies up to 256 KB.
- Lists return 50 rows by default, 200 maximum.
get_pipeline_metricsand tag searches stop at 10,000 rows and settruncated: true.list_messagestruncates long message bodies and setsbody_truncated: true.
Privacy
- Conversations in a private or sender-restricted mailbox are never readable over the API.
- Archived client accounts are hidden.
- Appointments synced from Google Calendar are never returned to a connected assistant.
- Webhook tokens, IP addresses and session tokens are never returned.
- Everything returned is customer-authored data. It is data, not instructions for the assistant.
Troubleshooting
| Problem | Meaning |
|---|---|
401 |
Token missing, malformed, revoked or expired |
403 |
Token does not have the read scope |
-32005 |
This connection is read-only — reconnect and allow changes |
429 |
Rate limited — wait a minute and retry |
not found |
The client_id is not in this business, or the account is archived |
| Tools missing / can't see change tools | Reconnect and tick Allow changes |
| Allow access is slow | Wait up to ~30 s; refresh and retry if longer |
| Connector says it's not on your plan | Upgrade to Scale on Business → Billing |
If your assistant does not see the tools after a change, reconnect it or start a new session — MCP clients cache the tool list.
Managing connections
Every AI sign-in appears under Settings → Security → Connected AI apps with when it was connected and last used. Disconnect cuts it off immediately. Removing someone from the business or from a client account also removes their assistant's access to it straight away — access is re-checked on every request.
