MCP-сервер Timelix
URL, авторизация по токену и legacy-параметры, транспорты и динамические инструменты
Назначение
MCP (Model Context Protocol) endpoint Timelix отдаёт инструменты агенту, IDE и workflow-клиентам. Каждый HTTP-запрос обрабатывается со своим контекстом (userId, agentId, todoListId, опционально timezone), чтобы не было гонок при параллельных вызовах.
Бэкенд: маршрут приложения app/api/agent/[transport]/route.ts с обработчиком handleWithContext.
URL и транспорты
| Endpoint | Назначение |
|---|---|
/api/agent/mcp | Streamable HTTP, основной путь |
/api/agent/sse | Server-Sent Events для совместимости |
/api/agent/message | SSE messages |
Базовый путь задаётся как /api/agent.
Два способа авторизации
1. Токен
Токен проверяется в БД (mcpAccessTokens). При ошибке Timelix возвращает 401 и JSON-RPC ошибку Invalid or expired MCP token.
Из токена восстанавливаются userId, agentId и todoListId.
2. Legacy query-параметры
userIdобязателенagentIdопределяет agent-specific набор toolstodoListIdнужен для задач и плановtimezoneпередаётся как IANA (Europe/Moscow) или смещение (+03:00)agentNameиспользуется в логах и части prompt/tool flows
Парсинг выполняется в features/TimelixTools/context.ts (parseSessionContext).
После этого userId при необходимости дополнительно резолвится через resolveUserId.
Как MCP решает, какие tools отдать
- Если
agentIdесть, Timelix загружает agent-specific набор built-in и company/store tools. - Если
agentIdнет, сервер регистрирует общий built-in набор изfeatures/TimelixTools/registry.ts: system, todos, epics, metrics, integrations и docs-инструменты, которые реально экспортированы в registry. - Если загрузка набора агента падает, выполняется fallback на полный built-in набор.
Именно поэтому список инструментов зависит не только от реестра, но и от роли агента. Подробности: Timelix Tools.
Пример для curl
Клиент дальше обычно вызывает цепочку initialize → tools/list → tools/call.
Типичные ошибки
| Симптом | Что проверить |
|---|---|
401 при ?token= | Срок токена и корректность записи в mcpAccessTokens |
400 при legacy-вызове | Передан ли userId |
Инструмент падает с Agent not configured | Есть ли в URL agentId |
Инструмент падает с todoListId not configured | Передан ли todoListId или извлекается ли он из токена |
Серверные логи обычно помечаются префиксами [MCP], [MCP-DIAG], [MCP Context].
Связанные разделы
- Задачи и MCP — зачем
todoListIdиtimezone - Timelix Tools — откуда берётся список tools