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

# Tools

> What the 2extract MCP server lets an agent do - the tools it exposes, the scopes they need, and the constraints that change how you should ask.

Five domains of tools. You never call these by hand - you describe the outcome and the agent picks them.

***

## Account

Needs `balance:read` for balance, `stats:read` for usage and history. All read-only - nothing here costs anything or changes anything.

| Tool                        | What it does                                                  |
| :-------------------------- | :------------------------------------------------------------ |
| `getAccountBalance`         | Current balance, credit limit, and available credit           |
| `getAccountTrafficUsage`    | Traffic and spend over a period, for the account or one proxy |
| `listAccountBalanceHistory` | Deposits and charges over a period                            |

***

## Geo targeting

Needs `geo:read`. These turn names you say out loud into the values a connection username expects.

| Tool               | What it does                          |
| :----------------- | :------------------------------------ |
| `listGeoCountries` | Countries available for targeting     |
| `searchGeoRegions` | Regions and states inside a country   |
| `searchGeoCities`  | Cities inside a country or region     |
| `searchGeoZips`    | ZIP and postal codes inside a country |
| `searchGeoISP`     | Mobile carriers, for ISP targeting    |

Three things constrain what you can ask for:

* **Geographic and network targeting are mutually exclusive.** Country, state, city and ZIP go together. ISP and ASN go together. Never both in one connection.
* **City, state and ZIP need a country.** Asking for a city on its own does nothing.
* **ISP targeting is mobile proxies only.**

<Note>
  Ask the agent to search by name rather than list everything. Country and city catalogues are long, and an unfiltered list comes back capped - which is how an agent ends up telling you a country is unavailable when it simply fell off the end of the page.
</Note>

***

## Plans

Needs `proxies:read`.

| Tool             | What it does                                    |
| :--------------- | :---------------------------------------------- |
| `listProxyPlans` | The plans available to you, and what each costs |

The agent calls this before creating anything, so you do not have to know which plan you want. Saying "residential" is enough; saying nothing at all is usually also enough.

***

## Proxy resources

Reading needs `proxies:read`. Everything else needs `proxies:write`.

| Tool                      | What it does                                                  |                |
| :------------------------ | :------------------------------------------------------------ | :------------- |
| `listProxyResources`      | Every proxy on the account, with traffic and spend            |                |
| `getProxyResource`        | Full detail for one proxy, including both whitelists          |                |
| `createProxyResource`     | Create a proxy                                                | Billable       |
| `updateProxyResource`     | Change description, status, geo, whitelist or limits together |                |
| `deactivateProxyResource` | Stop traffic without deleting                                 |                |
| `deleteProxyResource`     | Remove a proxy permanently                                    | Confirms first |
| `regenerateProxyPassword` | Issue a new password                                          | Confirms first |

What to keep in mind:

* **The name is permanent.** It is chosen at creation and cannot be changed afterwards, because it forms part of the connection username. Lowercase letters, digits and underscores only - no hyphens, since a hyphen separates parameters in that username.
* **One proxy covers every country.** The country is set per connection, not per resource, so there is no reason to ask for one proxy per market.
* **Deactivation is reversible, deletion is not.** If you want the traffic to stop but the resource to survive, say deactivate.
* **A new password breaks whatever is connected.** Anything using the old one stops immediately.

***

## Proxy settings

Needs `proxies:write`.

| Tool                  | What it does                                  |
| :-------------------- | :-------------------------------------------- |
| `setProxyLimits`      | Cap traffic or spend, per day or per month    |
| `setProxyIpWhitelist` | Restrict which IP addresses may use the proxy |

* **Limits come in two flavours:** a traffic ceiling or a money ceiling, reset daily or monthly. A limit is not checked at the moment you set it - when usage crosses the line, the proxy is suspended in the background and stops passing traffic.
* **The whitelist replaces, it does not append.** Say "add `203.0.113.10` to the whitelist" rather than "set the whitelist to `203.0.113.10`", so the agent reads the current list before writing.

***

## Destructive actions

Two tools are marked destructive in the protocol: `deleteProxyResource` and `regenerateProxyPassword`. A well-behaved client shows you what is about to happen and waits for a yes.

<Warning>
  That confirmation lives in your client, not on our side. Treat any key carrying `proxies:write` as capable of deleting proxies, and scope it accordingly - see [Provisioning & Cost Control](/ai/use-cases/provisioning-cost-control).
</Warning>

***

## What the agent knows without asking

Alongside the tools, the server publishes a set of documents the agent reads by itself, describing what each tool returns. You never see them and there is nothing to configure.

They are the reason an agent connected to this server tends to get things right the first time: it knows what came back, rather than guessing from field names.

***

## Next steps

<CardGroup cols={2}>
  <Card title="Prompts" icon="list-check" href="/ai/mcp-server/prompts">
    Four guided workflows built on top of these tools.
  </Card>

  <Card title="Usage Examples" icon="terminal" href="/ai/mcp-server/usage-examples">
    See the tools called in sequence on a real task.
  </Card>
</CardGroup>
