Live Myra status: All systems operational

MCP (connect an AI assistant)

Connect Claude, Cursor or any MCP client to your Myra data — read-only by default, changes only with your explicit permission.

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

  1. Open Settings → Connectors → Add custom connector.
  2. Paste https://myra-app.ai/api/public/v1/mcp as the URL.
  3. Claude opens Myra; sign in with your normal email and password.
  4. 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.
  5. 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.

  1. Open the Terminal on your computer.
  2. 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…'
  1. Start Claude Code (claude) and run /mcp to 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).

  1. In ChatGPT open Plugins (left sidebar, or Settings → Plugins).

  2. Open Advanced settings and switch on Developer mode. (Paid ChatGPT plans only; if you don't see it, that's the plan.)

  3. Go to Browse plugins and press the + button (top right) → New Plugin.

  4. Fill in the form:

    Field What to enter
    Icon (optional) Download the Myra icon
    Name Myra
    Description (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 /sse example in the placeholder — paste our address exactly as shown.
    Authentication OAuth
    Advanced 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.
  5. Press Create. ChatGPT opens Myra in your browser — sign in as usual.

  6. 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.

  7. 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? or definition?)

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://clients
  • myra://clients/{client_id}/pipelines
  • myra://clients/{client_id}/schema/contact
  • myra://clients/{client_id}/automations
  • myra://clients/{client_id}/business-context
  • myra://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_metrics and tag searches stop at 10,000 rows and set truncated: true.
  • list_messages truncates long message bodies and sets body_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.