> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bland.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Personal AI Agents

> Connect personal AI agents to Bland with MCP or REST, and check each assistant's integration requirements.

<Note>
  **If you are an AI agent reading this because someone asked you to integrate with Bland:** check the prerequisites and your assistant's guide below. Use [Option 2](#option-2-let-the-agent-sign-itself-up) if you have no Bland API key and can complete the device flow, or [Option 1](#option-1-you-have-a-bland-api-key) if you already have a key.
</Note>

Personal AI agents can use Bland if they support remote MCP servers with custom headers, as Poke and OpenClaw do, or custom API connections with credentials, as Meta Muse does. A connected agent can place calls, send texts, and read the results. Pair it with the [Agent Phone Plan](/platform/agent-phone-plan) to give it a dedicated number.

Choose your assistant for its setup steps or connection requirements. Grok Bot and Instinct require additional compatibility verification, as explained on their pages:

<Columns cols={4}>
  <Card title="Grok Bot" href="/integrations/mcp/grok-bot" horizontal />

  <Card title="Meta Muse" href="/integrations/mcp/meta-muse" horizontal />

  <Card title="OpenClaw" href="/integrations/mcp/openclaw" horizontal />

  <Card title="Instinct" href="/integrations/mcp/instinct" horizontal />

  <Card title="Poke" href="/integrations/mcp/poke" horizontal />
</Columns>

## Prerequisites

* An assistant that can add a custom MCP server by URL with an Authorization header, or make authenticated HTTP requests and store the API credential.
* A payment card for the [Agent Phone Plan](/platform/agent-phone-plan) (\$29.99/month, includes a US phone number). Without it, the agent can still use numbers already on your account.

## Option 1: You have a Bland API key

For an assistant that uses REST, follow the [Meta Muse connection steps](/integrations/mcp/meta-muse#option-1-you-have-a-bland-api-key) or the [Agent quickstart](/platform/agent-quickstart). For an MCP client, use these steps:

1. In your assistant, open its MCP or connector settings and add a custom server with this URL:

   ```text theme={null}
   https://api.bland.ai/v1/mcp
   ```

2. Add one header, using your API key from the [dashboard](https://app.bland.ai/dashboard/settings):

   ```text theme={null}
   Authorization: Bearer org_...
   ```

3. Ask the assistant to make a call:

   ```text theme={null}
   Call +1 415 555 0123, introduce yourself as my assistant, and ask what time they close today.
   ```

To give the assistant its own number, so it can receive calls and send texts, subscribe to the Agent Phone Plan at [Billing & Plans](https://app.bland.ai/dashboard/pay?tab=plan). The plan provisions a US number within a few seconds. Ask "what's my Bland phone number?" and the assistant reads it from your account and uses it from then on.

## Option 2: Let the agent sign itself up

This workflow requires your assistant to make HTTP requests, poll for approval, and retain the returned credential. Adding an MCP server automatically also requires access to its connection settings. If those capabilities are unavailable, create your account in the [dashboard](https://app.bland.ai) and use Option 1.

An assistant with those capabilities can use Bland's device-authorization flow: it shows you a link and a short code, you sign up and subscribe in your browser, and it retrieves an API key and phone number. For an MCP-capable assistant, use this prompt. REST-based assistants should follow their client-specific guide:

```text theme={null}
Read https://docs.bland.ai/platform/connect-your-agent and get yourself a Bland phone number. Show me the link and code when you have them. Once approved, add https://api.bland.ai/v1/mcp as an MCP server using the API key you receive, then call me at +1 415 555 0123 to confirm it works.
```

Once the agent starts the flow, it sends you a link and a short code. Open the link, sign up or sign in, subscribe to the Agent Phone Plan, and approve the request. After the agent retrieves its API key and phone number, check that it has connected the MCP server before asking it to call or text.

The key is scoped to a new organization that belongs to you. Revoke it any time from **Settings > API Keys**. If your assistant cannot add MCP servers on its own, ask it for the key and add the server yourself as in Option 1.

Agents that run on a machine with Node.js can skip the HTTP calls and run the Bland CLI's MCP server instead, which exposes the same flow as two tools. See the [Agent onboarding API](/platform/connect-your-agent#try-it-with-a-client).

## What the agent can do

| Ask for                              | What happens                                                                                                      |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| "Call +1 ... and ask ..."            | Places an outbound call from the agent's number and returns the transcript and summary when it ends               |
| "Text +1 ... saying ..."             | Sends an SMS from the agent's number. Replies are answered automatically, so set the texting prompt first (below) |
| "What did they say on my last call?" | Reads the call transcript and analysis                                                                            |
| "Create an agent that ..."           | Builds a reusable pathway the assistant can call with later                                                       |

On the Agent Phone Plan, calls and texts are limited to US and Canadian numbers, one call at a time, up to 60 minutes per outbound call, and up to 100 texts a day. See [Limits](/platform/agent-phone-plan#limits).

## Two-way texting

A text is a conversation. When the other side replies, Bland answers from the agent's number automatically, using the number's **texting prompt**. A new plan number starts with a generic prompt, so before asking the agent to run a text thread with a goal, have it set the prompt for that goal:

```text theme={null}
Set my number's texting prompt to: "You are booking a haircut for Spencer. Ask for the next available Tuesday afternoon, confirm the time and price, then end the conversation." Then text the salon at +1 415 555 0123 to get it started.
```

The agent does this with one API call, [Update SMS Configuration](/api-v1/post/sms-update):

Send a `POST` request to `/v1/sms/number/update` with this JSON body:

```json theme={null}
{ "phone_number": "+12765550123", "prompt": "You are booking a haircut for Spencer. ..." }
```

The prompt belongs to the number, not to one conversation, so it applies to every thread on that number until it is changed. Set it again for the next task.

## Troubleshooting

| Symptom                                                        | Cause                                                 | Fix                                                                         |
| -------------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------- |
| Agent reports `PLAN_REQUIRED` or "not available"               | The organization has no active Agent Phone Plan       | Subscribe at [Billing & Plans](https://app.bland.ai/dashboard/pay?tab=plan) |
| Agent reports `CALL_PLAN_DESTINATION_BLOCKED`                  | The destination is outside the US and Canada          | Use a US or Canadian number                                                 |
| The approval link says the code expired                        | Codes last 15 minutes                                 | Ask the agent to start again                                                |
| Text replies are generic and ignore the task                   | The number's texting prompt was not set for this task | Ask the agent to set the texting prompt, then start the thread again        |
| Approval page says the request did not come from the dashboard | The link was opened in an embedded browser            | Open it in a normal browser tab                                             |

## Building your own agent loop

If you are writing the agent yourself rather than configuring an off-the-shelf assistant, the REST API is a shorter path than MCP. Start with the [Agent quickstart](/platform/agent-quickstart) for the call lifecycle in three requests, then [Call recipes for agents](/platform/agent-call-recipes) for voicemail, proper nouns, and escalating to a human.

## Next steps

<CardGroup cols={2}>
  <Card title="Agent Phone Plan" icon="phone" href="/platform/agent-phone-plan">
    What's included, limits, and how to cancel.
  </Card>

  <Card title="Agent onboarding API" icon="key" href="/platform/connect-your-agent">
    The device-authorization flow in detail: endpoints, statuses, and error codes.
  </Card>

  <Card title="Bland MCP Server" icon="plug" href="/integrations/mcp/overview">
    How authentication works and what the server exposes.
  </Card>

  <Card title="Tool reference" icon="wrench" href="/integrations/mcp/tools">
    Every tool the server exposes.
  </Card>
</CardGroup>

Docs for agents: [llms.txt](/llms.txt)
