Skip to main content

Finam Trade API integration for Model Context Protocol (MCP)

Project description

Finam MCP Server

Python FastMCP License

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 | sh
  • Finam Trade API ключи (бесплатный демо-счёт доступен)
  • MCP клиент (Claude Desktop, Cursor, VS Code и т.д.)

Примечание: Использование MCP-сервера требует установки и настройки как самого MCP-сервера, так и MCP-клиента.

Быстрая установка

Выберите подходящий способ установки для вашего MCP-клиента:

Примечание: Как показать скрытые файлы

  • 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 ключей

  1. Посетите Личный кабинет Finam Trade
  2. Создайте демо-счёт (или используйте реальный счёт)
  3. Сгенерируйте API ключи в разделе "API"

Полезные ссылки

Возможности

Сервер предоставляет доступ к следующим функциям Finam Trade API:

  • Управление счётом

    • Просмотр баланса, маржи и статуса счёта
    • Информация о транзакциях и сделках
  • Работа с активами

    • Получение информации о торговых инструментах
    • Поиск инструментов по тикеру, бирже, типу
    • Информация о биржах и расписании торгов
    • Работа с опционами
  • Рыночные данные

    • Получение исторических свечей с гибкими таймфреймами
    • Котировки и последние сделки
    • Стакан заявок
    • Снапшоты инструментов
  • Управление ордерами

    • Размещение рыночных, лимитных и стоп-ордеров
    • Отмена ордеров (индивидуально или массово)
    • Получение истории ордеров и активных заявок

Примеры запросов

Базовая торговля
  1. Какой у меня текущий баланс счёта на Finam?
  2. Покажи мои текущие позиции на счёте Finam.
  3. Купи 10 акций Сбербанка по рыночной цене.
  4. Продай 5 акций Газпрома с лимитной ценой 150 рублей.
  5. Отмени все открытые ордера.
  6. Покажи все мои активные заявки.
Рыночные данные
  1. Покажи дневную историю цен Сбербанка за последние 5 торговых дней.
  2. Какая была цена закрытия Газпрома вчера?
  3. Получи последний бар для Лукойла.
  4. Покажи текущую котировку для Яндекса.
  5. Получи 5-минутные свечи для Сбербанка за последние 2 часа.
Информация об активах
  1. Найди информацию об инструменте SBER@MOEX.
  2. Покажи все доступные акции на Московской бирже.
  3. Получи расписание торгов на сегодня.

Доступные инструменты

Счёт и позиции
  • 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 (Рекомендуется)

Простой и современный подход:

  1. Откройте Claude Desktop → Settings → Developer → Edit Config

  2. Добавьте эту конфигурацию:

    {
      "mcpServers": {
        "finam": {
          "type": "stdio",
          "command": "uvx",
          "args": ["finam-mcp-server@latest"],
          "env": {
            "FINAM_API_KEY": "ваш-api-ключ",
            "FINAM_ACCOUNT_ID": "ваш-account-id"
          }
        }
      }
    }
    
  3. Перезапустите 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

  1. Откройте настройки VS Code (Ctrl/Cmd + ,)
  2. Найдите "chat.mcp.enabled" и отметьте галочку для включения поддержки MCP
  3. Найдите "github.copilot.chat.experimental.mcp" и отметьте галочку для использования файлов инструкций

2. Настройте MCP сервер (рекомендуется uvx)

Рекомендация: Используйте конфигурацию для конкретного workspace (.vscode/mcp.json) вместо общей конфигурации пользователя.

Для настроек workspace:

  1. Создайте .vscode/mcp.json в корне вашего проекта

  2. Добавьте конфигурацию 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:00Z
  • 2024-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


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

If you're not sure about the file name format, learn more about wheel file names.

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

Hashes for iflow_mcp_alexander_panov_finam_mcp_server-0.1.5.tar.gz
Algorithm Hash digest
SHA256 018c789b2d83618b4a867d0df6d39b12892ea12f48289a78a46e00288be72501
MD5 83cb6c348b5bedb65e181cd216a6666d
BLAKE2b-256 9cecc483bafb3f124d7ccdb2beed8bd42281f5b0fc9a575d502d047110225075

See more details on using hashes here.

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

Hashes for iflow_mcp_alexander_panov_finam_mcp_server-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 adb99b640c508b8c3cbaa635d5512bcc6b1ec93bfab2abd70dae73254b5f1d36
MD5 b39a4a2c7accc6185c324131f6505939
BLAKE2b-256 248e7e89a5be75887129770d2566271227576b73db27fd35bbea715b62f12b49

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page