# Trade from an AI assistant (MCP)

_Source: https://docs.neurotrading.io/en/api/mcp_

Neurobot runs an [MCP](https://modelcontextprotocol.io) server, so an AI assistant such as Claude, Claude Code or Cursor can trade on your account. You ask it to check a price, buy a token or set a stop-loss, and it does so through your own Neurobot wallets.

The server URL is `https://api.neurotrading.io/mcp`.

You connect by signing in to Neurobot from the assistant and choosing what it may do: **Paper Trading only**, or **live trading**. There is nothing to install and no token to copy.

> **Warning**
>
> With live trading allowed, the assistant acts on your real account when it is in real mode, with the same powers as the API. Start with Paper Trading only: a paper-only connection can't see or touch your real wallets, whatever mode your account is in on the dashboard or in the Telegram bot.

## Connecting

It works with any assistant that supports remote MCP servers with OAuth sign-in, including Claude (claude.ai, the desktop and mobile apps, Claude Code), ChatGPT (developer mode), the Gemini app, Gemini CLI and Cursor. The [step-by-step tutorial](/tutorials/connect-an-ai-assistant) walks through each one with screenshots.

Give your assistant the server URL. The first time it connects, it opens Neurobot in your browser:

1. Sign in to Neurobot if you aren't already.
2. Check the app's name and the address it will send you back to. Neurobot doesn't verify the names apps give themselves, so only continue if you started this yourself, from an assistant you trust.
3. Choose **Paper Trading only** (recommended) or **Live trading**. Allowing live trading asks for your authenticator code if your account has MFA on.
4. Select **Allow**. You're sent back to the assistant, which is now connected.

**Claude (claude.ai and the Claude apps)**: in Settings → Connectors, add a custom connector with the server URL.

**Claude Code**

```bash
claude mcp add --transport http neurobot https://api.neurotrading.io/mcp
```

Then run `/mcp` in Claude Code and choose **Authenticate** for `neurobot`.

**Cursor** (`.cursor/mcp.json` in your project, or `~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "neurobot": { "url": "https://api.neurotrading.io/mcp" }
  }
}
```

Cursor shows a **Needs login** button for the server the first time.

Any client that supports remote MCP servers with OAuth sign-in works the same way. Client developers: the details are in [OAuth for AI assistants](/api/oauth).

### Paper Trading only, or live trading

| | Paper Trading only | Live trading |
| --- | --- | --- |
| Wallets and balances it sees | Your paper wallets | Those of your account's current mode |
| Trades | Simulated, against live prices | Real when your account is in real mode |
| Switching your account's mode | Not possible (`set_trading_mode` isn't offered) | Allowed, and it changes the mode on the dashboard and the bot too |

`get_account` says which one a connection has (`connection.access`). To change it, disconnect the assistant and connect it again.

### Staying connected, and disconnecting

The assistant renews its access on its own. A connection that isn't used for 30 days ends, and the assistant asks you to sign in again.

You can see every connected assistant, what it may do and when it was last used in **Settings → AI connections** on the dashboard. **Disconnect** ends a connection at once: the assistant's next request is refused.

### With a session token instead

Clients that can't sign in with OAuth can still send your API session token ([Authentication](/api/authentication)) in an `Authorization` header as `Bearer` followed by the token:

```bash
claude mcp add --transport http neurobot https://api.neurotrading.io/mcp \
  --header "Authorization: Bearer $NEURO_TOKEN"
```

A session token connection acts in your account's current mode, like live trading. The token gives full access to your account and lasts 7 days, so prefer OAuth: it can be limited to Paper Trading, and you can disconnect it from Settings.

## What the assistant can do

| Tool | What it does |
| --- | --- |
| `get_account` | Whether you're in Paper Trading or real mode, what the connection may do, your default slippage and fee settings, and the networks available. |
| `set_trading_mode` | Switch the account into or out of Paper Trading. Not offered on a Paper Trading only connection. |
| `list_wallets` | Your wallets in the current mode, with SOL or ETH balance, wSOL, USDC and total USD value. |
| `get_positions` | The tokens a wallet holds, with value and profit or loss. |
| `create_wallet` | Create new wallets on Solana or Robinhood Chain. |
| `transfer` | Send SOL, an SPL token, or ETH on Robinhood Chain from one of your wallets. |
| `buy` | Buy a token, spending an amount of SOL or ETH. |
| `sell` | Sell a percentage of a holding. |
| `get_trade_status` | Whether a Solana trade landed. |
| `get_trade_history` | Your recent trades. |
| `get_token_price` | A token's current price, market cap and liquidity. |
| `watch_price` | Follow a token's live trades for up to 45 seconds, optionally stopping when the price reaches a level. |
| `get_price_history` | Price candles for a Solana token. |
| `search_tokens`, `get_trending_tokens` | Find tokens. Trending tokens include holder count, the top-10 holders' share and recent price changes. |
| `get_token_risk` | How old a Solana token and its pool are, whether it graduated, and how concentrated its holders are. The largest holder is shown apart from the next nine, because on a graduated token it is usually the pool itself. |
| `set_take_profit_stop_loss` | Sell automatically when the price rises or falls to a level, in percent or market cap. |
| `list_take_profit_stop_loss`, `cancel_take_profit_stop_loss` | See and cancel those levels. |

## Safety built in

- **The assistant asks first.** Every tool that moves money or changes later trades (`buy`, `sell`, `transfer`, `create_wallet`, setting or cancelling take-profit / stop-loss, switching mode) is marked as destructive. Assistants ask you to approve each call; keep that approval on.
- **You choose what it can reach.** A Paper Trading only connection is held to Paper Trading by Neurobot itself, not by the assistant's good behaviour.
- **You always see the mode.** Every result includes `"mode": "paper"` or `"mode": "real"`.
- **Your private keys stay out of the conversation.** `create_wallet` returns the new address only. To back up a key, export it from the dashboard with your MFA code. The assistant never gets your session either: its access works for the MCP server only.
- **The same rules as the dashboard apply.** Transfers to an address that isn't one of your own wallets, and new wallets, need your MFA code (`mfaCode`). Your default slippage and fee settings apply unless you or the assistant set others for one trade.

## Units to know

- `buy` amount is how much to **spend**: SOL on Solana, ETH on Robinhood Chain.
- `sell` is a **percent** of what the wallet holds.
- `transfer` amounts are whole units: `0.5` is 0.5 SOL, ETH or tokens.
- Take-profit and stop-loss in `percent` are written without a minus: a stop-loss of `20` means −20%. On Solana, if you set only one side in percent mode, your account's default for the other side applies (stop-loss 10%, take-profit 20%). The result shows the levels actually set.
- Robinhood Chain amounts come back in base units, with a whole-unit reading (`tokenAmountWhole`, `payAmountWhole`) next to them.

## Example conversation

> **You:** What's my mode, and how much SOL is in my paper wallet?
>
> **Assistant:** *(get_account, list_wallets)* You're in Paper Trading. Your paper wallet 5Dq8…wnwo holds 49.49 SOL.
>
> **You:** Buy 0.2 SOL of Kimchi, then put a +50% take-profit and a −20% stop-loss on the whole position.
>
> **Assistant:** *(asks you to approve buy, then set_take_profit_stop_loss)* Bought 1,018.8 Kimchi for 0.2 SOL (paper). Take-profit set at 0.000293 SOL per token, stop-loss at 0.000157 SOL.
