Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Tinkoff Investments

FreeNot checked

Tbank / ТБанк (Tinkoff/Тинькофф) инвестиции MCP сервер

GitHubEmbed

About

Tbank / ТБанк (Tinkoff/Тинькофф) инвестиции MCP сервер

README

MCP сервер для работы с API Тинькофф Инвестиций через Model Context Protocol. Предоставляет инструменты для чтения рыночных данных, выполнения торговых операций и тестирования в песочнице.

Особенности

  • Полная поддержка Tinkoff Invest API - доступ ко всем основным сервисам
  • MCP совместимость - работает с любыми MCP клиентами
  • Модульная архитектура - разделение на профили для разных типов операций
  • Sandbox режим - безопасное тестирование с виртуальными деньгами
  • Spring Boot - надежная и масштабируемая основа

Возможности

📊 Чтение данных (read-mcp)

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

💼 Торговля (trade-mcp)

  • Обычные ордеры: рыночные, лимитные и лучших цен
  • Стоп-ордеры: с различными типами триггеров и сроками действия

🧪 Sandbox (sandbox-mcp)

  • Полный набор инструментов для тестирования с виртуальными деньгами
  • Управление счетами: открытие, закрытие, пополнение
  • Тестирование стратегий без риска реальных денег

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

Предварительные требования

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/Sprytin/tinkoff-investments-mcp-server.git
cd tinkoff-investments-mcp-server
  1. Настройте токен: Отредактируйте src/main/resources/application.yml:
tinkoff:
  token: "ВСТАВИТЬ_ВАШ_ТОКЕН"
  1. Соберите проект:
./gradlew build

Использование с MCP клиентами

Claude Desktop

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

{
  "mcpServers": {
    "tinkoff-invest": {
      "command": "java",
      "args": ["-jar", "/path/to/rich-0.0.1-SNAPSHOT.jar"],
      "env": {
        "SPRING_PROFILES_ACTIVE": "read-mcp,sandbox-mcp"
      }
    }
  }
}

Другие MCP клиенты

Сервер использует STDIO транспорт, поэтому совместим с любыми MCP клиентами, поддерживающими этот протокол.

Конфигурация

Профили Spring

Сервер поддерживает следующие профили:

  • read-mcp - инструменты чтения данных
  • trade-mcp - торговые инструменты (требует торговый токен)
  • sandbox-mcp - sandbox инструменты

По умолчанию активированы все профили: read-mcp,trade-mcp,sandbox-mcp

Параметры конфигурации

spring:
  application:
    name: rich
  ai:
    mcp:
      server:
        name: rich-mcp-server        # Имя сервера
        version: 1.0.0               # Версия
        type: SYNC                   # Тип сервера
        transport: STDIO             # Транспорт STDIO
  profiles:
    active: read-mcp,trade-mcp,sandbox-mcp  # Активные профили

tinkoff:
  token: "ВАШ_ТОКЕН"                 # Токен API
  app-name: rich-mcp-server          # Имя приложения
  target: invest-public-api.tinkoff.ru:443  # Адрес API

API Инструменты

Чтение данных

Инструменты (InstrumentsTools)

  • getBrandBy(uid) - информация о бренде
  • getBrands() - список брендов
  • getAssetFundamentals(assetUids) - фундаментальные метрики
  • getAssetReports(instrumentId, from, to) - отчеты эмитентов
  • getConsensusForecasts(limit, pageNumber) - консенсус прогнозы
  • getForecastBy(instrumentId) - прогнозы по инструменту
  • getRiskRates() - параметры риска

Рыночные данные (MarketDataTools)

  • getCandles(instrumentId, from, to, interval) - исторические свечи
  • getOrderBook(instrumentId, depth) - стакан котировок
  • getTradingStatuses(instrumentIds) - статусы торгов
  • getLastTrades(instrumentId, from, to) - последние сделки
  • getClosePrices(instrumentId, from, to) - цены закрытия
  • getTradingStatus(instrumentId) - статус торгов по инструменту

Пользовательские данные (UsersTools)

  • getUserTariff() - тариф и лимиты
  • getAccounts() - список аккаунтов

Торговля

Обычные ордеры (OrdersTools)

  • postOrder(accountId, instrumentId, quantity, direction, orderType, limitPriceUnits?, limitPriceNano?) - создать ордер
  • postOrderAsync(...) - создать ордер асинхронно

Стоп-ордеры (StopOrdersTools)

  • postStopOrder(accountId, instrumentId, direction, stopOrderType, expirationType, priceUnits, priceNano, stopPriceUnits, stopPriceNano, quantity) - создать стоп-ордер
  • getStopOrders(accountId) - список стоп-ордеров
  • cancelStopOrder(accountId, stopOrderId) - отменить стоп-ордер

Sandbox

Полный набор инструментов для тестирования:

  • Управление счетами: openSandboxAccount, closeSandboxAccount, getSandboxAccounts
  • Финансы: sandboxPayIn, getSandboxWithdrawLimits
  • Ордеры: postSandboxOrder, replaceSandboxOrder, cancelSandboxOrder, getSandboxOrders, getSandboxOrderState
  • Портфель: getSandboxPortfolio, getSandboxPositions
  • Операции: getSandboxOperations, getSandboxOperationsByCursor
  • Анализ: getSandboxMaxLots

Примеры использования

Получение рыночных данных

// Исторические свечи за последний час
getCandles("BBG004730N88", 1704067200, 1704070800, CANDLE_INTERVAL_1_MIN)

// Стакан котировок
getOrderBook("BBG004730N88", 20)

// Статус торгов
getTradingStatus("BBG004730N88")

Создание ордера

// Лимитный ордер на покупку
postOrder(
    accountId = "1234567890",
    instrumentId = "BBG004730N88",
    quantity = 10,
    direction = ORDER_DIRECTION_BUY,
    orderType = ORDER_TYPE_LIMIT,
    limitPriceUnits = 150,
    limitPriceNano = 500000000
)

Работа с sandbox

// Открыть sandbox счет
val account = openSandboxAccount()

// Пополнить счет
sandboxPayIn(account.accountId, 100000, 0, "rub")

// Создать тестовый ордер
postSandboxOrder(
    accountId = account.accountId,
    instrumentId = "BBG004730N88",
    quantity = 1,
    direction = ORDER_DIRECTION_BUY,
    orderType = ORDER_TYPE_MARKET
)

Разработка

Структура проекта

src/main/kotlin/tech/sprytin/rich/
├── api/           # Интерфейсы
├── config/        # Конфигурация
├── read/          # Инструменты чтения
├── trade/         # Торговые инструменты
└── sandbox/       # Sandbox инструменты

Сборка и тестирование

# Сборка
./gradlew build

# Тестирование
./gradlew test

# Запуск в режиме разработки
./gradlew bootRun

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

  • Никогда не храните токены в коде - используйте переменные окружения или конфигурационные файлы
  • Используйте sandbox для тестирования - перед реальной торговлей проверяйте стратегии
  • Следуйте лимитам API - проверяйте тариф с помощью getUserTariff()

Лицензия

MIT License - см. LICENSE файл.

Changelog

История изменений доступна в CHANGELOG.md.

Поддержка

Contributing

Приветствуются contributions! Пожалуйста, читайте CONTRIBUTING.md перед созданием PR.

from github.com/Sprytin/tinkoff-investments-mcp-server

Installing Tinkoff Investments

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/Sprytin/tinkoff-investments-mcp-server

FAQ

Is Tinkoff Investments MCP free?

Yes, Tinkoff Investments MCP is free — one-click install via Unyly at no cost.

Does Tinkoff Investments need an API key?

No, Tinkoff Investments runs without API keys or environment variables.

Is Tinkoff Investments hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Tinkoff Investments in Claude Desktop, Claude Code or Cursor?

Open Tinkoff Investments on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Tinkoff Investments with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs