tinvest-mcp
by plasm-one
README.md
<h1 align="center">tinvest-mcp — MCP-сервер для Т-Инвестиций</h1>
<p align="center">
<strong>Подключите ИИ к своему счёту в Т-Инвестициях (Тинькофф Инвестиции).</strong><br>
Локальный MCP-сервер для T-Invest API: Claude, Cursor, VS Code и другие ИИ-ассистенты<br>
анализируют портфель, подбирают облигации, акции и фонды, считают риск и готовят заявки.<br>
<sub>ИИ думает и объясняет, а ограничения зашиты в код — их нельзя уговорить.</sub>
</p>
<p align="center">
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
<img alt="Python 3.12+" src="https://img.shields.io/badge/python-3.12%2B-blue.svg">
<img alt="MCP" src="https://img.shields.io/badge/protocol-MCP-8A2BE2.svg">
<img alt="Status: beta" src="https://img.shields.io/badge/status-beta-orange.svg">
<br>
<em>Сделано командой <a href="https://plasm.one">Plasm</a> — мы строим
<a href="https://plasm.one/future-of-finance">автономные финансы</a></em>
</p>
<p align="center">
<a href="README.en.md">🇬🇧 English</a> ·
<a href="docs/installation.md">Установка</a> ·
<a href="docs/security.ru.md">Безопасность</a> ·
<a href="docs/configuration.md">Настройка</a> ·
<a href="docs/tools.md">Список инструментов</a>
</p>
---
> [!WARNING]
> **Это неофициальная программа, и она умеет работать с реальными деньгами.**
> Проект не связан с Т-Банком и не поддерживается им. Ничто здесь не является
> инвестиционной рекомендацией. У любого MCP-сервера с доступом к брокерскому
> счёту есть риски, которые код не может убрать полностью, — например,
> prompt injection и ошибки самой модели.
> **Прежде чем подключать боевой токен, прочитайте [DISCLAIMER.md](DISCLAIMER.md)
> и [docs/security.ru.md](docs/security.ru.md).** По умолчанию сервер работает
> в песочнице, а реальная торговля включается только двумя отдельными
> настройками. Не трогайте их, пока не прочитаете оба документа.
---
## Что это
**tinvest-mcp** — MCP-сервер ([Model Context Protocol](https://modelcontextprotocol.io))
для Т-Инвестиций (бывшие Тинькофф Инвестиции). Он запускается **на вашем
компьютере** и даёт ИИ-ассистенту 35 инструментов для работы с брокерским счётом
через T-Invest API. Ассистент может посмотреть портфель, отобрать бумаги из
каталога, посчитать доходность и риск, составить план ребалансировки, а если вы
это явно разрешите — выставить лимитную заявку.
Проще говоря, это способ подключить ИИ к Т-Инвестициям так, чтобы он помогал
разбираться с портфелем, но не мог выйти за рамки, которые задали вы.
Главный принцип: **ИИ здесь аналитик, а не трейдер.** Смотреть можно всё.
Любое действие с деньгами сначала превращается в черновик заявки, который
модель не может пропустить. Цена в нём сверяется со свежей котировкой, а сумма
проверяется по лимитам из вашего конфига — не из промпта.
<p align="center">
<img src="https://raw.githubusercontent.com/plasm-one/tinvest-mcp/main/docs/assets/architecture.png"
alt="Claude Code, Cursor и VS Code общаются с tinvest-mcp через stdio; tinvest-mcp обращается к T-Invest API по gRPC с TLS и читает .env, config.toml и audit.jsonl на вашем компьютере"
width="900">
</p>
**Токен уходит только к брокеру, который его выдал.** Он не хранится в
настройках редактора, не синхронизируется между устройствами и не передаётся
третьим лицам, в том числе нам. Зачем так сделано и от каких рисков это
не защищает — в [docs/security.ru.md](docs/security.ru.md).
## Зачем подключать ИИ к брокерскому счёту
Купить или продать бумагу несложно — для этого у брокера есть приложение.
Сложно другое: понять, что у тебя на самом деле в портфеле, сколько это стоит
в комиссиях и налогах, что пора поменять, раз изменились обстоятельства, и
чего нельзя делать ни при каких доводах.
С первыми тремя вопросами языковая модель справляется хорошо. С последним —
ненадёжно, а деньги теряют как раз на нём. Поэтому обязанности разделены.
Модель получает полный доступ к данным и отвечает за анализ и объяснения.
Всё, что должно соблюдаться всегда, записано в коде и в вашем файле настроек,
и никакой убедительный аргумент модели этого не изменит.
Поэтому MCP здесь и подходит. Идея не в том, чтобы «переписываться с
брокером». Модель видит портфель целиком, разбирает его с учётом ваших целей и
предлагает конкретный шаг с готовым расчётом. Решение остаётся за вами, и его
легко проверить. А рамки, за которые модели нельзя выходить, она не может ни
увидеть, ни поменять.
Именно так должно выглядеть **управление капиталом с помощью ИИ**, прежде чем
ему можно доверить настоящий счёт: агент, который не торгует сам, а думает и
советует — в рамках, которые не обсуждаются.
## T-Invest MCP от Т-Банка или tinvest-mcp: что выбрать
У Т-Банка есть официальный MCP-сервер Т-Инвестиций —
[T-Invest MCP](https://developer.tbank.ru/invest/mcp). Он работает на серверах
банка. Это хороший продукт, и если вам важна официальная поддержка, выбирайте
его. tinvest-mcp — неофициальная альтернатива, которая работает локально.
У каждого варианта свои плюсы:
| | **tinvest-mcp** | **T-Invest MCP (Т-Банк)** |
|---|---|---|
| Где работает | на вашем компьютере | на серверах Т-Банка |
| Где хранится токен | в `.env`, его читает только локальный процесс | в настройках MCP-клиента, отправляется с каждым запросом |
| Транспорт | stdio, без открытых портов | streamable HTTP |
| Как выставляется заявка | черновик → сверка со свежей котировкой → отдельное подтверждение | сразу при вызове инструмента |
| Лимиты риска | ваши, в `config.toml` | на стороне брокера, настроить нельзя |
| Песочница | есть | нет |
| Claude Desktop | работает (stdio) | не поддерживается |
| Новости и инвестидеи рядом с торговлей | нет, намеренно | есть: новости, настроения рынка, идеи |
| Поддержка | сообщество, по мере сил | официальная |
| Установка | Python, около 10 минут | одна команда |
Если коротко: официальный сервер проще поставить, и у него есть поддержка.
tinvest-mcp хранит токен у вас, позволяет задать свои жёсткие лимиты и не
смешивает непроверенный текст из интернета с инструментами для сделок.
Подробное сравнение: [T-Invest MCP и tinvest-mcp](docs/comparison.ru.md).
## Возможности
**Анализ (только чтение, работает всегда)**
* Портфель: деньги, позиции, распределение по классам активов, секторам,
валютам и эмитентам, концентрация, средневзвешенная доходность, дюрация
облигаций, отклонение от целевой структуры.
* Подбор бумаг — отдельный инструмент для каждого класса активов, чтобы в
выдаче были только важные для него поля: `list_bonds`, `list_shares`,
`list_etfs`. Фильтры по риску, сроку погашения, дюрации, сектору, дивидендам
и минимальной ликвидности.
* По отдельной бумаге: историческая доходность, годовая волатильность,
максимальная просадка; для облигаций — доходность к погашению, текущая
доходность и график купонов; для акций — дивидендная доходность и
мультипликаторы (P/E, EV/EBITDA, ROE, маржинальность, долг); консенсус
аналитиков; для фондов — комиссии и отслеживаемый индекс.
* Рыночные данные: bid/ask/last, спред, возраст котировки и три варианта
лимитной цены — «подождать», «сбалансированно», «быстро». Цена берётся из
стакана, а не придумывается моделью.
* История операций: сделки, комиссии, купоны, дивиденды, удержанный налог.
**Планирование (только чтение)**
* Целевая структура портфеля по профилю риска и горизонту. Её задаёт таблица
правил в коде, а не мнение модели.
* План ребалансировки всего портфеля сразу: сначала продажи, потом покупки.
По каждой сделке учтены комиссия и НКД, налог считается по FIFO с учётом
льготы на долгосрочное владение (ЛДВ, 3 года). В конце — вывод `WORTH_IT` /
`NOT_WORTH_IT`: если издержки съедают выгоду, сервер прямо посоветует ничего
не делать.
**Сделки (по умолчанию выключены, только с подтверждением)**
* `create_order_proposal` — черновик заявки с проверкой риска. Сам по себе
ничего не выставляет.
* `post_order` — отправляет черновик, если он ещё действителен, и перед этим
заново проверяет риск по свежей котировке. Только лимитные заявки. Повторный
вызов не создаёт дубль.
* Для плана из нескольких сделок подтверждений два: сначала весь план, затем
каждая сделка по отдельности.
Все инструменты с аргументами и форматом ответа: [docs/tools.md](docs/tools.md).
## Что понадобится
* **Python 3.12+**
* MCP-клиент: Claude Code, Claude Desktop, Cursor, VS Code (режим агента),
Gemini CLI, Qwen Code или любой другой, который поддерживает MCP через stdio.
* Токен T-Invest API. Он бесплатный и выпускается в личном кабинете брокера —
как это сделать, описано ниже.
* Желательно [`uv`](https://docs.astral.sh/uv/), но подойдёт и обычный `pip`.
## Установка
### 1. Скачайте код и установите зависимости
```bash
git clone https://github.com/plasm-one/tinvest-mcp.git
cd tinvest-mcp
uv sync # или: python3 -m venv .venv && .venv/bin/pip install -e .
```
<details>
<summary>Если SDK T-Invest не устанавливается</summary>
gRPC SDK (`t-tech-investments`) скачивается с индекса, который иногда отдаёт
повреждённые wheel-файлы. Тогда `uv sync` падает с ошибкой хеша или архива.
На этот случай есть два запасных варианта, оба работают из коробки:
1. **Старый пакет.** `tinvest_mcp.sdk` сначала пробует `t_tech.invest`, а если
его нет — `tinkoff.invest`. Поэтому можно просто поставить прежний пакет:
```bash
uv pip install tinkoff-investments
```
2. **Локальный wheel.** Положите проверенный wheel-файл в `vendor/` и
раскомментируйте блок `[tool.uv.sources]` в конце `pyproject.toml`.
Какой пакет в итоге загрузился, видно в поле `sdk_package` инструмента `status`.
Подробнее: [docs/installation.md](docs/installation.md#if-the-sdk-will-not-install).
</details>
### 2. Выпустите токен API
В Т-Инвестициях: **Настройки → Токены API → Создать токен**
(в браузере: <https://www.tbank.ru/invest/settings/api/> · документация:
<https://developer.tbank.ru/invest/intro/intro/token>).
При создании токена выбираются его права. Это самое важное решение для
безопасности во всей настройке:
| Права | Для чего | Что выбрать |
|---|---|---|
| **Только чтение** | всё, что умеет сервер, кроме заявок | ✅ **начните с этого и, скорее всего, на этом и остановитесь** |
| **Полный доступ** | реальные заявки | ⚠️ только если вы правда хотите, чтобы агент торговал |
| **+ переводы денег** | перевод денег между счетами | ❌ **никогда**: серверу это не нужно, а при утечке файла с таким токеном можно вывести деньги |
> [!IMPORTANT]
> Токен показывается **только один раз**, восстановить его нельзя — сохраните
> сразу. Если есть сомнения, что токен в безопасности, отзовите его на том же
> экране и выпустите новый. Это бесплатно и срабатывает мгновенно.
Самый безопасный вариант для реального счёта — **два разных токена**: один
только для чтения, для анализа, и второй с полным доступом, который вы не
добавляете в настройки, пока действительно не решите торговать. При запуске
сервер проверяет, что это не один и тот же токен.
### 3. Передайте токен серверу
Токены хранятся в файле `.env` и **никогда** в настройках MCP-клиента: такие
файлы часто попадают в git или синхронизируются между устройствами.
```bash
cp .env.example .env
cp config.toml.example config.toml
chmod 600 .env # доступ только для владельца — не пропускайте
```
Откройте `.env` и впишите токен. Для начала — токен песочницы (рекомендуем):
```dotenv
TINVEST_SANDBOX_TOKEN=t.ваш_токен
```
Больше секретов нет. Всё остальное — режим работы, лимиты, транспорт — не
секретно и задаётся в `config.toml`.
<details>
<summary>Лучше хранить настройки вне репозитория</summary>
MCP-клиент может запустить сервер из любой папки. Поэтому сервер ищет
`config.toml` и `.env` сначала в текущей папке и выше, а потом в
`~/.config/tinvest-mcp/`. Если положить файлы туда, сервер найдёт их откуда
угодно, а секреты не окажутся ни в одном репозитории:
```bash
mkdir -p ~/.config/tinvest-mcp
cp .env.example ~/.config/tinvest-mcp/.env
cp config.toml.example ~/.config/tinvest-mcp/config.toml
chmod 600 ~/.config/tinvest-mcp/.env
```
</details>
### 4. Проверьте настройку до подключения клиента
```bash
uv run tinvest-mcp-doctor # или: .venv/bin/tinvest-mcp-doctor
```
Команда покажет, какие файлы настроек нашлись, какие токены заданы (в скрытом
виде), и выполнит стартовые проверки безопасности. Сервер при этом не
запускается, порты не открываются, заявки не выставляются. В свежей песочнице
вывод будет примерно таким:
```
Resolved files
------------------------------------------------------------
config.toml: /Users/you/.config/tinvest-mcp/config.toml
.env: /Users/you/.config/tinvest-mcp/.env
state directory: /Users/you/.config/tinvest-mcp
audit journal: /Users/you/.config/tinvest-mcp/audit.jsonl
Mode
------------------------------------------------------------
mode: sandbox
real trading: disabled
transport: stdio
SDK package: t_tech.invest
Tokens (masked)
------------------------------------------------------------
sandbox: present (t.a***xyz)
read-only (prod): not set
full access (prod): not set
Startup security checks
------------------------------------------------------------
[ok] real_trading_default_off: real_trading_enabled=False mode=sandbox
[ok] token_present: sandbox token configured
[ok] limits_configured: max_order_rub=500000 max_daily=5000000
```
Особенно внимательно посмотрите на блок «Resolved files». Если сервер не нашёл
`config.toml`, ваши лимиты не действуют.
### 5. Подключите клиент
Любому клиенту нужен **абсолютный путь** к исполняемому файлу `tinvest-mcp`
в виртуальном окружении. Узнать его можно командой
`readlink -f .venv/bin/tinvest-mcp` (или `uv run which tinvest-mcp`).
<details open>
<summary><strong>Claude Code</strong></summary>
```bash
claude mcp add tinvest -- /абсолютный/путь/tinvest-mcp/.venv/bin/tinvest-mcp
```
Или вручную в `.mcp.json` (для проекта) либо `~/.claude.json` (для пользователя):
```json
{
"mcpServers": {
"tinvest": {
"command": "/абсолютный/путь/tinvest-mcp/.venv/bin/tinvest-mcp"
}
}
}
```
</details>
<details>
<summary><strong>Claude Desktop</strong></summary>
Отредактируйте `claude_desktop_config.json`
(macOS: `~/Library/Application Support/Claude/`,
Windows: `%APPDATA%\Claude\`) и перезапустите приложение:
```json
{
"mcpServers": {
"tinvest": {
"command": "/абсолютный/путь/tinvest-mcp/.venv/bin/tinvest-mcp"
}
}
}
```
Claude Desktop работает через stdio, а этот сервер по умолчанию использует
именно его. Поэтому, в отличие от облачных серверов на streamable HTTP, здесь
всё подключается.
</details>
<details>
<summary><strong>Cursor</strong></summary>
`.cursor/mcp.json` (для проекта) или `~/.cursor/mcp.json` (для всех проектов):
```json
{
"mcpServers": {
"tinvest": {
"command": "/абсолютный/путь/tinvest-mcp/.venv/bin/tinvest-mcp"
}
}
}
```
</details>
<details>
<summary><strong>VS Code (режим агента)</strong></summary>
`.vscode/mcp.json`. Обратите внимание: в VS Code ключ называется `servers`,
а не `mcpServers`.
```json
{
"servers": {
"tinvest": {
"type": "stdio",
"command": "/абсолютный/путь/tinvest-mcp/.venv/bin/tinvest-mcp"
}
}
}
```
Токен сюда не пишите: папку `.vscode/` часто коммитят. Сервер берёт токен из
`.env` как раз для того, чтобы в настройках редактора не было секретов.
</details>
<details>
<summary><strong>Настройки в другом месте</strong></summary>
Если файлы лежат там, где сервер их сам не найдёт, укажите пути явно:
```json
{
"mcpServers": {
"tinvest": {
"command": "/абсолютный/путь/.venv/bin/tinvest-mcp",
"env": {
"TINVEST_MCP_CONFIG": "/Users/you/.config/tinvest-mcp/config.toml",
"TINVEST_MCP_ENV_FILE": "/Users/you/.config/tinvest-mcp/.env"
}
}
}
}
```
Здесь только *пути*, а не секреты, так что такой файл можно коммитить.
</details>
### 6. Первый запуск в песочнице
Напишите ассистенту:
> Проверь статус сервера T-Invest, открой счёт в песочнице, пополни его на
> 100 000 ₽ виртуальных денег и покажи портфель.
Потом пройдите весь путь до конца: подберите облигации, изучите одну из них,
посмотрите котировки, создайте черновик заявки, прочитайте его и только после
этого отправьте. Деньги в песочнице ненастоящие, так что это лучшее место,
чтобы разобраться, как работает каждое подтверждение и как выглядят черновики,
прежде чем всё станет по-настоящему.
Тот же сценарий можно запустить скриптом:
```bash
uv run python -m tinvest_mcp.scripts.sandbox_smoke
```
## Работа с реальным счётом
Переходите осознанно, по шагам и только после
[docs/security.ru.md](docs/security.ru.md).
**Только анализ — рекомендуемый вариант.** Положите в `.env` токен только для
чтения, оставьте `TINVEST_FULLACCESS_TOKEN` пустым и укажите:
```toml
[tinvest]
mode = "prod"
enable_real_trading = false
```
Теперь агент видит ваш настоящий портфель и реальные цены, но **не может
выставить заявку**. Дело не в запрете, а в том, что у сервера просто нет токена
с правом на сделки. Большинству этого достаточно.
**Реальная торговля** — только если вы точно этого хотите. Нужно выполнить все
четыре условия:
1. `mode = "prod"` в `config.toml`
2. `enable_real_trading = true` в `config.toml`
3. `TINVEST_FULLACCESS_TOKEN` задан в `.env` — и это *другой* токен, не тот, что
только для чтения
4. Лимиты в `config.toml` проверены и выставлены на суммы, потерю которых вы
готовы пережить. **Уберите значения, которые увеличивали для песочницы.**
По умолчанию для реального счёта — 1 500 ₽ на заявку и 3 000 ₽ оборота в
день: специально мало, чтобы первая ошибка обошлась дёшево.
## Безопасность
Коротко:
* **Токен остаётся у вас.** Его читает из `.env` один процесс и отправляет
только в API Т-Банка по TLS. Больше его не видит никто, включая нас.
* **Токен не попадает в логи.** Из ошибок, журнала и вывода настроек он
вычищается, номера счетов маскируются, а всё, что похоже на токен, удаляется
перед записью.
* **Две независимые настройки** отделяют свежую установку от реальной заявки,
а токена для сделок по умолчанию нет вовсе.
* **Жёсткие лимиты** заданы в `config.toml`, а не в промпте: сумма заявки,
дневной оборот, доля позиции, отклонение цены, возраст котировки. Только
лимитные заявки, без плеча и шортов, при желании — строгий список разрешённых
бумаг.
* **Повторная проверка при отправке.** Черновик, который устарел или цена в
котором уже не совпадает со стаканом, выставить нельзя.
* **Никакого непроверенного текста.** Нет новостей, оценок настроений и доступа
в интернет — главных источников prompt injection среди инструментов просто нет.
* **Журнал действий**, в который можно только дописывать: в нём фиксируется
каждое обращение наружу.
* **Только локальная работа по умолчанию.** Сервер не открывает сетевой порт,
пока вы сами этого не настроите.
Не менее важно, от чего такая схема **не** защищает. В MCP сервер не знает,
кто именно вызвал инструмент — модель или человек, поэтому правило «агент не
должен сам вызывать `post_order`» — это инструкция в промпте, а не техническая
блокировка. Если взломан компьютер, взломан и счёт. А для gRPC-соединений этого
процесса добавлено доверие к российскому национальному удостоверяющему центру.
Каждый пункт и то, что действительно помогает, разобраны в
**[docs/security.ru.md](docs/security.ru.md)**.
Нашли уязвимость? Напишите по инструкции из [SECURITY.md](SECURITY.md), а не в
публичный issue.
## Документация
| | |
|---|---|
| [docs/installation.md](docs/installation.md) | Подробная установка, выпуск токена, все клиенты, решение проблем |
| [docs/security.ru.md](docs/security.ru.md) | Модель угроз, какие проверки где выполняются, чеклист защиты |
| [docs/configuration.md](docs/configuration.md) | Все параметры `config.toml` и переменные окружения |
| [docs/tools.md](docs/tools.md) | Все 35 инструментов: аргументы, ответы, какие только читают данные |
| [docs/architecture.md](docs/architecture.md) | Устройство сервера, подтверждения сделок, проверки риска |
| [docs/comparison.ru.md](docs/comparison.ru.md) | Честное сравнение с официальным T-Invest MCP от Т-Банка |
| [DISCLAIMER.md](DISCLAIMER.md) | Неофициальный статус, риски MCP, отказ от инвестиционных рекомендаций |
## Разработка
```bash
uv sync --all-extras # зависимости для разработки
uv run pytest # 213 тестов, без сети и без токена
uv run ruff check .
uv run ruff format .
```
Тесты полностью работают без сети: все обращения к брокеру идут через
заглушку, а журнал пишется во временный файл. Поэтому `pytest` можно спокойно
запускать даже на компьютере, где в окружении лежат боевые токены.
```
src/tinvest_mcp/
server.py регистрация MCP-инструментов и инструкция для агента
tools.py сигнатуры инструментов и проверка входных данных
services.py бизнес-логика: анализ, черновики заявок, планы, исполнение
adapter.py единственный модуль, который обращается к SDK брокера
risk_engine.py все жёсткие проверки, по функции на правило
proposals.py хранилище черновиков заявок со сроком жизни и защитой от дублей
trade_plan.py планы из нескольких сделок и два шага подтверждения
allocation.py таблица правил для целевой структуры портфеля
schemas.py pydantic-модели — формат данных, который видит модель
journal.py журнал действий (только дописывание)
config/ поиск config.toml и .env, итоговые настройки
tls.py корневые сертификаты для gRPC-соединения с Т-Банком
```
Будем рады вашим улучшениям — см. [CONTRIBUTING.md](CONTRIBUTING.md). Изменения
в `risk_engine.py`, `proposals.py` и `trade_plan.py` принимаются только с
тестами: именно эти модули не дают деньгам уйти по ошибке.
## О Plasm
В [Plasm](https://plasm.one) мы строим **автономные финансы**. Идея в том, что
финансы должны сами думать наперёд, подстраиваться под обстоятельства и
действовать, а не быть набором разрозненных продуктов, которые приходится
сводить вручную. Подробнее о нашем видении:
**[The Future of Finance →](https://plasm.one/future-of-finance)**
В нём описаны четыре агента, которые работают вместе. Этот сервер — рабочая
и открытая для проверки реализация той же модели на примере одного реального
брокера:
| Агент Plasm | Как это устроено здесь |
|---|---|
| **Планирование** — найти варианты для капитала | [`allocation.py`](src/tinvest_mcp/allocation.py) — целевая структура по таблице правил; [`trade_plan.py`](src/tinvest_mcp/trade_plan.py) — просчитанный набор сделок с выводом, стоит ли их делать |
| **Риск** — сберечь резервы | [`risk_engine.py`](src/tinvest_mcp/risk_engine.py) — лимиты на заявку, проверки цены, ликвидности и торговой сессии |
| **Контроль** — проверить ограничения | личные правила: эмитент, сектор, минимальный остаток денег, валютная доля — проверяются по портфелю *после* сделки |
| **Действие** — исполнить с вашего согласия | черновик → сверка со свежей котировкой → отдельное подтверждение; без вас ничего не происходит |
*«Правила задаёте вы. Агенты им следуют».* Здесь правила — это буквально
[`config.toml`](config.toml.example), единственное, что модель не может
изменить.
И раз *возможности не должны зависеть от размера счёта*, проект распространяется
под лицензией MIT, работает на обычном ноутбуке и требует только бесплатный
токен API брокера.
Тоже работаете в этой области? Будем рады пообщаться — <alex@plasm.one>.
## Лицензия
[MIT](LICENSE) © 2026 [Plasm](https://plasm.one)
---
<p align="center">
Сделано командой <a href="https://plasm.one"><strong>Plasm</strong></a>.<br>
<sub>Неофициальный проект. Не связан с Т-Банком. Не является инвестиционной рекомендацией.<br>
Подробнее — в <a href="DISCLAIMER.md">DISCLAIMER.md</a>.</sub>
</p>
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues