your AI agent makes phone calls for you
homeexamplesinstall mcpblogsign inrules

blog > grok-connectors-mcp-phone-calls

Grok connectors and MCP: how to add custom tools to Grok (and make phone calls)

Grok can use custom MCP servers in three places, grok.com, Grok Bot, and the xAI API, and each one adds them differently. Here's what Grok connectors are, how to add your own, and a worked example that gives Grok a phone.

Nick Khami · · 10 min read
[ 💬 0 ]
Grok connectors and MCP servers, with phone calls as the worked example

The short answer: yes, Grok supports MCP. Grok connectors are how Grok reaches tools and data outside the chat, and besides the built-in ones (Gmail, Google Drive, Outlook, Salesforce and others), you can add any public MCP server as a custom connector. Where you add it depends on which Grok you use: on grok.com you add it yourself at grok.com/connectors, in Grok Bot you ask the Bot to add a custom MCP server, and with the xAI API you pass the server in the tools array of your request. The worked example below adds call4me, an MCP server that makes phone calls, so Grok can call a restaurant or a doctor's office for you.

We support Grok as one of the agents call4me works with, and the first version of our setup instructions mixed up grok.com and Grok Bot. So this page sorts out the three, using xAI's own docs.

What are Grok connectors?

Grok connectors let Grok read and act on your other tools from inside a conversation. xAI's connectors page puts it this way:

Connectors are available to all Grok users and let Grok access your external tools and data sources directly within a conversation.

There are two kinds:

get new posts by email · 1 reader subscribed

Does Grok support MCP?

Yes. Grok's MCP support covers all three xAI products: the grok.com chat (custom connectors), Grok Bot (custom MCP servers), and the xAI API (remote MCP tools). Here's how xAI MCP support works in each.

Yes, in all three places Grok runs, though each one sets it up differently:

Where you use Grok How you add an MCP server Who adds it
Grok chat on grok.com grok.com/connectors, New Connector, Custom You, in settings
Grok Bot (desktop and mobile app) Ask the Bot in chat, or Setup, Plugins, Add on a Team Bot The Bot, from your chat message
xAI API A "type": "mcp" entry in the request's tools array Your code

Two rules apply everywhere:

How to add a custom MCP server on grok.com

This is the one most people mean by "Grok connectors". xAI's instructions, word for word:

To add a custom MCP connector: Go to grok.com/connectors. Click New Connector, then select Custom. Enter the MCP server URL and complete any required authentication.

Grok then finds the tools the server offers and makes them available in your chats, the same way as the built-in connectors.

One thing that trips people up: the Grok chat can't add a connector for you. If you paste a setup prompt into grok.com that says "add this MCP server", Grok has no tool to do it. You do this step yourself in settings, then come back to the chat.

On Grok Business and Enterprise plans there's an extra step first. According to xAI's connector management page, a team admin adds the server in the xAI console (console.x.ai, Grok Business, Connectors, + Add Connector, Other, then the MCP server URL). After that, team members connect it on grok.com/connectors.

What is Grok Bot?

Grok Bot is xAI's app for AI teammates you keep around. In xAI's words, it "gives you Bots you can keep around: AI teammates with names, jobs, and context that compounds over time" (Grok Bot docs). The parts that matter for adding tools:

That makes it different from the grok.com chat: grok.com answers questions and uses the connectors you add in settings, while a Bot does multi-step work and can wire up its own tools when you ask.

How to add an MCP server to Grok Bot

Grok Bot is xAI's agent app: each Bot has its own cloud computer with a browser, files, and a terminal, and you work with it by messaging it (Grok Bot docs). Unlike the grok.com chat, a Bot can set up its own tools. For a Team Bot, xAI's Team Bots page says the Bot's Setup section has Plugins, Secrets, Skills, and Files, and you "Choose Add on any row, or ask the Bot in chat."

Custom MCP servers come in two types:

The quickest way is to ask in chat:

Add a custom MCP server called call4me at https://call4.me/mcp/YOUR-KEY (remote HTTPS, no headers, no auth).

Say "custom MCP server" so the Bot doesn't go looking for a ready-made plugin with a similar name instead.

What happened when we tried it

We ran this on October 1, 2026 in the Grok Bot desktop app on a Mac, with a real call4me account.

  1. The app wanted an update first. It opened to a mandatory "Restart to update" screen, so we restarted it before doing anything else.
  2. There was no form for this. We looked through the integrations marketplace and the installed plugins screen and found no obvious place to type in a custom MCP server. So we went back to the chat.
  3. The chat did all of it. We asked the Bot to add a custom remote server named call4me at our personal call4me URL, HTTPS, no headers, no extra authentication. There was no separate approval dialog. The Bot set it up from the conversation and reported that call4me was connected and exposed 15 tools.
  4. Then we asked it something real: "Use call4me to check my balance." The Bot called the new tool and came back with the balance, worked out that it was about 32 minutes of calls at $0.25 a minute, noted that UAE calls cost $0.40 a minute, confirmed the monthly reload was off, and listed the account's calling numbers. That last part is the giveaway that it was reading live account data, not echoing our prompt back.

That's the whole setup: one message, and the Bot connects it. Check the URL is right before you send it.

Treat that personal URL like a password: it has your key in it. Paste it only into the Bot's chat, not into anything you share.

The Team Bot credential trap

How a plugin signs in decides whose account the Bot uses. From the Team Bots table:

Plugin Whose access the Bot uses
Signs in with an account (OAuth) The person talking to the Bot
Configured with a key or token The Bot's own credential, the same for everyone
Custom MCP server, Remote HTTPS The Bot's own credential, or each person's sign-in if the server uses OAuth

So on a Team Bot, a URL with your personal key in it means every teammate who asks the Bot to do something does it on your account. For call4me, that means calls billed to you. On a Team Bot, add the sign-in version (https://call4.me/mcp) so each teammate connects their own account. On your own personal Bot, the key URL is simpler.

How to use MCP servers with the xAI API

If you're building your own Grok agent, the API connects to MCP servers for you. You add the server to the tools array, and xAI handles the connection. The settings, from the remote MCP docs:

Setting Required What it does
server_url Yes The MCP server's URL. Streaming HTTP or SSE only.
server_label Yes A name for the server, used to label its tools
authorization No A token sent in the Authorization header
headers No Extra headers (extra_headers in the native SDK)

This mirrors xAI's own example, with call4me as the server:

curl https://api.x.ai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
  "model": "grok-4.7",
  "input": [
    { "role": "user", "content": "Call Rosa'\''s Kitchen at +1 555 010 0199 and book a table for 4 tonight around 7." }
  ],
  "tools": [
    {
      "type": "mcp",
      "server_url": "https://call4.me/mcp/YOUR-CALL4ME-KEY",
      "server_label": "call4me"
    }
  ]
}'

This uses the personal server URL, which carries your key, so there's nothing else to configure. call4me also accepts the key as an Authorization: Bearer header on https://call4.me/mcp, which is what the authorization setting is for, but xAI's docs don't say whether it adds the Bearer prefix for you, so the key URL is the safer choice. We haven't run this exact request against xAI's API ourselves.

Worked example: give Grok a phone with call4me

call4me is an MCP server that places real phone calls. Your agent hands it a goal ("book a table for four at seven"), a voice caller talks to the business like a person would, and your agent gets the outcome and transcript back. It works in Claude Code, Codex, ChatGPT and Claude, and the same server works in Grok.

1. Get your server URL. Sign in at call4.me. Your personal server URL is on your account page. It has your key in it, so treat it like a password.

2. Add it to Grok.

3. Check the tools showed up. Once connected, Grok can see tools like these:

Tool What it does
call4me_place_call Calls a business with a goal, the facts it needs, and what it may agree to
call4me_get_call Follows a call: status, live transcript, and the outcome when it ends
call4me_answer_question Answers a question the caller asks mid-call, while the business waits
call4me_connect_me Rings your phone to join the call, or just to listen in
call4me_get_requirements Lists what a kind of call needs before dialing (a doctor's office needs a date of birth, a restaurant needs a party size)
call4me_get_balance Shows your credits and your call4me phone numbers

Ask Grok to run call4me_get_balance first. If it answers with your balance, everything is connected.

4. Ask for a call. Grok turns your request into a tool call that looks like this:

{
  "name": "call4me_place_call",
  "arguments": {
    "to": "+1 555 010 0199",
    "business": "Rosa's Kitchen",
    "category": "restaurant",
    "goal": "Book a table for 4 tonight (Thu Oct 1) around 7pm under Khami.",
    "flexibility": "anything between 6:30 and 8 is fine"
  }
}

Then it keeps checking call4me_get_call until the call ends and tells you what happened. If the restaurant asks something the caller doesn't know, like "is a booth OK?", the question comes back to Grok to answer while they wait.

Let your agent make the call

If you use Grok, paste this into a chat once call4me is connected:

Use call4me for phone calls. Call [business] at [phone number] and [what you want done]. Before dialing, check call4me_get_requirements and ask me for anything missing in one message. Ask me before agreeing to anything that costs money, and tell me the result in one or two lines.

grok · mcp · ai agents · ai phone assistant

Nick Khami @skeptrunebuilds call4me, the phone for your AI agent. software engineer; previously founded Trieve. email me@call4.me.

get new posts by email · 1 reader subscribed
no tracking, no spam; one email per post, unsubscribe in one click. or use the atom feed. posts marked paid need a supporter subscription (monthly, cancel any time).

0 comments

read next

Meta Muse AI agent connectors, with phone calls as the worked example
How to use Meta Muse with custom connectors (and give it a phone)
Muse is Meta's personal AI agent, and it can't install an MCP server the way Claude Code can. It builds its own connectors instead. Here's what Muse is, how it connects to other services, and the exact message that gets it making phone calls.
OCT 1 · Nick Khami
Finding a new primary care doctor, 15 calls to 10 practices, 2 new-patient visits booked, recorded
How to find a new primary care doctor with an out-of-state plan (15 recorded calls)
A call4me user in Baltimore needed a new primary care doctor and had an out-of-state Blue Cross Blue Shield PPO. Their AI phone assistant called 10 practices. Here's who was taking new patients, who took the plan, how far out the first opening was, a $2,121 surprise, and all 15 recordings.
OCT 1 · Nick Khami
The Adderall shortage, 10 South Florida pharmacies called, 5 answered, none had it
Adderall shortage: we called 10 South Florida pharmacies, and every one that answered was out
A call4me user with a prescription for Adderall 30 mg had their AI phone assistant call 10 pharmacies in Miami-Dade and Broward on one morning. Five answered the question, and all five said no. Here's what each one said, all 11 recordings, and what to do next.
OCT 1 · Nick Khami

newer: Amazon Pharmacy phone number: what happens when you call, and how we got a stuck prescription moving in under an hour
older: How to use Meta Muse with custom connectors (and give it a phone)
all posts · archive · atom feed