okama-mcp: как подключить ИИ-ассистента к портфельному анализу
Сцена: аналитик открывает чат‑бота ChatGPT и спрашивает: «Какой ожидаемый доход у портфеля 60/40 за последний год?»
Факт: ИИ‑ассистент выдаёт цифры, но они не совпадают с реальными расчётами – в ответе «галлюцинированы» CAGR и IRR.
Последствие: решение, основанное на таких данных, может стоить компании миллионы рублей упущенной прибыли или неверных инвестиций.
Что проверить: можно ли заставить ИИ‑ассистента использовать проверенный расчётный движок вместо генерации текста?
Источник: Habr
Что реально даёт репозиторий okama‑mcp команде
okama‑mcp — это готовый сервер, написанный на Python ≥ 3.11, который «оборачивает» библиотеку okama (инструменты для бэктеста, Монте‑Карло‑симуляций и построения эффективной границы).
Сервер принимает запросы от любого LLM‑ассистента, проверяет их по JSON‑схемам и запускает нужный расчёт в okama. Результат (число, график PNG) возвращается обратно в чат, где ассистент может вставить его в ответ.
- Бесплатный и открытый (MIT‑лицензия).
- Stateless — каждый запрос содержит полную спецификацию портфеля, поэтому сервер не хранит состояние и легко масштабируется.
- Кеширование — дорогие объекты (Portfolio, EfficientFrontier) хранятся по SHA‑256 хэшу, повторные запросы отдаются мгновенно.
Где это вписывается в рабочий процесс с ИИ
- Сбор требований – аналитик формулирует запрос на естественном языке (например, «построй гистограмму доходности по Монте‑Карло для портфеля 60/40»).
- MCP‑клиент – приложение (Claude Desktop, Claude Code, Cursor, Codex) запускает локальный процесс okama‑mcp и передаёт запрос через stdin/stdout (транспорт stdio) или через HTTP‑интерфейс (streamable‑http).
- Выполнение – сервер проверяет JSON‑схему, собирает объект Portfolio, запускает нужный инструмент (бэктест, MC‑симуляцию, построение границы) и формирует ответ с цифрами и PNG‑графиком.
- Ответ в чат – ассистент получает готовый результат и вставляет его в диалог, избавляя пользователя от «угаданных» цифр.
Таким образом, ИИ‑ассистент перестаёт быть генератором текста и становится оркестратором проверенных финансовых расчётов.
Как протестировать без превращения в игрушку
- Установить зависимости
bash git clone https://github.com/okama-io/okama-mcp.git cd okama-mcp pip install -r requirements.txt - Запустить сервер в режиме stdio
bash python -m okama_mcp.server - Сформировать простой запрос (пример JSON‑спеки для Монте‑Карло):
json { "tool": "mc_simulation", "args": { "portfolio_spec": { "assets": [ {"ticker": "SPY", "weight": 0.6}, {"ticker": "AGG", "weight": 0.4} ], "start_date": "2022-01-01", "end_date": "2023-01-01" }, "iterations": 5000 } } - Отправить запрос через клиент (например, Claude Desktop) и убедиться, что в ответе пришёл PNG‑файл с гистограммой и числовые метрики (IRR, средняя доходность).
- Проверить кеш – повторный запрос с теми же параметрами должен отработать почти мгновенно (лог в консоли покажет «cache hit»).
Если сервер отдает корректные графики и цифры, интеграция готова к более серьёзному использованию.
Какие риски стоит проверить перед внедрением
| Риск | Что проверить | Как проверить |
|---|---|---|
| Отсутствие сессии (stateless) | Каждый запрос действительно содержит полную спецификацию портфеля. | Сгенерировать запрос без указания даты/активов и убедиться, что сервер отклонит его с понятным сообщением. |
| Совместимость клиентского LLM | MCP‑клиент работает только с локальными приложениями, а не с веб‑версией ChatGPT/Gemini. | Попробовать вызвать сервер из браузерного чат‑бота – должно не работать; использовать только Claude Desktop/Code или аналогичный клиент. |
| Требования к окружению | Python ≥ 3.11, наличие зависимостей (pydantic, fastapi, etc.). | Запустить python --version и pip check. |
| Стоимость вычислений | Монте‑Карло‑симуляции могут быть ресурсоёмкими. | Оценить время выполнения при 5000‑10000 итераций; при необходимости ограничить итерации или использовать более мощный сервер. |
| Лицензия и поддержка | MIT‑лицензия открыта, но проект поддерживается небольшим сообществом. | Проверить активность репозитория (issues, pull‑requests) и наличие контактов для вопросов. |
Какое решение можно принять уже на этой неделе
- Определить цель – нужен ли вам точный расчёт доходности в реальном времени или достаточно периодических отчётов.
- Запустить пробный сервер на тестовой машине (можно ноутбук) и выполнить один‑два запроса из списка выше.
- Сравнить результаты с тем, что выдаёт ваш текущий ИИ‑ассистент без MCP. Если разница существенна, планируйте интеграцию в продакшн.
- Согласовать с ИТ – убедитесь, что у вас есть Python ≥ 3.11 и возможность запускать фоновые процессы.
- Подготовить чек‑лист (см. ниже) и пройти его совместно с командой разработки и аналитики.
Практический чек‑лист для недели
- [ ] Установлен Python ≥ 3.11 и все зависимости из
requirements.txt. - [ ] Запущен okama‑mcp в режиме
stdioи успешно принимает запросы от локального клиента. - [ ] Сформирован и отправлен запрос с полной спецификацией портфеля; получен PNG‑график и числовые метрики.
- [ ] Повторный запрос с теми же параметрами отрабатывает быстрее (кеш‑хит).
- [ ] Проверена несовместимость с веб‑версией ChatGPT/Gemini – сервер отклоняет такие запросы.
- [ ] Оценена нагрузка (время выполнения 5000 итераций) и согласована с бюджетом вычислительных ресурсов.
Если все пункты отмечены, можно планировать масштабирование сервера (например, развернуть streamable‑http на собственном хосте) и подключать к нему остальные LLM‑ассистенты в компании.
Источники
- https://habr.com/ru/companies/okama/articles/1051548/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1051548
- Habr статья okama‑mcp
- GitHub okama‑mcp
- Документация Model Context Protocol
- Библиотека okama
- FastMCP – фреймворк для MCP‑серверов
Темы журнала
Что почитать дальше
- Clipia MCP для Claude Code, Cursor и Codex: генерация фото и видео через AI-агента вместо отдельного сервиса
- 6 AI-инструментов для генерации текста в 2026: ChatGPT, Claude, Gemini, Jasper, Copy.ai, Writesonic — сравнение по 5
- Claude Code атака через DNS: как AI-агент запускает вредоносный скрипт из GitHub
- ChatGPT теряет долю рынка в 2025: кто выигрывает — Gemini, Claude, Llama
- Claude Tag в Slack: какой ИИ-агент можно пускать в общий канал и что проверить перед запуском