Как работает Barfinex
Barfinex и MCP (AI-инструменты)
Предоставление API Barfinex Provider AI-ассистентам через Model Context Protocol. Инструменты по Swagger, режимы запуска и настройка.
Что такое Provider MCP?
Provider MCP — это MCP-сервер (Model Context Protocol), который предоставляет REST API Barfinex Provider в виде инструментов для AI-клиентов (Cursor, Claude и др.). AI может работать с вашим Provider — счета, ордера, свечи, детекторы, реплей и т.д. — через структурированные вызовы инструментов, а не через произвольные HTTP-запросы в промптах.
- Источник истины — OpenAPI Provider (
GET /docs-json) определяет, какие MCP-инструменты доступны. Новые эндпоинты Provider могут появляться в инструментах без ручного кодирования. - Транспорт — stdio (MCP-сервер запускается как процесс).
Модель инструментов
Статические инструменты (всегда доступны)
- provider_health — Проверка Provider через
GET /api/options - provider_openapi — Получить текущий OpenAPI-документ
- provider_refresh_openapi_tools — Обновить OpenAPI и пересобрать динамические инструменты
- provider_request — Универсальный HTTP fallback
Динамические инструменты (по Swagger)
После запуска (или после refresh) MCP-сервер регистрирует по одному инструменту на операцию OpenAPI:
- Имя:
provider_<operationId>(или из method + path, если operationId нет) - Методы: GET, POST, PUT, PATCH, DELETE
- Входы: pathParams, query, body, headers, bearerToken
Таким образом появляются инструменты вроде provider_getAccounts, provider_getCandles и т.д., соответствующие API Provider.
Режимы запуска
- Только MCP — Запуск только MCP-сервера (например
npm run start:mcp:provider:devв репозитории trading.apps). - Provider + MCP — Запуск Provider и MCP (удобно для разработки).
- Полный стек (Provider + Detector + MCP) — Для разработки с доступом к детектору.
Точные команды зависят от вашей сборки Barfinex/trading.apps; см. скрипты в репозитории (например start:provider:dev, start:ai-stack:dev).
Переменные окружения
- PROVIDER_API_URL — Базовый URL API Provider (например
http://localhost:8080/apiилиhttp://localhost:8081/api). - PROVIDER_BEARER_TOKEN — Токен для аутентификации в API Provider (должен совпадать с
apiTokenв Provider). - PROVIDER_MCP_TIMEOUT_MS — Таймаут запросов (по умолчанию 15000).
- PROVIDER_MCP_INSECURE_TLS — Установите
trueдля локального HTTPS с самоподписанным сертификатом при необходимости.
Аутентификация
Маршруты Provider под /api/* защищены API-токеном. Передавайте токен в вызовах MCP через параметр bearerToken инструмента или задайте PROVIDER_BEARER_TOKEN в окружении процесса MCP, чтобы все вызовы использовали его.
Пример конфигурации MCP-клиента
Для Cursor-совместимого stdio MCP-клиента настройте сервер примерно так (пути и имена скриптов зависят от репозитория):
{
"mcpServers": {
"barfinex-provider": {
"command": "npm",
"args": ["run", "start:mcp:provider:dev"],
"cwd": "/path/to/trading.apps",
"env": {
"PROVIDER_API_URL": "http://localhost:8081/api",
"PROVIDER_BEARER_TOKEN": "your_token_if_required"
}
}
}
}
Ограничения
- В виде инструментов доступны только REST-операции из Swagger; события WebSocket не являются MCP-инструментами.
- Методы вроде HEAD, OPTIONS могут не регистрироваться автоматически.
- Если при старте Provider недоступен, доступны только статические инструменты до ручного вызова provider_refresh_openapi_tools после поднятия Provider.
Устранение неполадок
- Connection refused при старте — Сначала запустите Provider, затем выполните provider_refresh_openapi_tools.
- Вижны только статические инструменты — Не удалось загрузить OpenAPI; вручную вызовите refresh после того, как Provider станет доступен.
- Ошибки сертификата HTTPS (локально) — Установите
PROVIDER_MCP_INSECURE_TLS=trueдля локальной разработки.
Полный API Provider — в Справочнике API Provider. Архитектура Barfinex — в Архитектура Barfinex.