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

# External Capabilities

> Connect the agent to your own APIs or MCP tools, beyond the platform's built-in capabilities.

## What is this?

**External Capabilities** let the agent call systems outside the platform — your own API, or a connected MCP tool — the same way [Capabilities](/workspace/ai-agents/tabs/capabilities) let it act on contacts and automations. Use this once your first agent is working and you need it to reach something the built-in capabilities don't cover.

<Info>
  Adding an external capability requires the `automations:edit` permission.
</Info>

## What can I do here?

Click **Add External Capability** and choose a **Type**:

| Type                       | Use it when                                                                                                      |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **HTTP Request / Webhook** | You want the agent to call your own REST API — check an order in your own system, look something up, submit data |
| **MCP Tool**               | You have an MCP server exposing one or more tools you want the agent to use                                      |

Every external capability has the same core fields, whichever type you pick:

* **Availability** — **All agents on this channel**, or **only this agent**.
* **Display Name** — a short, clear name, e.g. *Book Appointment*.
* **When should the AI use this tool?** — a description of exactly when to call it. This is the same mechanism [automation matching](/workspace/ai-agents/tabs/capabilities#trigger-automation) uses — write it specifically, as an instruction, not a label.

### HTTP Request

* **Method** and **URL** — the endpoint to call.
* **Request Body (JSON)** — supports variables, e.g. `{"email": "{{input.email}}"}`.

### MCP Tool

* **MCP Server URL** — where your MCP server is reachable.
* **Selected Tools** — pick from the tools the server exposes, or add one manually by name.

## How to use it

### Write the "when to use this" field like you mean it

This one field is the entire decision surface — the same pattern that drives every other "when should this happen" choice in the builder. A vague description means the agent won't reliably reach for the tool even when it should; a specific one ("Use this to look up a customer's order status by email") gets matched correctly against real customer messages.

### Scope Availability deliberately

If several agents on this channel should all be able to use the same external tool, set Availability to **All agents on this channel** rather than recreating it per agent.

## Troubleshooting / Technical Notes

* **I don't have permission to add one.** You need `automations:edit` — check with your workspace admin.
* **The agent never calls it.** Almost always the "When should the AI use this tool?" description — make it specific to a real customer request, not a generic label.
* **The tab is empty right after creating the agent.** Save the agent on [General](/workspace/ai-agents/tabs/general) first — External Capabilities only unlocks afterward.

## Related docs

* [Capabilities](/workspace/ai-agents/tabs/capabilities)
* [Skills](/workspace/ai-agents/tabs/skills)
* [Integrations](/workspace/automation/steps/integrations)
