Tinkoff Investments MCP Server
Tbank / ТБанк (Tinkoff/Тинькофф) инвестиции MCP сервер
Ask AI about Tinkoff Investments MCP Server
Powered by Claude · Grounded in docs
I know everything about Tinkoff Investments MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Tinkoff Invest MCP Server
MCP сервер для работы с API Тинькофф Инвестиций через Model Context Protocol. Предоставляет инструменты для чтения рыночных данных, выполнения торговых операций и тестирования в песочнице.
Особенности
- Полная поддержка Tinkoff Invest API - доступ ко всем основным сервисам
- MCP совместимость - работает с любыми MCP клиентами
- Модульная архитектура - разделение на профили для разных типов операций
- Sandbox режим - безопасное тестирование с виртуальными деньгами
- Spring Boot - надежная и масштабируемая основа
Возможности
📊 Чтение данных (read-mcp)
- Инструменты: информация о брендах, фундаментальные метрики, отчеты эмитентов, консенсус прогнозы
- Рыночные данные: свечи, стаканы, статусы торгов, последние сделки
- Пользовательские данные: аккаунты, тарифы и лимиты
💼 Торговля (trade-mcp)
- Обычные ордеры: рыночные, лимитные и лучших цен
- Стоп-ордеры: с различными типами триггеров и сроками действия
🧪 Sandbox (sandbox-mcp)
- Полный набор инструментов для тестирования с виртуальными деньгами
- Управление счетами: открытие, закрытие, пополнение
- Тестирование стратегий без риска реальных денег
Быстрый старт
Предварительные требования
- Java 21 или выше
- Токен Tinkoff Invest API (получить в личном кабинете)
Установка
- Клонируйте репозиторий:
git clone https://github.com/Sprytin/tinkoff-investments-mcp-server.git
cd tinkoff-investments-mcp-server
- Настройте токен:
Отредактируйте
src/main/resources/application.yml:
tinkoff:
token: "ВСТАВИТЬ_ВАШ_ТОКЕН"
- Соберите проект:
./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.
