Проект предоставляет MCP‑совместимый WebSocket JSON‑RPC сервер с одним инструментом: place_order, который отправляет заявку через Finam TradeAPI.
- WebSocket‑эндпоинт:
/ws(JSON‑RPC 2.0) - Инструменты:
place_order— повторяет параметры Finam PlaceOrder
- Эндпоинт проверки работоспособности:
GET /healthz
Переменные окружения:
SERVER_ADDR(по умолчанию:8080)FINAM_API_BASE_URL(по умолчаниюhttps://api.finam.ru)FINAM_ACCESS_TOKEN(обязательно)
cd mcp-server
go mod tidy
go run ./cmd/server
# WebSocket: ws://localhost:8080/wsdocker build -t mcp-finam:latest .
docker run -e FINAM_ACCESS_TOKEN=... -p 8080:8080 mcp-finam:latestИспользуйте узел MCP Client, указав адрес ws://<host>:8080/ws.
Пример потока:
- Telegram Trigger → AI Agent (модель с MCP‑клиентом) →
tools/listдля обнаруженияplace_order. - AI Agent валидирует аргументы и вызывает
tools/callс:
{
"name": "place_order",
"arguments": {
"account_id": "12345",
"symbol": "AFLT@MISX",
"quantity": "10",
"side": "SIDE_BUY",
"type": "ORDER_TYPE_LIMIT",
"time_in_force": "TIME_IN_FORCE_DAY",
"limit_price": "50",
"client_order_id": "tg-20251003-001"
}
}- Сервер пересылает запрос в Finam и возвращает идентификаторы заявки, которые модель использует для финального ответа.
- Храните
FINAM_ACCESS_TOKENв секрете (секрет‑менеджер/переменные окружения) - В проде размещайте за TLS‑терминацией (реверс‑прокси)
- Finam PlaceOrder: https://tradeapi.finam.ru/docs/guides/grpc/orders_service/PlaceOrder