MCP

Overview

Connect Recall.ai to an MCP-compatible AI client so your agent can investigate bots, inspect workspace data, search Recall.ai documentation, and help build or debug your integration.

What You Can Do

Use the Recall.ai MCP server to:

  • Investigate why a bot failed to join, record, or produce a transcript.
  • Inspect bot lifecycle events, participants, chat messages, and customer-visible logs.
  • Trace calendar-created bots and diagnose calendar sync problems.
  • Inspect webhook subscriptions, events, and delivery attempts.
  • Find recordings, transcripts, and generated media artifacts.
  • Check Recall.ai and third-party provider status incidents.
  • Search Recall.ai guides and API reference pages
  • Review billed usage, credit balances, and configured API rate limits.
  • Optionally create or update webhook endpoints, send test webhooks, and submit rate-limit increase requests.

The MCP allows agents to view all the same data that a developer can, without being constrainted to what the API offers.

Quickstart

Find your LLM agent below.

Claude Desktop/Claude Code

  1. Head to the Recall.ai connector page

  2. Hit the "Connect to Claude" button

Claude Code (terminal)

Alternatively, if you want to add the MCP directly via the terminal:

claude mcp add --scope user --transport http recall-ai https://us-east-1.recall.ai/mcp

You'll then want to login:

claude mcp login recall-ai

Codex

codex mcp add recall-ai --url https://us-east-1.recall.ai/mcp

Then complete the Recall.ai OAuth flow when prompted.

Cursor

Add the following to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "recall-ai": {
      "url": "https://us-east-1.recall.ai/mcp"
    }
  }
}

Windsurf

Add the following to ~/.codeium/mcp_config.json:

{
  "mcpServers": {
    "recall-ai": {
      "serverUrl": "https://us-east-1.recall.ai/mcp"
    }
  }
}

3. Verify the Connection

Ask your agent:

Use Recall.ai's get_info tool and tell me the active workspace, organization, and API version. List all the tool calls that the recall-ai MCP supports.

Confirm that the response names the expected workspace before using workspace data or write tools.

Authentication and Workspace Access

Use OAuth when a person is connecting their own AI client. They sign in through the browser, and the connection can access the same Recall.ai billing accounts they can access.

Use a scoped MCP API key for an unattended or shared agent, or when another person should not receive all the access your OAuth connection has. Each key can be limited to one workspace and only the MCP capabilities that person or agent needs.

OAuth

OAuth grants the MCP server access to all billing accounts available to the signed-in user. The workspace selected during authorization becomes the default workspace, but the connection can access the user's other billing accounts and workspaces.

To work with a different workspace:

  1. Use list_workspaces to find the desired workspace ID.
  2. Pass that ID as workspace_id to workspace-scoped tools.

OAuth connections receive read access by default. Write tools require an explicit full or fine-grained write scope.

Scoped MCP API Keys

Create a separate key for each person or agent. This lets you restrict and revoke their access independently.

Create a Key

Create scoped keys from Dashboard → Developers → MCP API Keys in the workspace the agent should access:

  1. Select New MCP API Key.
  2. Give the key a descriptive name.
  3. Choose full read access or specific read permissions.
  4. Turn off full write access unless the agent needs a write tool.
  5. If needed, grant only the relevant fine-grained write permission.
  6. Create the key and copy it immediately to a secure secret store.

An MCP API key:

  • Is restricted to the workspace in which it was created.
  • Can call only tools allowed by its configured scopes.
  • Cannot use the Recall.ai REST API.
  • Does not expose tools for scopes it was not granted.
  • Has immutable scopes. Revoke and replace the key to change its access.
  • Remains active until revoked.

Do not paste an MCP API key into a prompt or commit it to source control.

Authenticate an Agent

Use the MCP endpoint for the region containing the key's workspace:

RegionMCP URL
US Easthttps://us-east-1.recall.ai/mcp
US Westhttps://us-west-2.recall.ai/mcp
Europehttps://eu-central-1.recall.ai/mcp
Asia Pacifichttps://ap-northeast-1.recall.ai/mcp

Configure the agent to send the key as a bearer token with every MCP request:

Authorization: Bearer <MCP_API_KEY>

Claude Code with an MCP API Key

claude mcp add --scope user --transport http recall-ai https://us-east-1.recall.ai/mcp \
  --header "Authorization: Bearer <MCP_API_KEY>"

Codex with an MCP API Key

Store the key in an environment variable:

export RECALL_MCP_API_KEY='<MCP_API_KEY>'

Add the following to ~/.codex/config.toml:

[mcp_servers.recall-ai]
url = "https://us-east-1.recall.ai/mcp"
bearer_token_env_var = "RECALL_MCP_API_KEY"

The MCP API Keys page provides ready-to-copy setup instructions for Cursor, VS Code, Windsurf, Claude Code, Claude Desktop, and Codex.

After connecting, run get_info and confirm that the agent can access only the intended workspace.

Permissions

Read Permissions

mcp.read grants access to every read tool available through MCP. For least-privilege agents, use fine-grained scopes instead:

ScopeAccess
mcp.account.readAccount, workspace, and billed-usage information
mcp.bots.readBot metadata, status changes, and lifecycle events
mcp.bot_participants.readParticipant identities and participant events
mcp.bot_chat.readChat messages captured by bots
mcp.calendars.readCalendars and synced calendar events
mcp.calendar_events.raw.readRaw provider calendar-event payloads
mcp.docs.readRecall.ai documentation and API reference search
mcp.logs.readCustomer-visible bot and workspace logs
mcp.rate_limits.readConfigured API rate limits
mcp.recordings.readRecording metadata and media artifacts
mcp.status.readRecall.ai and third-party provider status
mcp.transcripts.readMeeting transcripts and speaker timelines
mcp.webhooks.readWebhook endpoints and delivery history
mcp.billing.readBilling and usage info

Some tool results contain conditionally protected fields. For example, get_bot requires participant or chat scopes before it returns those fields.

Write Permissions

The server has no write access by default. mcp.write grants every write capability available through MCP. Prefer the fine-grained write scopes for autonomous or shared agents:

ScopeToolsExternal effect
mcp.rate_limits.writesubmit_rate_limit_increase_requestSubmits a request to Recall.ai support for review
mcp.webhooks.writecreate_webhook_endpoint, update_webhook_endpoint, send_test_webhook_endpointChanges dashboard webhook configuration or sends a test event

Write tools are not shown to credentials that lack the required scope. Your MCP client may also ask for confirmation before running a write tool.

Developer Permissions

Developer permissions are separate from read and write permissions because they can expose or create credentials. Neither mcp.read nor mcp.write grants access to developer tools.

mcp.dev grants every developer capability. For least-privilege agents, use the fine-grained scopes instead:

ScopeToolsAccess
mcp.dev.credentials.readget_webhook_verification_secret, list_api_keysReads webhook verification secrets and existing API key data.
mcp.dev.api_keys.createcreate_api_keyCreates REST API keys or scoped MCP API keys.

Grant developer permissions only to trusted people or agents that need to configure an integration. Treat mcp.dev.credentials.read as sensitive even though its tools are read-only.

Available Tools

The Recall.ai MCP server exposes read-only tools scoped to the workspace selected during authorization. If your account can access multiple workspaces, use list_workspaces to find the workspace ID and pass it as workspace_id to workspace-scoped tools.

Tool NameDescriptionUse Case
get_infoReturn the current Recall.ai user, workspace, organization, and API version.Confirm the agent is connected to the intended workspace.
list_workspacesList Recall.ai workspaces available to the authenticated account.Locate the workspace that owns a failed bot.
get_service_statusReturn current customer-visible Recall.ai service status.Confirm whether a service issue affects active recordings.
list_service_incidentsList historical customer-visible Recall.ai status incidents.Determine whether an incident overlapped missing recordings.
get_third_party_provider_statusReturn current public status for meeting and transcription providers.Confirm whether provider health explains transcription delays.
list_third_party_provider_incidentsList historical public incidents for meeting and transcription providers.Trace a past meeting failure to a provider incident.
list_rate_limitsList configured public Recall.ai API rate limits for a workspace.Explain 429 responses from a bot-creation endpoint.
list_bot_usageList metered bot usage records for a billing account.Locate bots behind an unexpected usage increase.
get_billed_usageFetch billed usage, commitment consumption, and credit balances.Reconcile monthly charges with finance records.
submit_rate_limit_increase_requestSubmit a Recall.ai API rate-limit increase request for review.Request capacity for a planned transcript backfill.
get_webhook_verification_secretFetch the workspace webhook verification secret.Configure signature validation for a webhook receiver.
list_api_keysList API keys for a workspace.Locate keys to rotate after suspected exposure.
create_api_keyCreate a Recall.ai API or MCP API key.Provision a scoped key for a support agent.
list_webhook_endpointsList webhook destinations and subscribed event types.Confirm transcript.done is subscribed before delivery tracing.
create_webhook_endpointCreate a dashboard webhook endpoint.Add a recording.done destination for a new service.
update_webhook_endpointUpdate a dashboard webhook endpoint.Redirect deliveries after migrating a webhook receiver.
send_test_webhook_endpointSend a test webhook event to a configured endpoint.Confirm a new receiver acknowledges test events.
list_webhook_deliveriesList webhook events and delivery attempts for a resource.Trace why a recording.done event never arrived.
list_botsList Recall.ai bots with filters for status, platform, meeting, and metadata.Locate bots created for a specific meeting URL.
get_bot_batchFetch detailed bot information for multiple bots.Compare lifecycle evidence across several failed bots.
get_botFetch detailed metadata, lifecycle events, participants, and chat for a bot.Explain why a specific bot left a meeting early.
list_recordingsList recordings with filters for bot, upload, metadata, status, and time.Locate recordings produced by a failed upload.
list_audio_mixedList generated mixed-audio artifacts and their statuses.Confirm mixed audio finished processing for a recording.
get_recording_resourceFetch recording or transcript artifact details by ID.Locate a transcript artifact's parent recording.
list_calendarsList calendars in a workspace, with filters for email, platform, and connection status.Locate disconnected calendars for a user's email.
get_calendarFetch details for a single calendar integration.Explain a calendar connection state after sync failures.
get_calendar_integration_setup_statusReturn Calendar V2 setup readiness, recommendations, and blockers.Explain what prevents a calendar integration from starting.
start_calendar_integration_setupStart an assisted Calendar V2 integration setup.Begin guided setup for a new calendar connection.
get_calendar_integration_setupFetch progress for a Calendar V2 integration setup.Identify the pending action in calendar setup.
continue_calendar_integration_setupContinue a Calendar V2 setup with the next setup action.Advance setup after completing an authorization step.
create_calendar_v2Create a Calendar V2 integration with supplied credentials.Provision a calendar connection during headless onboarding.
update_calendar_v2Update a Calendar V2 integration's credentials, webhook URL, email hint, or metadata.Repair expired calendar credentials without recreating the integration.
reconnect_calendar_v2Reconnect a disconnected Calendar V2 integration.Restore calendar syncing after credentials are repaired.
list_calendar_eventsList synced calendar events with filters for calendar, time, and deletion state.Locate invites that should have scheduled bots.
get_calendar_eventFetch details for a single synced calendar event.Explain why one calendar invite did not schedule a bot.
get_bot_calendar_eventsReturn the calendar events that scheduled a bot.Trace a bot to the calendar invite that created it.
get_bot_logsFetch customer-visible runtime logs for a bot.Explain why a bot failed to join or record.
get_desktop_sdk_logsFetch customer-visible runtime logs for a Desktop SDK upload.Explain why a Desktop SDK upload failed.
get_workspace_logsFetch customer-visible workspace logs within a time window.Trace API 429s during a product launch.
list_docsList Recall.ai documentation and API reference pages.Locate the slug for a product guide.
search_docsSearch Recall.ai documentation and API reference pages.Find guidance for a specific endpoint error.
get_docFetch a Recall.ai documentation page by slug.Summarize required fields for a known endpoint.

Example Workflows

Investigate a Failed Bot

Prompt your agent:

Why did bot <BOT_ID> fail? Use its status changes and customer-visible logs, explain the causal chain, and link the relevant Recall.ai documentation.

The agent can use get_bot, get_bot_logs, search_docs, and get_doc. If the available evidence does not establish a cause, the response should say what is known and what evidence is still missing.

Trace a Missing Webhook

Prompt your agent:

Why did we not receive transcript.done for recording <RECORDING_ID>? Check our subscriptions and delivery attempts.

The agent can use list_webhook_endpoints and list_webhook_deliveries to distinguish a missing subscription from a failed delivery.

Trace a Calendar-Created Bot

Prompt your agent:

Which calendar event scheduled bot <BOT_ID>, and what was the calendar's connection state?

The agent can use get_bot_calendar_events and get_calendar.

Configure a Webhook

With mcp.webhooks.write, prompt your agent:

Create a webhook endpoint for recording.done at <WEBHOOK_URL>. Show me the proposed change and ask for confirmation before creating it.

The agent can use create_webhook_endpoint after you confirm the destination and event subscription.

Search Recall.ai Documentation

Prompt your agent:

Find the current Recall.ai documentation for creating a meeting bot and summarize the required request fields for this workspace's API version.

The agent can use search_docs followed by get_doc.


Did this page help you?