# MCP — the agent's tools

> What tools a Ghosty agent has, how they are named and how they reach each engine through the Model Context Protocol.

URL: https://www.ghosty.studio/en/docs/protocols/mcp

The agent's tools arrive over **MCP** (Model Context Protocol). They are the same for every engine: a new tool on the platform is seen by any agent without touching its machine.

## Where they come from

| Source | Examples | Who provides them |
|---|---|---|
| **The machine** | read and write files, terminal, `pdf-reader`, PDF rendering, TTS | The engine, inside the machine. |
| **The platform** | `programar_seguimiento` (schedule a follow-up: a future turn), web search | Studio, per turn. |
| **The Teams workspace** | documents, forms, reminders, email, memory, brand, prospecting | Teams, with a 5-minute credential per turn. |
| **Your connectors** | Gmail, Calendar, Drive, GitHub, Odoo… | On your behalf; see [Connectors](/en/docs/connectors). |

## How they are named

Inside the model each tool carries its MCP server's prefix: `ghosty__doc_read`, `ghosty__form_create`, `ghosty__reminder_create`. If you tell the agent "use `doc_read`" it finds it anyway: the prefix belongs to the transport, not the name.

Families in Teams: `chat_*`, `doc_*`, `form_*`, `reminder_*`, `email_send`, `memory_*`, `brand_*`, `prospect_*`.

## Scope per channel

Scope is decided by **the turn**, not the agent:

- **DM or private channel**: all the workspace's tools and the invoker's connectors.
- **Public channel (WhatsApp)**: no personal connectors and no destructive actions; the agent can escalate to a person.
- **Editor over ACP**: the machine's tools plus the workspace's if the agent is activated in one.

An agent can only do what the **person who invoked it** could do.

## Permissions

Some actions ask for confirmation (deleting, sending to third parties). The client receives a `permission` event with options and answers; if nobody answers within ten minutes it is denied. See [Events](/en/docs/api/events#catalog).

## Bring your own MCP servers

With the [configuration API](/en/docs/configure) you give your agent its own MCP servers (http or stdio). The list is replaced whole and the agent restarts:

```bash
curl -X PUT https://www.ghosty.studio/api/v2/agents/$GHOSTY_AGENT_ID/mcp \
  -H "Authorization: Bearer $GHOSTY_AGENT_TOKEN" -H "Content-Type: application/json" \
  -d '{"servers":[
    {"name":"notion","type":"http","url":"https://mcp.notion.com/mcp","headers":{"Authorization":"Bearer …"}},
    {"name":"fs","command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","/data/work"]}
  ]}'
```

Only on engines with their own machine (Ghosty · Lite and Goose). A `stdio` server needs the binary to exist on the machine (Node and Python are there).
