# Link with the MCP

Catena runs a remote MCP (Model Context Protocol) server at the following URL:

```text
https://api.catena.com/mcp
```

Apps that support custom connectors can use it to act as a Catena agent. The
agent's [policy](https://docs.catena.com/policies.md) will apply the same way it does for any other agent.

## Requirements

To set up a connector, you'll need the operator or admin [role](https://docs.catena.com/team.md) in the
organization the connector will act in.

## Set up your app

We support the following apps:

- [Claude (desktop and web)](https://docs.catena.com/integrations/claude-app.md)
- [ChatGPT](https://docs.catena.com/integrations/chatgpt.md)

## Signing in

During sign-in, you choose three things:

- **Organization:** The organization the connector acts in.
- **Live or sandbox:** The live organization or its [sandbox](https://docs.catena.com/sandbox.md).
- **Agent:** The agent the connector acts as, either an existing agent or a new
  one.

Sign-in uses OAuth with dynamic client registration, and we publish the server's
metadata at `https://api.catena.com/.well-known/oauth-protected-resource/mcp`.

## Tools

A connector exposes the following tools to the app:

| Tool                                                                                      | Description                                               |
| ----------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| `whoami`                                                                                  | Shows which agent the connector acts as.                  |
| `get_policy`                                                                              | Shows the agent's policy.                                 |
| `get_setup_state`                                                                         | Shows which setup steps remain and who can complete them. |
| `list_accounts`, `get_account_balance`, `get_account_transactions`, `get_deposit_address` | Reads the accounts the policy allows.                     |
| `list_counterparties`, `create_counterparty`, `request_counterparty_details`              | Finds, adds, and requests details for counterparties.     |
| `send`, `transfer`                                                                        | Submits payments under policy.                            |
| `get_intent`, `list_intents`, `cancel_intent`                                             | Follows and cancels intents.                              |
| `request_policy_override`                                                                 | Asks for a temporary limit increase.                      |
| `create_idempotency_key`                                                                  | Makes a key for a retry-safe submission.                  |
| `submit_feedback`                                                                         | Sends feedback to the Catena team.                        |
| `unlink`                                                                                  | Disconnects the connector from the agent.                 |

## Limitations

There are two things a connector cannot do that the CLI and SDK can:

- A connector holds no signing key, so every payment it submits will wait for an
  admin to approve and sign it in the console.
- A connector cannot pay [x402 or MPP endpoints](https://docs.catena.com/x402-and-mpp.md). Use the
  [CLI](https://docs.catena.com/connect/cli.md) or the [SDK](https://docs.catena.com/sdk.md) for those.

If your agent needs to pay without a person, or to pay x402 or MPP endpoints, it
should connect with the CLI or a [secret key](https://docs.catena.com/connect/secret-keys.md) instead. See
[Connect an agent](https://docs.catena.com/connect.md) to choose a method.

## Related

- [Claude (desktop and web)](https://docs.catena.com/integrations/claude-app.md): Add Catena to the Claude app as a custom connector, and Claude will read accounts and submit payments for an admin to approve.
- [ChatGPT](https://docs.catena.com/integrations/chatgpt.md): Add Catena to ChatGPT as a custom plugin in developer mode, and ChatGPT will read accounts and submit payments for an admin to approve.
- [Handle approvals](https://docs.catena.com/approvals.md): Learn what goes to the approvals queue, who can approve, when requests expire, and what happens between an approval and a completed payment.
