Skip to content
Step-by-step guide

Connect Claude or Cursor to Alpire

How to connect Claude, Cursor or n8n to your account with an API key so you can check and manage the phone system in plain language.

← Back to Documentation

Alpire has an MCP server: connect your AI assistant (Claude, Cursor, n8n…) to your account and ask it for things the way you'd ask a person. “How many calls did we miss yesterday?”, “book Jorge into the first free slot on Monday morning”, “take Ana off the support queue”.

MCP is a standard that lets an AI use tools from other applications. Your assistant sees the Alpire tools your connection allows, decides which ones to use and tells you the result.

There are two ways to connect it:

  • With your account (the easy one). In ChatGPT and Claude.ai you paste an address, Alpire asks your permission on a screen, and that's it. No keys to copy. See Connect ChatGPT or Claude.ai.
  • With an API key. For Claude Code, Cursor, n8n and other developer tools. See Step 1.

Available from the Pro plan, with an active subscription: API keys can't be created during the free trial (the MCP server uses the Alpire API under the hood).

This guide goes one way: your assistant uses Alpire. The other way round —the voice agent using your tools (Zapier, Make, n8n) during a call— is covered in Tools for the agent (MCP).

What you can ask it

You ask…What it does behind the scenes
“How many calls did we miss yesterday, and who were they from?”the day's report and the list of missed calls
“Give me the transcript of the 10:15 call”finds the call and reads its detail
“Book Jorge Pérez (+34 611 222 333) a 30-minute check-up on Monday in the first free morning slot”looks for free slots and books the appointment
“What appointments do we have on Thursday?”lists that day's appointments (only with the Alpire calendar, see below)
“Take Ana off the support queue”looks at the queue and changes who is in it
“Add +34 600 000 000 to the do-not-call list”adds it to your Do-Not-Call list
“How is the renewals campaign going?”reads the campaign's counters
“Summarize today's chatbot conversations”lists the conversations and reads each one
“What does our knowledge base say about cancellations?”asks your assistant (spends AI credits)
“Generate a welcome greeting with a woman's voice in Spanish and let me listen to it”suggests voices, reads the text with the chosen one (spends AI credits), saves the audio and gives you a link to listen
“Which audios do we have and which ones does nobody use?”lists the audios and where each one is used
“Change the first message of the reception agent”shows the current one, asks you to confirm if it is answering calls now, and changes it
“How many credits do we have left and what did we spend them on this month?”reads the balance and usage by model (credits only)
“Is anyone waiting in the support queue?”looks at calls in progress and in queue, without listening in or intervening
“Note on Ana Pérez's record that she wants us to call her on Monday”finds the contact and adds a note

A real example, from start to finish:

You: How many calls did we miss yesterday, and who were they from? Book Jorge Pérez (+34 611 222 333) a 30-minute check-up on Monday in the first free morning slot.

(the assistant checks which organization it's connected to and what day it is there, lists yesterday's missed calls, looks for slots on Monday morning and books the first one)

Assistant: Yesterday we missed 2 calls: one from Jorge Pérez (+34 611 222 333) and another from +34 622 333 444. I've booked Jorge's 30-minute check-up for Monday at 11:30.

What it can't do yet

  • Buy numbers. That's done in the panel. (AI agents, audios, the knowledge base and contacts can be managed from here; deleting contacts or agents cannot.)
  • Custom flows. The fixed templates (AI receptionist, AI in hours with voicemail, forwarding in hours with voicemail, direct forwarding and menu) are the quick start; for anything else the assistant designs the full flow with the language reference and your catalog, validates it and leaves it as a draft. Nothing reaches your customers until you say yes to publishing it. It cannot add new MCP tools or scripts to a flow, delete a flow, turn it on or off, or remove or move a number between flows: that is done in the panel editor.
  • Download the audio of recordings. The transcript, yes.
  • Write in a chat as if it were the visitor.
  • List or cancel appointments if your calendar is Cal.com or Google: with an external calendar, your assistant can see free slots and book, but appointments are looked up and cancelled in your calendar.
  • Changing the permissions of an existing connection. To give more or fewer permissions, disconnect Alpire in your assistant and connect it again (or revoke the connection in the panel and reconnect).

Connect ChatGPT or Claude.ai (no keys)

No keys and no code. You paste Alpire's address into your assistant, sign in to Alpire as usual (with your second factor, if you have one) and approve what the assistant will be able to do.

You need: to be an administrator of your organization in Alpire, a Pro plan or higher, and a ChatGPT or Claude account that lets you add custom connectors.

The address to paste depends on where your organization is (the same region you use to sign in to the panel):

You sign in to the panel at…Address
eu.alpire.ai (Europe)https://mcp.eu.alpire.ai/mcp
na.alpire.ai (North America)https://mcp.na.alpire.ai/mcp

Claude.ai

  1. Open claude.ai, then Settings and Connectors.
  2. Click Add custom connector.
  3. Type a name (for example “Alpire”) and paste the address. Leave any client ID or secret empty.
  4. Click Add, then Connect. An Alpire window opens.
  5. Sign in to Alpire if asked and check the permissions screen: it shows which organization, whether the assistant can only look things up or also change things, and when the connection expires. Click Allow.
  6. Back in Claude, start a new conversation, enable the connector from the tools menu and try “What can you do with Alpire?”.

On Team and Enterprise plans, the Claude organization owner adds the connector first; then each person clicks Connect with their own Alpire account.

ChatGPT

  1. In ChatGPT open Settings, then Apps (or Connectors) and Advanced settings, and turn on developer mode. On business plans a workspace admin turns it on first.
  2. Click Create.
  3. Type a name (“Alpire”), paste the address and under Authentication choose OAuth. If it asks for a client ID or secret, leave them empty: Alpire registers itself.
  4. Accept the notice that you are adding this connection yourself and click Create. An Alpire window opens.
  5. Sign in and click Allow on the permissions screen, as above.
  6. In a new conversation, pick Alpire among the developer-mode tools and ask “What can you do with Alpire?”.

Menu names change from time to time in ChatGPT and Claude. If you can't find one, look for “connectors” or “apps” in the settings.

What the permissions screen shows

  • The organization it gives access to (you pick one if you administer several).
  • What it can do: “only look things up” or “look things up and change things” (book appointments, change queues…).
  • How long it lasts: 30 days, 90 days or a year. When it expires the assistant asks your permission again.
  • Who is asking: the application name (ChatGPT, Claude…). If you did not expect the request, click Cancel.

A connection never has more power than you: if you lose a permission or stop being an administrator, the connection loses it immediately.

See and remove connections

In Settings → API and webhooks, under the API keys, Connections with assistants lists which application, whose it is, whether it can change things, when it expires and when it was last used. Click Revoke and it stops working at once. If a colleague leaves the organization, their connections close by themselves.

If something goes wrong

You seeWhat to do
The assistant says it cannot connectCheck that the address is the one for your region and ends in /mcp.
“Only administrators can connect an assistant”Ask an administrator of your organization to do it, or to give you that role.
It worked and stopped workingIt may have expired, been revoked, or your role changed. Connect again.
The assistant cannot book or change anythingThe connection was made as look-up only. Disconnect and connect again choosing “change things” too.
Your organization uses a partner's own domainFor now, connection without keys uses Alpire's domains; use an API key with your assistant (Step 1).

You can also ask the assistant “what can you do here?”: Alpire lets it explain in plain words.

Before you start (with an API key)

  • Pro plan or higher.
  • Be an administrator of your organization: only administrators create API keys and MCP servers (and a key never grants more permissions than the person creating it has).
  • An MCP client: Claude Code, Claude Desktop, Cursor, n8n or another one that supports MCP over HTTP with a header.

Step 1 — Create an API key

Settings → API & webhooks, API keys card (only administrators see it).

  1. Name: what it's for and who it's for (“Marta's Claude”, “n8n reports”). That way you'll know which one to revoke.

  2. Permissions: tick only what you need. They are grouped by section and each group comes collapsed: open it to tick (a counter tells you how many you have in each one). Your assistant will only see the tools for those permissions. With a read-only key it can't change anything, because it doesn't even see the tools that write. Checkboxes for a section that you can't access are disabled (“You can't grant this: you don't have access to that section”): a key never grants more than its creator can see.

    New key form with a name and read-only permissions ticked

  3. Expires: 90 days is fine to start with.

  4. Click Create key and copy it now: it starts with ak_ and won't be shown again. If you lose it, create another one and revoke that one.

    “Copy it now” notice with the newly created key, masked

What each permission gives

Permission (in the panel)Tools your assistant seesDoes it change anything?
View callslist calls, detail of a callno
Listen to recordingsadds the transcript and the saved variables (vars: the data the flow noted down during the call) to the call detail, and the variables also to the list (also needs View calls)no
View reportsreport for a period (totals and per day)no
View the calendarcalendars, free slots, appointments (appointments only with the Alpire calendar)no
Book and cancelbook and cancel appointments (cancel only with the Alpire calendar and, to find the appointment, View the calendar)yes
View callbackscallback queueno
View campaignscampaigns and their countersno
View extensionslist of extensionsno
View groups and queueshunt groups and queues, with their membersno
Change who answerschange the members of a queue or a group (also needs View groups and queues, to see the queue and its current members; to add someone, also View extensions)yes
Add to Do-Not-Calladd a number to the Do-Not-Call listyes, and it can't be undone from here
View chatbots and conversationschatbots, conversations and their textno
View assistantsyour assistantsno
Ask an assistantask an assistant with your knowledge base (also needs View assistants)spends AI credits
View call flowsflows explained in plain language and their full file, versions and differences, templates, the flow language reference, what your organization has to fill them in (AI models with their rate, voices, extensions, queues, schedules...), checking a flow without saving it, and which flow answers each numberno
Create and change flowscreate a flow from a template or save a fully designed flow (always as a checked draft), change the greeting, instructions, hours, forwarding, model or voice, publish a draft, go back to an earlier version and assign a number to a published flow (also needs View call flows)yes: it changes what your real calls get
Create and delete extensionscreate an extension and delete ityes, and deleting cannot be undone
View the team and invitationspeople on the team (name, email, role), pending invitations and the plan's seatsno
Invite people to the teaminvite a person by emailyes: it sends an email and reserves a plan seat
View opening hours and holidaysthe organization's schedules with their holidays and special daysno
Change opening hours and holidayschange the weekly hours, add and remove holidaysyes: it decides when the phone system answers or sends callers to "closed"
View phone numberswhich flow each number goes to and whether it is being answeredno
View audiosthe organisation's audios, where each one is used, the available voices and a temporary link to listenno
Create and delete audiosgenerate an audio from a text with an AI voice, rename and deleteyes: generating spends AI credits; deleting cannot be undone (and is refused if the audio is in use)
View AI agentsthe library agents with prompt, model, voice, language and the flows that use themno
Create and edit AI agentscreate an agent and change its prompt, model, voice or languageyes: an agent in use answers real calls; the server asks for explicit confirmation
View the knowledge baseassistant and chatbot bases, their documents and textno
Edit the knowledge baseadd texts (FAQs, prices, policies) and remove documentsyes: it changes what the bot answers; removing cannot be undone (PDFs are uploaded from the panel)
View contactssearch contacts and see their record with notes (personal data of your customers)no
Create and edit contactscreate contacts, change their data and add notesyes: they cannot be deleted from here
View credits and usageAI credit balance and this month's usage by model (no prices or billing)no
View live callscalls in progress, who is on each one, the waiting queue and extension statusno (read only: it does not listen in or intervene)
Write to conversationsnone: it belongs to the API and gives no tools heredon't tick it for this key

What to tick depending on the use:

  • Look things up and analyze (the most common): View calls, Listen to recordings (for the transcripts and the saved variables), View reports, View the calendar, View groups and queues. Nothing that changes things.
  • Run the calendar: the above plus Book and cancel.
  • Coordinate the team: View extensions, View groups and queues and Change who answers.
  • Manage the team and the phone system (for non-technical people who ask their assistant for everything): View the team and invitations, Invite people to the team, View opening hours and holidays, Change opening hours and holidays, View phone numbers, View extensions and Create and delete extensions. You can only tick them if you have access to Settings (team) and Routing (hours and numbers).
  • Ask your knowledge base: View assistants and Ask an assistant.

Better two keys (a read-only one for day-to-day use and another one with write access for when it's needed) than one with everything.

What you can ask your assistant

With those permissions, sentences like these work as they are; if something is missing the assistant asks you, and asks for a yes before changing anything:

  • "Create extension 105 for Meeting room 2" · "Delete extension 105" (it tells you what is lost: the extension, its place in groups and queues and its outbound profiles, and it cannot be undone).
  • "Who is on my team?" · "Can I add one more person?" (it tells you the plan's seats) · "Invite luis@company.com". A seat is a person, not an extension: if the plan is full the assistant tells you ("your Pro plan allows 10 users and you already have 10") and does not invite. A key never invites as owner.
  • "When are we open?" · "Close on Saturdays" · "On 24 December we open 9 to 2 every year" · "Remove the 25th holiday".
  • "Which flow does number 934 567 890 go to?" · "Is any number not being answered?" (read only: buying or connecting numbers stays in the panel).

Step 2 — Connect your assistant

The address depends on where your organization is. It's the same region you use to sign in to the panel:

You sign in to the panel at…MCP server address
eu.alpire.ai (Europe)https://mcp.eu.alpire.ai/mcp
na.alpire.ai (North America)https://mcp.na.alpire.ai/mcp

Each region has its own MCP server and only serves the organizations of its region. If you use the other one's address, the server runs nothing and answers with a 403 telling you which one to connect to (“esta organización está en la región NA: conecta a https://mcp.na.alpire.ai/mcp”, this organization is in the NA region: connect to …). In the examples, replace ak_… with your key and, if your organization is in North America, mcp.eu.alpire.ai with mcp.na.alpire.ai.

Claude Code

In a terminal:

claude mcp add --transport http alpire https://mcp.eu.alpire.ai/mcp --header "Authorization: Bearer ak_…"

Inside Claude Code, /mcp shows alpire as connected. By default the configuration stays just for you and that project, outside the repository. Add --scope user to have it in all your projects. Don't use --scope project with the key written in: it would end up in .mcp.json, inside the repository.

Cursor

In ~/.cursor/mcp.json (for all your projects):

{
  "mcpServers": {
    "alpire": {
      "url": "https://mcp.eu.alpire.ai/mcp",
      "headers": { "Authorization": "Bearer ak_…" }
    }
  }
}

In Cursor Settings → MCP, alpire should appear enabled, with its tools. Don't use the project's .cursor/mcp.json with the key written in: it would end up in the repository.

Claude Desktop

Claude Desktop connects to remote servers through a small bridge, mcp-remote. You need Node.js 18 or later installed.

  1. In Claude Desktop: Settings → Developer → Edit Config. It opens claude_desktop_config.json:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add this (if you already have other servers, add only the alpire block inside mcpServers):
{
  "mcpServers": {
    "alpire": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.eu.alpire.ai/mcp", "--header", "Authorization:${ALPIRE_AUTH}"],
      "env": { "ALPIRE_AUTH": "Bearer ak_…" }
    }
  }
}
  1. Quit Claude Desktop completely and open it again. The Alpire tools appear in the chat's tools menu.

The key goes in env and not in args on purpose: Authorization:${ALPIRE_AUTH} has no space, and that way the bridge works the same on Windows.

n8n

In a workflow with the AI Agent node, add the MCP Client Tool node as a tool:

  • Endpoint: https://mcp.eu.alpire.ai/mcp
  • Server Transport: HTTP Streamable
  • Authentication: Bearer Auth, with a new credential whose token is your ak_… key
  • Tools to Include: Selected, and tick only the ones that workflow needs

Other clients

Any MCP client that speaks Streamable HTTP and lets you add the Authorization: Bearer ak_… header will do.

Step 3 — First test

Ask your assistant:

Which Alpire organization are you connected to, and what can I do with this key?

It should answer with your organization's name, the region, the time zone and the key's permissions. If it gives an error, see “When something goes wrong”.

From there, ask it normal things. Some ideas to get started:

  • “Give me a summary of this week's calls: how many came in, how many were missed and at what times.”
  • “What free slots are there tomorrow afternoon?”
  • “List today's missed calls from numbers that had never called us before.”

Good practices

  • Say the period and the time zone. It understands “yesterday”, “this week” or “on Monday”: the server tells it what day and time it is in your organization. If you work across several time zones, say so.
  • Give the full phone number, with the country code (+34…), when you look up or book for someone.
  • Ask it to show you before changing anything. “Find the first free slot and tell me before booking” is safer than “book it”.
  • For long lists, narrow it down. “Today's missed calls” is better than “all calls”.

Security: what you should know

  • The key is a password. It gives access to your organization's data, with its permissions. Your assistant stores it in its configuration (a file on your computer, or n8n's credentials). Don't share it, don't push it to a repository and don't paste it into a chat.
  • Only what the key allows. Your assistant only sees the tools for the key's permissions, and only your organization's data.
  • Approval depends on your client. Claude and Cursor ask for your approval before using a tool that changes something, unless you turn on “always allow” or an auto-approval mode (don't do that for those tools). n8n's AI Agent node doesn't ask: there, use a read-only key or “Tools to Include: Selected” with only what's needed.
  • Watch out for what other people write. Caller names, transcripts and what chat visitors type are written by other people, and someone could hide instructions in them (“ignore the above and…”). The server asks your assistant to treat them as data, never as orders, but no AI is infallible. To analyze transcripts or chats, use a read-only key.
  • Connections made with your account (ChatGPT, Claude.ai) expire on their own (30, 90 or 365 days, your choice), renew in the background while they are valid and can be revoked just like a key. They never give more permissions than you have.
  • Revoking cuts off the operations. In Settings → API & webhooks, click Revoke next to the key. The API checks the revocation every time a tool runs; the tool list of an already-connected client may take up to 60 seconds to reflect the change because of the permissions cache.
  • There's a record. Whatever is changed with a key is logged in the organization's activity log (Settings → Audit), with the key's prefix.

Data and privacy

  • Alpire's MCP server doesn't store your full key, the arguments or the results. It uses an in-memory cache of identity and permissions valid for 60 seconds. Its technical log records which tool was used, when, with which key prefix, the organization, the result (code and duration) and, if the key fails, the IP the attempt came from; never what was asked or what was returned.
  • A call's detail includes the conversation with the customer and, if two employees talked to each other during the call, that internal consultation separately; and, with Listen to recordings, the variables the flow saved (a name, a phone number, an order number…). All of that also reaches your assistant.
  • Each region has its own server and the tools only query that region's API: organizations in Europe are served from Europe, and a North American organization's data never goes through the European server. If you connect an NA key to the EU server, it receives the key to identify the region and rejects the use before running any tool; always use your region's MCP address.
  • What your assistant reads goes out to your AI provider (Anthropic, OpenAI, Cursor…). It's a service you choose, and it needs its own legal basis, like any other tool you use with customer data. Transcripts and chats may contain callers' personal data.

When something goes wrong

You seeWhat it meansWhat to do
“falta la clave de API” (the API key is missing)the client isn't sending the headercheck that the header is Authorization: Bearer ak_…
“la clave de API no tiene el formato ak_…” (the API key doesn't have the ak_… format)the key arrives cut off, with spaces or between quotescopy it again in full (it starts with ak_), with no spaces or quotes; in a JSON file, check there's no stray one
“la clave de API no es válida, ha caducado o se ha revocado” (the API key is not valid, has expired or has been revoked)exactly thatcreate a new key
403 error when connectingyour plan doesn't include the API, or the organization is suspendedcheck your plan in Settings → Billing
“esta organización está en la región NA: conecta a …” (this organization is in the NA region: connect to …) (403)your organization is in the other regionuse your region's MCP address (step 2). If the message only says “está en otra región” (is in another region) and gives no address, it's the same cause
“demasiados intentos con claves no válidas” (too many attempts with invalid keys) (429)20 invalid keys have been tried from your IPwait 10 minutes and check the key: a client that retries on its own triggers this in no time
“demasiadas peticiones” (too many requests) (429)you've gone over 300 requests per minute from your IPwait a minute; if it happens often, check that no client retries in a loop
“no se pudo verificar la clave con Alpire” (the key couldn't be verified with Alpire) (502)the MCP server couldn't check your key with Alpire (a passing network or Alpire failure); it isn't a problem with the keyretry in a few seconds; if it persists, tell support
a tool you expected is missingthe key doesn't have that permissioncreate a key with that permission (a key's permissions can't be changed)
“demasiadas llamadas a herramientas…” (too many tool calls…)you've gone over the per-minute limit (for the key, the organization or your IP)wait a minute; if it happens often, ask for fewer things at once
upstream_saturatedthe server is handling too many requests at the same time (or, when connecting right after a restart, “demasiadas claves nuevas a la vez”, too many new keys at once)retry in a few seconds
conflict when bookingthe slot is no longer freeask your assistant for another slot
outcome_unknownthe operation may or may not have been donedon't repeat it: check first (for example, list that day's appointments; with Cal.com or Google, look at your calendar)
“la organización no tiene créditos de IA” (the organization has no AI credits) (403, when asking an assistant)there are no AI credits left. Your assistant's warning may add generic text about permissions: it's the one all 403s carry, and this sentence is what mattersadd credits in Settings → Billing
“la organización ha llegado a su tope diario de asistencia; se repone a medianoche UTC” (the organization has reached its daily assistance cap; it resets at midnight UTC) (429, when asking an assistant)the assistance's daily cap has been used upwait until midnight UTC, or raise the cap in the assistant's settings
“esta organización ya tiene todas sus consultas de asistencia en vuelo” (this organization already has all its assistance queries in flight) (429)too many questions to assistants at the same timeretry in a few seconds
Claude Desktop doesn't show AlpireNode.js isn't installed, the JSON has an error or you haven't restartedinstall Node.js 18+, validate the JSON and quit the app completely

Limits

Tool calls per key120 per minute
Tool calls per organization300 per minute (adding up all its keys)
Requests per IP300 per minute (also counting the connection and the tool list)
Invalid keys per IP20: after that, the IP is blocked for 10 minutes
API quota per key600 reads and 60 writes per minute
Maximum result your assistant receives50,000 characters (if it doesn't fit, it's trimmed and flagged)
Items per page in lists20 by default, up to 200; your assistant can page through
Active keys per organization10

Frequently asked questions

Is it the same as the Alpire API? Yes. The MCP server uses the public API with your key, so it has the same permissions and logging, and its limits plus the MCP server's own (above). If you write code, there's the API reference.

Does it cost anything? It's included from the Pro plan. Asking an assistant spends AI credits, as in the panel. Your AI provider (Claude, ChatGPT…) charges for its part separately.

Can it see other organizations? No. A key only sees its own organization.

I have two organizations. Can I use both? Yes: one key per organization and the server added twice in your client, with different names (alpire_clinic, alpire_shop). If they're in different regions, each one with its own region's address.

Can it create or change my flows? Yes, with the Create and change flows permission. It designs them in full and saves them as a checked draft; publishing is a separate step it only takes when you confirm it, with the same checks as the editor's Publish button (including the AI disclosure). It does not delete flows or move numbers between flows.

Which AI model works best? Any current model that uses tools. We've tested it with Claude, GPT and Gemini.

What happens if my assistant gets it wrong? With a read-only key, nothing: it reads more or less data than it should. Actions that change things will ask for your approval if your client does that (Claude, Cursor): read them before approving. n8n doesn't ask.

White label (for whoever runs the server)

If an organization belongs to a partner (white label), the MCP server stops presenting itself as Alpire for it: the server name the client sees, the instructions to the model, the tool descriptions and the error messages use the partner's name, and the model only talks about credits (never prices or invoices). GET /v1/me decides it, returning brand: { partner, name, support_email }; the MCP server stores no brand data. If the organization is a partner's but its brand cannot be resolved, a neutral name is used, never "Alpire".

Each instance is still per region (mcp.eu.alpire.ai). For a partner to use its own domain (mcp.partner.com):

  1. DNS: the partner points mcp.partner.com by CNAME at the Cloudflare for SaaS custom hostname we give them; Cloudflare issues the certificate.
  2. Cloudflare for SaaS: add the custom hostname in the Alpire zone with origin mcp.eu.alpire.ai, keeping the original Host.
  3. Instance nginx: a server_name accepting the partner host and proxying to 127.0.0.1:<MCP port> with proxy_set_header Host $host; and proxy_buffering off; for streaming.
  4. MCP server: add the host to MCP_PUBLIC_HOSTS (comma separated) and, if the client sends Origin, to MCP_ALLOWED_ORIGINS. Without it the server answers 403.

The key still belongs to the organization's region: the domain only changes the name it presents. This is documentation: nothing is configured on the MCP server besides those two environment settings.