Finam MCP Server
Finam MCP Server
MCP (Model Context Protocol) сервер для интеграции с торговой платформой Finam через Trade API.
Комплексный MCP-сервер для Finam Trade API, позволяющий осуществлять торговые операции через AI-ассистентов, таких как Claude Desktop и Cursor, используя естественный язык.
Содержание
Предварительные требования
Для настройки и запуска Finam MCP Server вам потребуется:
Терминал (macOS/Linux) | Command Prompt или PowerShell (Windows)
Python 3.12+ (Проверьте официальное руководство по установке и подтвердите версию командой:
python3 --versionв терминале)uv (Установите используя официальное руководство) Совет:
uvможно установить через менеджер пакетов (например,Homebrew) или напрямую используяcurl | shFinam Trade API ключи (бесплатный демо-счёт доступен)
MCP клиент (Claude Desktop, Cursor, VS Code и т.д.)
Примечание: Использование MCP-сервера требует установки и настройки как самого MCP-сервера, так и MCP-клиента.
Быстрая установка
Выберите подходящий способ установки для вашего MCP-клиента:
Claude Desktop - Локальная установка: используйте
uvx→ см. Настройка Claude DesktopCursor - Локальная установка: используйте
uvx→ см. Настройка CursorVS Code - Локальная установка: используйте
uvx→ см. Настройка VS Code
Примечание: Как показать скрытые файлы
macOS Finder: Command + Shift + .
Linux файловые менеджеры: Ctrl + H
Windows File Explorer: Alt, V, H
Терминал (macOS/Linux):
ls -a
Примечание: Использование MCP-сервера требует установки и настройки как самого MCP-сервера, так и MCP-клиента.
# Установка из PyPI
uvx finam-mcp-server@latestПримечание: Если у вас ещё нет uv, установите его сначала и перезапустите терминал, чтобы uv/uvx стали доступны. См. официальное руководство: https://docs.astral.sh/uv/getting-started/installation/
Затем добавьте в конфигурацию вашего MCP-клиента:
Расположение конфигурационных файлов:
Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(Mac) или%APPDATA%\Claude\claude_desktop_config.json(Windows)Cursor:
~/.cursor/mcp.json(Mac/Linux) или%USERPROFILE%\.cursor\mcp.json(Windows)
{
"mcpServers": {
"finam": {
"command": "uvx",
"args": ["finam-mcp-server@latest"],
"env": {
"FINAM_API_KEY": "ваш-api-ключ",
"FINAM_ACCOUNT_ID": "ваш-account-id"
}
}
}
}Клонируйте репозиторий и перейдите в директорию:
git clone https://github.com/Alexander-Panov/finam-mcp.git
cd finam-mcpУстановите зависимости:
# С использованием uv (рекомендуется)
uv sync
# Или pip
pip install -e .После установки/клонирования и активации виртуального окружения структура директорий должна выглядеть так:
finam-mcp/ ← Рабочая директория (корень проекта)
├── src/ ← Исходный код пакета
│ ├── __init__.py
│ ├── cli.py ← Интерфейс командной строки
│ ├── config.py ← Управление конфигурацией
│ ├── main.py ← Главный MCP-сервер
│ ├── middleware.py ← Middleware для аутентификации
│ ├── servers/ ← Специализированные MCP-серверы
│ │ ├── account.py ← Операции со счётом
│ │ ├── assets.py ← Работа с инструментами
│ │ ├── market_data.py ← Рыночные данные
│ │ └── order.py ← Торговые операции
│ └── tradeapi/ ← Обёртки над Finam Trade API
│ ├── finam.py ← Основной клиент
│ └── order/ ← Модели и клиент для ордеров
├── tests/ ← Тесты
├── .venv/ ← Виртуальное окружение
├── fastmcp.json ← Конфигурация FastMCP
├── pyproject.toml ← Конфигурация пакета
├── README.md
└── LICENSEПолучение API ключей
Посетите Личный кабинет Finam Trade
Создайте демо-счёт (или используйте реальный счёт)
Сгенерируйте API ключи в разделе "Токены"
Полезные ссылки
Возможности
Сервер предоставляет доступ к следующим функциям Finam Trade API:
Управление счётом
Просмотр баланса, маржи и статуса счёта
Информация о транзакциях и сделках
Работа с активами
Получение информации о торговых инструментах
Поиск инструментов по тикеру, бирже, типу
Информация о биржах и расписании торгов
Работа с опционами
Рыночные данные
Получение исторических свечей с гибкими таймфреймами
Котировки и последние сделки
Стакан заявок
Снапшоты инструментов
Управление ордерами
Размещение рыночных, лимитных и стоп-ордеров
Отмена ордеров (индивидуально или массово)
Получение истории ордеров и активных заявок
Примеры запросов
Какой у меня текущий баланс счёта на Finam?
Покажи мои текущие позиции на счёте Finam.
Купи 10 акций Сбербанка по рыночной цене.
Продай 5 акций Газпрома с лимитной ценой 150 рублей.
Отмени все открытые ордера.
Покажи все мои активные заявки.
Покажи дневную историю цен Сбербанка за последние 5 торговых дней.
Какая была цена закрытия Газпрома вчера?
Получи последний бар для Лукойла.
Покажи текущую котировку для Яндекса.
Получи 5-минутные свечи для Сбербанка за последние 2 часа.
Найди информацию об инструменте SBER@MOEX.
Покажи все доступные акции на Московской бирже.
Получи расписание торгов на сегодня.
Доступные инструменты
get_account_info()- Просмотр баланса и статуса счётаget_transactions()- История транзакцийget_trades()- История сделок
get_assets()- Список всех торговых инструментов с фильтрациейget_asset_params()- Параметры конкретного инструментаget_exchanges()- Список биржget_exchange_info()- Информация о конкретной биржеget_option_boards()- Информация о площадках опционовget_trade_schedule()- Расписание торговых сессий
get_candles()- Исторические свечи с различными таймфреймамиget_quotes()- Текущие котировкиget_order_book()- Стакан заявокget_last_trades()- Последние сделки
get_orders()- Получение всех или отфильтрованных ордеровplace_order()- Размещение ордера (market, limit, stop)cancel_order()- Отмена конкретного ордераcancel_all_orders()- Отмена всех открытых ордеров
Конфигурация MCP клиентов
Ниже вы найдёте пошаговые руководства для подключения Finam MCP сервера к различным MCP клиентам.
Примечание: Предполагается, что все предварительные требования установлены.
Метод: uvx (Рекомендуется)
Простой и современный подход:
Откройте Claude Desktop → Settings → Developer → Edit Config
Добавьте эту конфигурацию:
{ "mcpServers": { "finam": { "type": "stdio", "command": "uvx", "args": ["finam-mcp-server@latest"], "env": { "FINAM_API_KEY": "ваш-api-ключ", "FINAM_ACCOUNT_ID": "ваш-account-id" } } } }Перезапустите Claude Desktop и начинайте торговать!
Примечание: Предполагается, что все предварительные требования установлены.
Официальная документация по настройке MCP в Cursor: https://docs.cursor.com/context/mcp
Использование JSON конфигурации
Откройте и отредактируйте ~/.cursor/mcp.json (macOS/Linux) или %USERPROFILE%\.cursor\mcp.json (Windows):
{
"mcpServers": {
"finam": {
"type": "stdio",
"command": "uvx",
"args": ["finam-mcp-server@latest"],
"env": {
"FINAM_API_KEY": "ваш-api-ключ",
"FINAM_ACCOUNT_ID": "ваш-account-id"
}
}
}
}VS Code поддерживает MCP серверы через режим агента GitHub Copilot. Официальная документация: https://code.visualstudio.com/docs/copilot/chat/mcp-servers
Примечание: Предполагается, что все предварительные требования установлены.
1. Включите поддержку MCP в VS Code
Откройте настройки VS Code (Ctrl/Cmd + ,)
Найдите "chat.mcp.enabled" и отметьте галочку для включения поддержки MCP
Найдите "github.copilot.chat.experimental.mcp" и отметьте галочку для использования файлов инструкций
2. Настройте MCP сервер (рекомендуется uvx)
Рекомендация: Используйте конфигурацию для конкретного workspace (.vscode/mcp.json) вместо общей конфигурации пользователя.
Для настроек workspace:
Создайте
.vscode/mcp.jsonв корне вашего проектаДобавьте конфигурацию Finam MCP сервера вручную в файл mcp.json:
{ "mcp": { "servers": { "finam": { "type": "stdio", "command": "uvx", "args": ["finam-mcp-server@latest"], "env": { "FINAM_API_KEY": "ваш-api-ключ", "FINAM_ACCOUNT_ID": "ваш-account-id" } } } } }
Тестирование с MCP Inspector
MCP Inspector позволяет интерактивно тестировать все инструменты сервера:
npx @modelcontextprotocol/inspectorПодключитесь к серверу, используя адрес: http://localhost:3000/mcp и добавив заголовки с ключом Finam API и Account ID.
Важные особенности
Формат символов инструментов
Все инструменты указываются в формате ТИКЕР@MIC:
SBER@MOEX- Сбербанк на Московской биржеGAZP@MOEX- Газпром на Московской биржеПо умолчанию используются биржи:
MOEX,SPBE
Формат времени
API требует даты и время в формате ISO 8601:
2024-01-15T10:30:00Z2024-01-15T10:30:00+03:00
TimeFrame для свечей
Доступные таймфреймы из finam_trade_api.instruments.TimeFrame:
M1,M5,M15,M30- минутыH1,H4- часыD1- деньW1- неделя
Использование FastMCP конфигурации
Проект поддерживает декларативную конфигурацию через fastmcp.json:
# Запуск с автоматическим обнаружением fastmcp.json
fastmcp run
# Или явное указание файла
fastmcp run fastmcp.json
# Для разработки с Inspector UI
fastmcp devТехнологии
Python 3.12+
FastMCP - фреймворк для создания MCP-серверов
FinamTradeApiPy - Python-обёртка для Finam Trade API
Поддержка
По вопросам и предложениям создавайте Issue в репозитории.
Отказ от ответственности
Не является инвестиционной рекомендацией. Все торговые операции осуществляются на ваш страх и риск. Автор не несёт ответственности за возможные убытки при использовании данного сервера. Тщательно проверяйте все действия, предлагаемые AI-ассистентом, особенно для сложных торговых операций.
Лицензия
MIT License - см. файл LICENSE для деталей.