TimelixTimelix
MCP-сервер

Инструменты MCP

Текущий built-in MCP-набор Timelix и как он связан с Timelix Tools

Эта страница описывает именно текущий built-in MCP-набор, который Timelix реально регистрирует из features/TimelixTools/registry.ts.

Для agent-specific смешивания built-in и company/store tools смотрите Timelix Tools.

Source of truth для MCP runtime и debug-поверхностей — features/TimelixTools/registry.ts. В текущей архитектуре mcpPreset тоже вычисляется из getToolsByContext('mcp'), поэтому preset и built-in MCP-набор синхронизированы.

Что реально входит в built-in MCP-набор

КатегорияИнструменты
Systemping, echo
TodosreadTodos, createTodo, updateTodo, deleteTodo, addTaskPlan, proposeTask
EpicsreadEpics, getEpicDetails
MetricsgetCompanyMetrics, incrementMetric, setMetricValue, getMetricHistory
IntegrationssendTelegramMessage
DocsgetDoc, appendDoc, searchDocs

revertDoc и listDocVersions тоже встроены в Timelix, но это не MCP-инструменты. Они доступны только в chatUI.

Как это связано с агентом

Без agentId

/api/agent/mcp поднимет общий built-in набор из registry.

С agentId

Timelix поверх built-in слоя применит agent-specific фильтрацию:

  • уберёт disabledSystemTools
  • добавит company/store tools из linkedToolIds - disabledToolIds

Именно поэтому список на голом MCP endpoint и список у конкретного агента могут различаться.

Коротко по категориям

System

  • ping — проверка соединения
  • echo — диагностический возврат входного текста

Todos

Работа с todoListId компании:

  • чтение задач
  • создание и обновление задач
  • удаление
  • планы выполнения
  • предложение задачи вместо мгновенного создания

Epics

High-level цели агента и связанные с ними детали.

Metrics

Чтение метрик компании и запись новых значений.

Integrations

Сейчас built-in integration для MCP — sendTelegramMessage.

Docs

Built-in docs-слой для агента:

  • getDoc — открывает папку, документ или план по ID
  • appendDoc — добавляет текст в конец документа
  • searchDocs — семантический поиск по документации

Актуальные параметры инструментов

readTodos

  • Обычно вызывается без аргументов
  • Специальные флаги:
    • limit?: number
    • showAll?: boolean
    • showCompleted?: boolean
    • completedLastWeek?: boolean

createTodo

  • title: string
  • description?: string
  • priority?: 'low' | 'medium' | 'high'
  • tags?: string[]
  • scheduledDate?: string
  • scheduledTime?: string
  • scheduledDuration?: number

updateTodo

  • todoId: string
  • title?: string
  • description?: string
  • completed?: boolean
  • priority?: 'low' | 'medium' | 'high'
  • tags?: string[]
  • difficulty?: 'trivial' | 'easy' | 'medium' | 'hard' | 'extreme'
  • focusMode?: 'focus' | 'backlog'
  • scheduledDate?: string | null
  • scheduledTime?: string
  • scheduledDuration?: number
  • selectedPlanId?: string | null
  • updatePlan?: { planId: string; title?: string; content?: string }
  • deletePlanId?: string

deleteTodo

  • todoId: string
  • permanent?: boolean

addTaskPlan

  • todoId: string
  • title: string
  • content?: string

proposeTask

  • title: string
  • description?: string
  • priority?: 'low' | 'medium' | 'high'
  • suggestedDate?: string
  • suggestedTime?: string
  • suggestedDuration?: number
  • reason?: string

readEpics

  • parentEpicId?: string

getEpicDetails

  • epicId: string

getCompanyMetrics

  • Параметры: нет

incrementMetric

  • metricId: string
  • delta: number
  • note?: string

setMetricValue

  • metricId: string
  • value: number
  • note?: string

getMetricHistory

  • metricId: string
  • days?: number

sendTelegramMessage

  • text: string

getDoc

  • id?: string
  • docId?: string — alias для совместимости

Возвращает:

  • listing для папок и оглавления
  • document для документов
  • plan для планов задач

appendDoc

  • docId: string
  • text: string

searchDocs

  • query: string
  • limit?: number

Пример вызова инструмента из кода

const response = await fetch(
  'https://app.timelix.ru/api/agent/mcp?token=YOUR_TOKEN',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      method: 'tools/call',
      params: {
        name: 'readTodos',
        arguments: {},
      },
      id: 1,
    }),
  }
);

Связанные разделы