← Заметки
Почему MCP, а не ещё одна пачка кнопок
mcp·ux·claude

Почему MCP, а не ещё одна пачка кнопок

Мы заменили шесть страниц дашборда одним окном чата. Цена — час инженерной работы; экономия — весь длинный хвост UI, который не пришлось строить.

· Mikhail Savchenko · Обновлено

Управление торговым стеком — это дерево мелких решений. Поставить стратегию на паузу. Апрувнуть rebalance. Перевести 50k из кэша в balanced. Показать вчерашнюю просадку по paper_levels_bob. Каждое решение — кнопка где-то. Через год у вас девяносто страниц, двенадцать дропдаунов и оператор, который в 3 ночи кликает не туда.

Сначала мы попробовали очевидное: лучшую информационную архитектуру — табы, поиск, хоткеи. Помогло, но не починило главное: никакой фиксированный UI не покрывает длинный хвост разовых вопросов. «Покажи сделки больше 10k за эту неделю по стратегиям, у которых сменилась фаза» — не та задача, под которую заводят страницу. Поэтому такие вопросы вы и не задаёте — а значит, не видите и ответов.

Что меняет MCP

Model Context Protocol отдаёт серверные инструменты Claude. Мы написали 14: get_state, set_mode, approve_trade, allocate_to_long и так далее. Каждый — обёртка над существующим сервисом в кодовой базе. У каждого — ролевые ограничения (viewer / operator / admin) по тому же RBAC, что и в веб-UI.

Поставили один раз, сгенерировали bearer-токен, вставили четырёхстрочный конфиг в Claude Desktop. После этого дерево решений превращается в чат:

покажи текущее состояние balanced

Claude видит скилл strateg-overview, вызывает get_state и возвращает equity / просадку / режим / mode / pending-апрувы. Одно предложение на вход. Пять строк на выход.

поставь balanced в CAUTIOUS

Claude видит скилл strateg-set-mode, просит подтверждения, зовёт set_mode(strategy="balanced", mode="CAUTIOUS"), перечитывает новое состояние для проверки. Два сообщения, один вызов инструмента, идемпотентная запись в аудит.

переведи 50k из cash в trading на paper_levels_bob

Claude дёргает get_my_balance за деревом капитала, формирует предлагаемый перевод (cash $100,000 → $50,000; trading paper_levels_bob $0 → $50,000), ждёт «да», зовёт allocate_to_trading. Инструмент возвращает {ok: true, audit_ref, balance}, и Claude перечитывает новые суммы.

Что нам не пришлось строить

  • Страницу «поиск по диапазону дат, стратегии и стороне».
  • Визард «переведи деньги между корзинами с проверками безопасности и превью баланса».
  • Экран «сравни стратегии параллельно».
  • Четырнадцать модалок с подтверждением.

Всё это Claude делает бесплатно. Скиллы говорят ему, какой инструмент звать и что подтвердить перед записью. Скиллы — это markdown-файлы в вашем конфиге; вы их редактируете, форкаете, запрещаете нам обновлять.

Что мы оставили

Дашборд никуда не делся. По-прежнему семь UI-страниц: cockpit, сетка стратегий, сделки, control panel, очередь апрувов, settings, account. Карточки и графики выигрывают у чата на мониторинге — глаз ловит смену режима быстрее любого LLM. Чат выигрывает на редактировании — набрать предложение быстрее, чем охотиться по меню.

Мы просто перестали проектировать UI под каждое возможное действие. Спроектировали семь страниц мониторинга, и MCP взял на себя остальное.

Audit-grade

Каждый вызов инструмента пишет строку в audit_log с id оператора, action, старым и новым значением и ключом идемпотентности. У движений капитала есть audit_ref, чтобы повторы не дублировались. Смены режимов уходят в mode_history с пометкой «via mcp:user#7». Чат удобнее; след тот же, что и от нажатий на кнопки.

Если регулятор спросит «кто поставил торговлю на паузу в 03:14 22 апреля», ответ — в audit_log, а не в вашей истории Slack.

Попробуйте

curl -fsSL https://inite.fund/install.sh | sh

Сгенерируйте токен на /account, вставьте MCP-конфиг в Claude Desktop и спросите: show me current state of balanced. Три минуты от нуля до результата.

Похожие заметки
Все заметки →