WorkenДокументация/ Разработчикуworken.ru

разработчику · статья 31

Локальные инструменты (MCP)

Эта статья — для разработчика или интегратора: у клиента есть свои системы — внутренняя CRM, склад, расписание в МИС, печать документов, — и вы хотите, чтобы ИИ-сотрудник умел ими пользоваться. Для этого вы поднимаете рядом со своими данными небольшойMCP-сервер, который отдаёт платформе список инструментов: «посмотреть свободные окна врача», «создать запись во внутренней CRM», «напечатать направление». Сотрудник вызывает их так же, как родные навыки платформы, — в разговоре с клиентом, не замечая границы между Worken и вашей системой. Экран живёт в менюНастройки → Локальные инструменты — режим разработчика для него включать не нужно; видят его Владелец и Администратор.

чем это отличается от статьи 30Там — Worken наружу: платформа отдаёт свои 75 инструментов вашему коду и вашей ИИ-среде по адресу https://mcp.worken.ru/v1/sse. Здесь — ваше внутрь: ваш сервер отдаёт свои инструменты сотрудникам Worken. Один протокол, два направления.
1

Как устроен экран

Сверху — карточки подключённых серверов, по одной на сервер. Ниже — блок «Как подключить свой сервер» с тремя шагами кода: он показан всегда, даже когда серверов ещё нет. Ещё ниже — блок«Инструменты сотрудника»: кто из сотрудников какими инструментами владеет. Единственная лаймовая кнопка экрана,Подключить сервер, ведёт к шагам подключения — своей формы у действия нет, подключение живёт в командной строке.

Экран «Локальные инструменты» целиком: крошка «Настройки / Локальные инструменты», лаймовая кнопка «Подключить сервер»; карточка «Расписание врачей» со статусом НА СВЯЗИ, карточка «Печать направлений» в красной рамке со статусом НЕ ОТВЕЧАЕТ; блок «Как подключить свой сервер» с тремя шагами кода; блок «Инструменты сотрудника» со списком инструментов Регины и правами; внизу строка о каталоге моделей
Весь экран: два сервера, шаги подключения, инструменты сотрудника.
2

Подключить сервер: три шага кода

Блок «Как подключить свой сервер» — это и есть вся процедура:

Блок «Как подключить свой сервер»: шаг 1 — bun add -g worken; шаг 2 — код defineTool с именем free_slots, описанием «Свободные окна врача на дату», схемой input из doctor и date и функцией run; шаг 3 — worken mcp --tools ./tools.ts --transport tunnel; у каждого блока кода кнопка копирования, внизу ссылка «Подробнее в документации»
Три шага: поставить инструмент разработчика, описать инструмент, поднять сервер.

Шаг 1 — поставить инструмент разработчика:bun add -g worken. Шаг 2 — описать инструмент функцией defineTool: машинное имя (free_slots), описание, схема аргументов и функцияrun, которая ходит в вашу систему. Всё, что вы здесь напишете, платформа возьмёт как есть: имя и схему — для вызовов, описание — для людей. Шаг 3 — поднять сервер:worken mcp --tools ./tools.ts --transport tunnel.

Способа связи два, и они видны в карточках серверов.tunnel — соединение с платформой устанавливает сама командаworken mcp; вашему серверу не нужен публичный адрес, он получает служебный вида wrk-tunnel://gippokrat-slots.http — ваш сервер уже доступен по своемуhttps://…-адресу, и платформа ходит к нему сама. Проверить, что связь есть, можно в любой момент кнопкойПроверить связь в карточке сервера — ответ приходит сразу, с временем отклика.

описание — по-русски, его прочитает владелецПоле description заполняйте коротко и по-русски: «Свободные окна врача на дату», «Отменить запись». Именно это описание владелец увидит в «Навыках» карточки сотрудника (статья 05) — и по нему поймёт, что разрешать. Инструмент с пустым или английским описанием для него — чёрный ящик.
3

Карточка сервера и список инструментов

Каждый подключённый сервер — карточка. В шапке имя и статус, под ними — способ связи, адрес и число инструментов, время последнего вызова и строка «используют» — какие сотрудники владеют инструментами этого сервера. СсылкаИнструменты сервера раскрывает список:

Карточка «Расписание врачей» с раскрытым списком инструментов: статус НА СВЯЗИ, строка tunnel · wrk-tunnel://gippokrat-slots · 4 инструмента, используют Регина и Соня; в списке free_slots «Свободные окна врача на дату» — 118 за 7 дней, book_slot «Записать клиента в свободное окно» — 34, move_booking — 9, cancel_booking — 3; у каждого кнопка «Вызвать вручную» и раскрывашка «схема аргументов · JSON», у free_slots она открыта и показывает {"doctor":"string","date":"string"}
Четыре инструмента «Расписания врачей»: имя, описание, вызовы за 7 дней, схема аргументов.

Строка инструмента читается слева направо: машинное имя (free_slots), ваше русское описание, счётчик «118 за 7 дней» — по нему видно, чем сотрудники пользуются на самом деле, а что лежит мёртвым грузом. Раскрывашка «схема аргументов · JSON» показывает схему как есть. КнопкаВызвать вручную открывает форму с полями по схеме — так вы проверяете инструмент сами, не поднимая сотрудника. Осторожно: если инструмент меняет данные, форма прямо предупредит — это не тест, изменение в вашей системе произойдёт по-настоящему.

Рядом с «Проверить связь» в карточке две тихие кнопки.Выключить — обратимая пауза: сервер переходит в состояние ВЫКЛЮЧЕН, сотрудники перестают видеть его инструменты, включить можно обратно. Отключить сервер — убрать сервер с экрана насовсем, с подтверждением. Кнопки «Удалить» здесь нет — как и у ключей в статье 30.

4

«Инструменты сотрудника»: кто чем владеет

Нижний блок отвечает на вопрос «что именно в руках у конкретного сотрудника»: выберите сотрудника в списке справа — и увидите все его инструменты в одном списке, откуда бы они ни пришли.

Блок «Инструменты сотрудника» с выбранной Региной: четыре платформенных инструмента worken_virts_ask, worken_threads_messages_list, worken_knowledge_search_store, worken_resources_find — все РАЗРЕШЁН; free_slots от «Расписания врачей» — РАЗРЕШЁН, book_slot и move_booking — РАЗРЕШЁН · ПОДТВЕРЖДЕНИЕ, cancel_booking — красным ЗАПРЕЩЁН, telegram_send_message от канала TG — РАЗРЕШЁН; внизу строка «На вкладке „Навыки“ карточки сотрудника — человеческие формулировки; сырые имена инструментов живут только здесь»
Инструменты Регины: платформа, ваш сервер и канал — с правами по каждому.

У каждой строки три части: имя инструмента, откуда он пришёл — «платформа», имя вашего сервера или канал — и право. Прав три: разрешён — сотрудник вызывает сам;разрешён · подтверждение — перед вызовом сотрудник спрашивает владельца; запрещён — инструмент подключён, но этому сотруднику не выдан. Если сервер инструмента сейчас не отвечает, у строки появляется красная пометка «недоступен».

Важно понимать, что этот экран — единственное место, где живут сырые имена вроде book_slot. Владелец в карточке сотрудника на вкладке «Навыки» (статья 05) видит те же инструменты человеческими формулировками — клиенту и владельцу машинные имена не показываются, об этом прямо написано под блоком.

И одна строка внизу экрана, которую легко пропустить: каталог моделей. Инструменты работают только на моделях с поддержкой инструментов, а бесплатных таких в каталоге — ноль. Сотрудник на бесплатной модели ваши инструменты звать не сможет — проверьте модель сотрудника, прежде чем искать ошибку в своём сервере.

5

Статусы и отладка: когда сервер не отвечает

У сервера три состояния: зелёное НА СВЯЗИ, красноеНЕ ОТВЕЧАЕТ и серое ВЫКЛЮЧЕН. Упавший сервер экран не прячет — наоборот, поднимает на виду:

Карточка «Печать направлений» в красной рамке: статус НЕ ОТВЕЧАЕТ, строка http · https://print.gippokrat.ru/mcp · 2 инструмента, красным «связь потеряна 9 августа в 02:14», строка «используют: Гриша · У Гриши 2 инструмента сейчас недоступны», кнопки «Проверить связь», «Выключить», «Отключить сервер»
Сервер потерял связь: карточка в красной рамке называет время и последствия.

Карточка называет три вещи сразу: когда пропала связь («связь потеряна 9 августа в 02:14»), каким был последний успешный вызов до этого — и кого это задело: «У Гриши 2 инструмента сейчас недоступны». Порядок отладки простой: почините сервер у себя, нажмите Проверить связь — зелёный ответ с временем отклика значит, что инструменты снова в руках сотрудников, ничего переподключать не нужно. Пока сервер лежит, кнопки «Вызвать вручную» у его инструментов погашены — наведите курсор, и платформа скажет причину.

6

Безопасность: данные остаются у вас

Инструменты исполняет ваш сервер — от своего имени, на вашей стороне. Платформа видит только то, что вы объявили вdefineTool: имя, описание и схему аргументов; код функции run, доступы к базе и сами данные наружу не уходят — Worken передаёт аргументы вызова и получает ответ. Это значит, что права режете вы: отдавайте сервером только те инструменты, которые сотрудникам действительно нужны, а внутриrun ходите в свою систему под отдельной служебной учёткой с минимальными правами — не под админской.

внешнее действие — сначала через подтверждение Инструмент, который меняет что-то по-настоящему — запись в CRM, отмена брони, печать документа, — на первое время заводите с правом «разрешён · подтверждение»: перед каждым вызовом запрос придёт владельцу в очередь «Требует решения» (статья 19), и человек увидит, что именно сотрудник собрался сделать. Снять подтверждение никогда не поздно — статья 20 объясняет, как это делается правилами; вернуть доверие после ошибочной отмены двадцати записей сильно дороже.

Обратная сторона этого экрана описана встатье 30: там Worken сам выступает MCP-сервером для вашей ИИ-среды. На этом цикл замыкается: от найма первого сотрудника в статье 01 — до момента, когда сотрудник работает руками ваших собственных систем.