Finam Trade API integration for Model Context Protocol (MCP)
Project description
Finam MCP Server
MCP (Model Context Protocol) сервер для интеграции с торговой платформой Finam через Trade API.
Комплексный MCP-сервер для Finam Trade API, позволяющий осуществлять торговые операции через AI-ассистентов, таких как Claude Desktop и Cursor, используя естественный язык.
Содержание
- Предварительные требования
- Быстрая установка
- Получение API ключей
- Возможности
- Примеры запросов
- Доступные инструменты
- Конфигурация MCP клиентов
- Важные особенности
Предварительные требования
Для настройки и запуска Finam MCP Server вам потребуется:
- Терминал (macOS/Linux) | Command Prompt или PowerShell (Windows)
- Python 3.12+ (Проверьте официальное руководство по установке и подтвердите версию командой:
python3 --versionв терминале) - uv (Установите используя официальное руководство)
Совет:
uvможно установить через менеджер пакетов (например,Homebrew) или напрямую используяcurl | sh - Finam Trade API ключи (бесплатный демо-счёт доступен)
- MCP клиент (Claude Desktop, Cursor, VS Code и т.д.)
Примечание: Использование MCP-сервера требует установки и настройки как самого MCP-сервера, так и MCP-клиента.
Быстрая установка
Выберите подходящий способ установки для вашего MCP-клиента:
- Claude Desktop - Локальная установка: используйте
uvx→ см. Настройка Claude Desktop - Cursor - Локальная установка: используйте
uvx→ см. Настройка Cursor - VS Code - Локальная установка: используйте
uvx→ см. Настройка VS Code
Примечание: Как показать скрытые файлы
- macOS Finder: Command + Shift + .
- Linux файловые менеджеры: Ctrl + H
- Windows File Explorer: Alt, V, H
- Терминал (macOS/Linux):
ls -a
Метод 1: Быстрая установка с uvx из PyPI
Примечание: Использование 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"
}
}
}
}
Метод 2: Установка из исходников с помощью uv
Клонируйте репозиторий и перейдите в директорию:
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 ключи в разделе "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 клиентам.
Настройка Claude Desktop
Примечание: Предполагается, что все предварительные требования установлены.
Метод: 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 и начинайте торговать!
Настройка Cursor
Примечание: Предполагается, что все предварительные требования установлены.
Официальная документация по настройке 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
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 в репозитории.
Отказ от ответственности
Это демонстрационный MCP-сервер для интеграции с Finam Trade API. Не является официальным решением от Finam.
Все торговые операции осуществляются на ваш страх и риск. Автор не несёт ответственности за возможные убытки при использовании данного сервера. Тщательно проверяйте все действия, предлагаемые AI-ассистентом, особенно для сложных торговых операций.
Лицензия
MIT License - см. файл LICENSE для деталей.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_alexander_panov_finam_mcp_server-0.1.5.tar.gz.
File metadata
- Download URL: iflow_mcp_alexander_panov_finam_mcp_server-0.1.5.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
018c789b2d83618b4a867d0df6d39b12892ea12f48289a78a46e00288be72501
|
|
| MD5 |
83cb6c348b5bedb65e181cd216a6666d
|
|
| BLAKE2b-256 |
9cecc483bafb3f124d7ccdb2beed8bd42281f5b0fc9a575d502d047110225075
|
File details
Details for the file iflow_mcp_alexander_panov_finam_mcp_server-0.1.5-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_alexander_panov_finam_mcp_server-0.1.5-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adb99b640c508b8c3cbaa635d5512bcc6b1ec93bfab2abd70dae73254b5f1d36
|
|
| MD5 |
b39a4a2c7accc6185c324131f6505939
|
|
| BLAKE2b-256 |
248e7e89a5be75887129770d2566271227576b73db27fd35bbea715b62f12b49
|