# Canli Paper Trading

MCP-сервер даёт агенту торговать на бумажном счёте Alpaca, но не позволяет обойти проверки перед отправкой ордера. Ключи остаются в вашем окружении.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Автор: arhancanli
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/arhancanli/canlicapital/tree/HEAD/mcp-paper
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/mcp/canli-paper-trading

## Что делает

Сервер работает локально через stdio. Агент может посмотреть счёт, собрать ордера по целевым весам, прогнать их через проверки и отправить — но только те, что прошли. Каждый ордер сверяется с вашими лимитами, торговым календарём и рубильником. Прошедшие получают токен на пять минут, и отправить ордер можно только с ним.

Лимиты лежат в `CANLI_HOME/limits.json` (по умолчанию `~/.canli`): максимальный номинал ордера, доля позиции, общий и чистый лимиты, разрешённые типы ордеров. Вызов может ужесточить их для одной проверки, ослабить — нет. Пока в каталоге есть файл `KILL`, ни один предпросмотр не проходит и отправка отклоняется. Токен привязан к конкретным ордерам: поменяли количество — он больше не сработает. Сервер перезапустили — старые токены недействительны.

Бумажный счёт — единственный режим. Живые ключи сервер не принимает, хоста для реальной торговли в пакете нет. Заполнения на бумаге — симуляция Alpaca, без очереди и влияния на рынок, поэтому стратегия, показавшая себя на бумаге, ещё не доказала, что работает вживую. Для запуска нужны бумажные ключи Alpaca (id начинается с `PK`) и Node.js — сервер ставится через `npx`.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `ALPACA_PAPER_KEY_ID`, `ALPACA_PAPER_SECRET_KEY`, `CANLI_HOME` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env ALPACA_PAPER_KEY_ID=<ALPACA_PAPER_KEY_ID> --env ALPACA_PAPER_SECRET_KEY=<ALPACA_PAPER_SECRET_KEY> --env CANLI_HOME=<CANLI_HOME> --transport stdio mcp-paper -- npx -y canli-paper-trading-mcp
```
Вместо <…> подставьте свои значения

### Codex

**Командой платформы**
```bash
codex mcp add mcp-paper --env ALPACA_PAPER_KEY_ID=<ALPACA_PAPER_KEY_ID> --env ALPACA_PAPER_SECRET_KEY=<ALPACA_PAPER_SECRET_KEY> --env CANLI_HOME=<CANLI_HOME> -- npx -y canli-paper-trading-mcp
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-paper": {
            "command": "npx",
            "args": [
                "-y",
                "canli-paper-trading-mcp"
            ],
            "env": {
                "ALPACA_PAPER_KEY_ID": "<ALPACA_PAPER_KEY_ID>",
                "ALPACA_PAPER_SECRET_KEY": "<ALPACA_PAPER_SECRET_KEY>",
                "CANLI_HOME": "<CANLI_HOME>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-paper": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "canli-paper-trading-mcp"
            ],
            "env": {
                "ALPACA_PAPER_KEY_ID": "<ALPACA_PAPER_KEY_ID>",
                "ALPACA_PAPER_SECRET_KEY": "<ALPACA_PAPER_SECRET_KEY>",
                "CANLI_HOME": "<CANLI_HOME>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e ALPACA_PAPER_KEY_ID=<ALPACA_PAPER_KEY_ID> -e ALPACA_PAPER_SECRET_KEY=<ALPACA_PAPER_SECRET_KEY> -e CANLI_HOME=<CANLI_HOME> mcp-paper npx -y canli-paper-trading-mcp
```
Вместо <…> подставьте свои значения

## Когда брать
- дать агенту торговать на бумажном счёте, не выпуская контроль из рук
- проверить ордера по своим лимитам до отправки
- перевести целевые веса из бэктеста в целые акции
- остановить торговлю одним файлом `KILL`
- получить подписанное подтверждение, какие ордера и против каких лимитов проверялись

## Примеры запросов агенту
- Покажи состояние бумажного счёта: капитал, позиции, открытые ордера и часы рынка.
- Перебалансируй бумажный счёт до 60% SPY и 40% TLT, покажи проверки и отправь, если всё проходит.
- Отмени открытый ордер по его id.

## Похожие
- [Polymarket Paper Trader](https://affpapa.org/nevibecode/mcp/polymarket-paper-trader.md) — MCP-сервер · ★ 492
- [portfolio-manager](https://affpapa.org/nevibecode/skills/portfolio-manager.md) — скилл · 3900 установок
- [breakout-trade-planner](https://affpapa.org/nevibecode/skills/breakout-trade-planner.md) — скилл · 3100 установок
- [trading-wisdom](https://affpapa.org/nevibecode/skills/trading-wisdom.md) — скилл · 800 установок
- [predexon-prediction-market-trading-1-5-teneo](https://affpapa.org/nevibecode/skills/predexon-prediction-market-trading-1-5-teneo.md) — скилл · 478 установок
- [copy-trading](https://affpapa.org/nevibecode/skills/copy-trading.md) — скилл · 439 установок

Из того же набора: [arhancanli/canlicapital](https://affpapa.org/nevibecode/by/arhancanli/canlicapital.md) — 2 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
