Skip to main content
Glama

Что это?

alpaka-mcp — это готовый к продакшену MCP-сервер + CLI, который подключает AI-ассистентов (Claude Desktop, Cursor, VS Code Copilot) и ваш терминал напрямую к Alpaca Trading API. Торгуйте акциями, ETF и криптовалютой на естественном языке — или из командной строки.

Построен на alpaca-py и MCP Python SDK.

По умолчанию используется бумажная торговля — реальные рыночные данные, виртуальные средства, ноль реальных денег под риском.


Related MCP server: alpaca-mcp-server

Быстрый старт

1. Получите ключи Alpaca API (бесплатно)

Зарегистрируйтесь на alpaca.markets → Paper Trading → API Keys

2. Установка

git clone https://github.com/vikrambtech2025-png/alpaka-mcp.git
cd alpaka-mcp
uv sync

3. Настройка

cp .env.example .env
# Add your API keys to .env

4. Запуск

uv run alpaka-mcp          # MCP server (stdio for Claude/Cursor)
uv run alpaka account      # CLI — check account
uv run mcp dev src/alpaka_mcp/server.py  # MCP Inspector

Подключение к AI-ассистентам

Добавьте в %AppData%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "alpaka": {
      "command": "uv",
      "args": ["--directory", "C:\\path\\to\\alpaka-mcp", "run", "alpaka-mcp"],
      "env": {
        "ALPACA_API_KEY": "your_key",
        "ALPACA_SECRET_KEY": "your_secret",
        "ALPACA_PAPER": "true"
      }
    }
  }
}

Добавьте в .cursor/mcp.json в корне вашего проекта:

{
  "mcpServers": {
    "alpaka": {
      "command": "uv",
      "args": ["--directory", "/path/to/alpaka-mcp", "run", "alpaka-mcp"],
      "env": {
        "ALPACA_API_KEY": "your_key",
        "ALPACA_SECRET_KEY": "your_secret",
        "ALPACA_PAPER": "true"
      }
    }
  }
}

Добавьте в .vscode/mcp.json:

{
  "servers": {
    "alpaka": {
      "command": "uv",
      "args": ["--directory", "/path/to/alpaka-mcp", "run", "alpaka-mcp"],
      "env": {
        "ALPACA_API_KEY": "your_key",
        "ALPACA_SECRET_KEY": "your_secret",
        "ALPACA_PAPER": "true"
      }
    }
  }
}

MCP-инструменты (16)

Инструмент

Описание

get_account

Баланс, капитал, покупательная способность, дневные сделки

get_portfolio

Все открытые позиции с P&L

Инструмент

Описание

buy

Разместить ордер на покупку (рыночный/лимитный/стоп/стоп-лимит)

sell

Разместить ордер на продажу (рыночный/лимитный)

get_orders

Список ордеров по статусу и символам

cancel_order

Отменить конкретный ордер

cancel_all_orders

Отменить все открытые ордера

Инструмент

Описание

get_position

Детали одной позиции

close_position

Ликвидировать (полностью или частично)

Инструмент

Описание

get_stock_quote

Последняя котировка (бид/аск)

get_stock_bars

Исторические бары OHLCV

get_stock_snapshot

Полный снимок (сделка, котировка, дневной, 1-минутный)

Инструмент

Описание

get_crypto_quote

Последний бид/аск по криптовалюте

get_crypto_bars

Исторические бары OHLCV по криптовалюте

Инструмент

Описание

search_assets

Поиск акций/ETF/криптовалют по названию или символу

get_market_clock

Статус открытия/закрытия рынка


CLI-команды (12)

alpaka account                    # Account balance & buying power
alpaka portfolio                  # Open positions with color-coded P&L
alpaka quote AAPL                 # Bid/ask quote (stocks or crypto)
alpaka buy AAPL --qty 10          # Buy 10 shares
alpaka buy BTC/USD -n 500         # Buy $500 of Bitcoin
alpaka sell AAPL --qty 5          # Sell 5 shares
alpaka orders                     # List open orders
alpaka orders --status closed     # List filled orders
alpaka cancel <order-id>          # Cancel specific order
alpaka cancel-all                 # Cancel everything open
alpaka bars AAPL --tf 1Day        # Historical bars
alpaka clock                      # Is the market open?
alpaka search apple               # Find tradeable assets

Все команды поддерживают --json для машиночитаемого вывода:

$ uv run alpaka account --json
{
  "status": "ACTIVE",
  "equity": "100000.00",
  "buying_power": "200000.00",
  "cash": "100000.00",
  "portfolio_value": "100000.00",
  "daytrade_count": 0,
  "pattern_day_trader": false,
  "mode": "paper"
}

Производственные возможности

Возможность

Как это работает

Устойчивый клиент

Прозрачный прокси оборачивает каждый вызов API с ограничением скорости и повторными попытками

Ограничение скорости

3 независимых корзины токенов (200 запросов/мин каждая) — торговля, данные по акциям, криптовалюта

Повторные попытки + задержка

3 попытки с экспоненциальной задержкой 1с/2с/4с при ошибках 429, 500 и ошибках соединения

Неблокирующая асинхронность

MCP-инструменты используют asyncio.to_thread() — цикл событий никогда не блокируется

Структурированное логирование

JSON-журнал аудита: logs/trades.jsonl + logs/errors.jsonl

Проверка входных данных

Символы, количества, цены, типы ордеров проверяются перед вызовами API

Защита от реальной торговли

Требует ALPACA_LIVE_CONFIRM=true + 5-секундный обратный отсчет для реальных денег

Проверка конфигурации

Отклоняет заглушки ключей API с понятными инструкциями по настройке

Потокобезопасность

Инициализация клиента через lru_cache, нет изменяемого глобального состояния

Обработка ошибок CLI

Каждая команда обернута — чистые ошибки, без трассировок


Архитектура

src/alpaka_mcp/
├── server.py          # MCP server entry point (stdio)
├── cli.py             # 12 Typer commands + JSON output
├── config.py          # pydantic-settings + credential validation
├── clients.py         # ResilientClient proxy (rate limit + retry + async)
├── utils.py           # Response formatting
├── logging.py         # Structured JSON logging
├── rate_limiter.py    # Token bucket rate limiters (sync + async)
├── retry.py           # Exponential backoff (sync + async)
├── validation.py      # Input validation
└── tools/             # 16 MCP tools
    ├── account.py     # get_account, get_portfolio
    ├── trading.py     # buy, sell, get_orders, cancel_order, cancel_all
    ├── positions.py   # get_position, close_position
    ├── stock_data.py  # get_stock_quote, get_stock_bars, get_stock_snapshot
    ├── crypto_data.py # get_crypto_quote, get_crypto_bars
    └── discovery.py   # search_assets, get_market_clock

Docker

# MCP server
docker compose up alpaka-mcp

# CLI via docker
docker compose run --rm alpaka-cli account
docker compose run --rm alpaka-cli portfolio

Логи сохраняются в Docker-томе по пути /app/logs.


Переменные окружения

Переменная

По умолчанию

Описание

ALPACA_API_KEY

(обязательно)

Ваш ключ Alpaca API

ALPACA_SECRET_KEY

(обязательно)

Ваш секретный ключ Alpaca

ALPACA_PAPER

true

Режим бумажной торговли

ALPACA_LIVE_CONFIRM

false

Должно быть true для реальной торговли

ALPACA_LOG_DIR

logs

Каталог файлов журнала

ALPACA_LOG_LEVEL

INFO

Подробность логирования


Тестирование

# Unit tests (no API keys needed)
uv run pytest tests/ --ignore=tests/test_integration.py -v

# Integration tests (needs real paper API keys)
ALPACA_API_KEY=pk_xxx ALPACA_SECRET_KEY=sk_xxx uv run pytest tests/test_integration.py -v

Безопасность

  • Бумажная торговля по умолчанию — реальные деньги требуют явного согласия

  • Реальная торговля требует и ALPACA_PAPER=false, и ALPACA_LIVE_CONFIRM=true

  • 5-секундный обратный отсчет при запуске реальной торговли

  • Все ошибки форматируются аккуратно — никаких трассировок, отправляемых LLM

  • Ограничение скорости предотвращает случайное злоупотребление API

  • Структурированный журнал аудита для каждой сделки


Лицензия

MIT


Related MCP Connectors

Related MCP Servers

  • A
    license
    D
    quality
    D
    maintenance
    MCP server that exposes Alpaca Market Data & Broker API as tools, enabling access to financial data like stock bars, assets, market days, and news through the Message Control Protocol.
    4
    17 npm
    2
    ISC
  • A
    license
    B
    quality
    A
    maintenance
    Alpaca’s official MCP Server lets you trade stocks, ETFs, crypto, and options, run data analysis, and build strategies in plain English directly from your favorite LLM tools and IDEs
    72
    11,500 PyPI
    1,047
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server implementation for Alpaca's Trading API that enables LLMs to interact with Alpaca's trading infrastructure using natural language, supporting stock, options, and crypto trading, portfolio management, watchlists, and market data.
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    This MCP server connects AI assistants to a Public.com brokerage account, enabling natural language trading of stocks, options, and crypto, along with portfolio management, quotes, and orders.
    46
    1,334 PyPI
    67
    Apache 2.0