# MCP server for SMS: let any AI agent text you

> Connect any MCP client to AI Text-a-roo so your agent can text you, wait for your answer, text your contacts and check your PIN.

Canonical: https://aitextaroo.com/docs/mcp · Updated: 2026-10-25

- URL: https://api.aitextaroo.com/mcp
- Transport: Streamable HTTP
- Auth: OAuth 2.1 (sign in with your phone) or Authorization: Bearer <API key>
- MCP Registry: [com.aitextaroo/sms](https://registry.modelcontextprotocol.io/?q=com.aitextaroo%2Fsms)

## Tools

| Tool | Title | What it does | Parameters | Type |
| --- | --- | --- | --- | --- |
| `send_text` | Text the owner | Texts the phone number that owns this account. Plain text, up to 1,600 characters. | text | Sends |
| `wait_for_reply` | Wait for a reply | Waits for the owner's next text (or one that arrived since your last send) and returns it. | timeout_seconds (1–120, default 45) | Read |
| `get_recent_messages` | Recent texts | Texts the owner sent in the last five minutes, oldest first. | after_id (optional cursor) | Read |
| `text_contact` | Text a contact (Pro) | Texts someone else on the owner's behalf. Their replies are forwarded to the owner's phone. | to (E.164), text, recipient_name (optional) | Sends |
| `verify_pin` | Verify the owner's PIN | Checks a PIN the owner texted against their security PIN. Returns verified and attempts remaining. | pin | Read |
| `set_pin` | Set or change the PIN | Sets the PIN the owner chose, or changes it (which needs the current PIN). The owner is texted before any change. | pin, current_pin (if one is set) | Settings |
| `get_account` | Account and usage | Plan, AI phone number, whether a PIN is set, and today's usage against the daily limit. | none | Read |
| `get_upgrade_link` | Pro upgrade link | A Stripe checkout link the owner can open to start Pro (14-day free trial). | none | Read |
| `set_webhook` | Forward texts to a webhook | Forwards every text the owner sends to an HTTPS URL, so an agent that can't stay waiting (like a Grok Bot routine) gets each one. Needs the owner's PIN if they set one; the owner is texted the destination and can reply UNHOOK, or use the dashboard, to stop it. | url, auth_header (optional), pin (if one is set) | Settings |
| `remove_webhook` | Stop forwarding | Stops forwarding the owner's texts. The owner is texted that it's off. | none | Settings |
| `list_connections` | What's connected | Lists the keys and app sign-ins on the account: when each was added and last used, which one is the agent itself, and which one set up forwarding. | none | Read |
| `remove_connection` | Disconnect a key or app | Disconnects one key or app sign-in when the owner asks, right away. Needs the owner's PIN if they set one; forwarding it set up stops too, and the owner is texted. Signing out everything at once is only on the dashboard. | connection_id, pin (if one is set) | Settings |
| `get_help` | How it works | Explains how AI Text-a-roo works and how it's secured, so the agent can answer the owner's questions accurately, plus a step-by-step guide for setting up “text me anytime” for any kind of agent. | topic: overview, text_anytime, receiving, webhooks, security, privacy, limits, setup | Read |

## Add it to your client

### Claude and Claude Duet

Customize → Connectors → Add custom connector. Paste the URL, choose Connect, and sign in with your phone.

```
https://api.aitextaroo.com/mcp
```

### ChatGPT and Dots

Plugins → + → Add custom MCP server. Paste the URL, choose OAuth, sign in, then Create as a plugin. Pro workspaces get read-only tools.

```
https://api.aitextaroo.com/mcp
```

### Grok Bot

Ask in chat, then sign in when prompted.

```
Add a custom MCP server called AI Text-a-roo at https://api.aitextaroo.com/mcp
```

### Claude Code

With an API key (or drop --header and run /mcp to sign in with your phone):

```
claude mcp add --transport http --scope user aitextaroo https://api.aitextaroo.com/mcp \
  --header "Authorization: Bearer $AITEXTAROO_API_KEY"
```

### Codex

Add the server, then sign in with your phone (or set bearer_token_env_var in ~/.codex/config.toml).

```
codex mcp add aitextaroo --url https://api.aitextaroo.com/mcp
codex mcp login aitextaroo
```

### Gemini CLI

With an API key:

```
gemini mcp add --transport http --scope user \
  --header "Authorization: Bearer $AITEXTAROO_API_KEY" aitextaroo https://api.aitextaroo.com/mcp
```

### Cursor

Add to ~/.cursor/mcp.json:

```json
{
  "mcpServers": {
    "aitextaroo": {
      "url": "https://api.aitextaroo.com/mcp",
      "headers": { "Authorization": "Bearer ${env:AITEXTAROO_API_KEY}" }
    }
  }
}
```

### Muse Code

Add under mcp_servers in ~/.config/muse/settings.json:

```json
"aitextaroo": {
  "transport": "streamable_http",
  "url": "https://api.aitextaroo.com/mcp",
  "headers": { "Authorization": "Bearer <your API key>" }
}
```

## FAQ

### Is there an SMS MCP server for AI agents?

Yes. AI Text-a-roo runs a remote MCP server at https://api.aitextaroo.com/mcp (streamable HTTP). It gives any MCP client tools to text you, wait for your reply, text your contacts, verify your PIN and check usage. Sign in with your phone through OAuth, or send an API key as a Bearer token.

### How does wait_for_reply work?

It returns the next text you send, or one that arrived since the agent's last send, waiting up to 120 seconds per call. A waiting call gets your text before the bridge, the SSE stream or a webhook does, so you'll never get two answers to the same reply. If it times out, the agent can simply call it again.

### Can I text my agent anytime, even when it isn't waiting?

Your texts need somewhere to go. A waiting wait_for_reply gets your next text; otherwise your webhook does, if you registered one; otherwise it's kept in memory for five minutes (get_recent_messages) and then it's gone, because message content is never stored. Just ask your agent: “I want to be able to text you anytime.” It knows how to set it up for its kind of agent (get_help topic text_anytime): Grok Bot creates a webhook routine and registers it with set_webhook, so every text you send starts a run; agents on your computer run the bridge; and assistants that can't receive surprise texts yet will tell you so.

### Can an agent redirect my texts somewhere else?

Not without you knowing. Forwarding your texts to a webhook needs your security PIN if you've set one (and an agent needs the current PIN to change or remove it), and AI Text-a-roo texts you where your texts will go before forwarding starts; if it can't text you, nothing changes. Text UNHOOK to your AI's number anytime to stop it: that goes straight to AI Text-a-roo, never to an agent. Your dashboard also shows where your texts go and what set it up, with a button to stop it. This protects forwarding only: any app you've connected can read your texts while it's connected and text as your AI, so connect agents you trust. You can remove any app on your dashboard, or sign out everything at once.

### Can my agent see or disconnect my connected apps?

Yes, when you ask. The list_connections tool shows every key and app sign-in on your account, when each was last used, and which one set up forwarding. remove_connection disconnects one right away: it needs your security PIN if you've set one, forwarding it set up stops too, and AI Text-a-roo texts you that it happened. Signing out everything at once is only on your dashboard at aitextaroo.com/dashboard.

### Do I need an API key?

Not for apps that support OAuth, like Claude, ChatGPT and Grok Bot: you sign in with your phone number instead. CLI clients can use either OAuth or an API key in the Authorization header. Getting a key doesn't sign anything else out: each new key (from aitextaroo-setup, the dashboard or POST /v1/auth/confirm) is added next to the others, up to 10 per account, and AI Text-a-roo texts you whenever a key is added or an app signs in.

### Can I self-host the MCP server?

The MCP server is part of the hosted AI Text-a-roo API. The Python SDK and the bridge are open source (MIT) on GitHub, and the Agent Skill is MIT-licensed.

### Is AI Text-a-roo in the MCP Registry?

Yes, as com.aitextaroo/sms in the official MCP Registry (registry.modelcontextprotocol.io), so MCP clients and directories that read the registry can find it and connect to https://api.aitextaroo.com/mcp. Only someone who controls aitextaroo.com can publish under that name. A listing under any other name isn't from AI Text-a-roo.
