Дневник разработки: MCP, отслеживание email и структура меню

Весь день я провел за созданием MCP-серверов, автоматизированным отслеживанием email и масштабируемыми админ-меню.

Вот основные уроки, извлеченные из этой работы.

МCP Ѕеrvеr Ѕаfеtу

Я выпустил универсальный набор инструментов MCP и развернул серверы в нескольких корпоративных приложениях. При создании агентов, которые могут взаимодействовать с вашими системами, следуйте этим правилам:

  • Свободно давайте агентам инструменты для чтения.
  • Выдавайте инструменты для записи дозированно.
  • Пропускайте каждое действие записи через runbook с подтверждением человеком.
  • Хешируйте пароли в инструментах создания пользователей. Никогда не храните их в открытом виде.
  • Используйте публичные UUID для журналов аудита. Никогда не раскрывайте внутренние ID базы данных.
  • Используйте резервный вариант (fallback) для контекста пользователя. Агент может использовать HTTP или STDIO. Убедитесь, что ваш код обрабатывает оба варианта.

Отслеживание email без ручного труда

Я создал систему, которая автоматически отслеживает открытия и клики в письмах. Не заставляйте разработчиков добавлять пиксели отслеживания в каждое письмо. Вместо этого используйте слушатель (listener) отправки почты.

  • Слушатель перехватывает сообщение.
  • Он внедряет пиксель отслеживания в HTML.
  • Он оборачивает все ссылки для отслеживания кликов.
  • Он добавляет хеш метаданных для легкой корреляции.

Два важных замечания:

  • Избегайте Mail::raw(). Он пропускает путь переписывания HTML. Используйте правильные HTML Mailables, чтобы гарантировать работу отслеживания.
  • Устанавливайте отслеживание в положение "on" по умолчанию. Если пользователям придется включать его вручную, они забудут об этом.

Масштабируемые админ-меню

Когда вы управляете меню в нескольких приложениях, не используйте один гигантский файл. Используйте небольшие классы-билдеры для каждой группы.

  • Создавайте по одному классу на группу (например, Settings, User Management).
  • Каждый класс объявляет свои собственные элементы и необходимые разрешения.
  • Это делает вашу навигацию декларативной.
  • Обрезайте длинные метки внутри компонента, а не для каждого элемента по отдельности.
  • Ограничивайте доступ к инструментам с помощью двух проверок: прав пользователя и конкретной версии приложения.

Общая картина

Цель состоит в том, чтобы сделать «сетку безопасности» автоматической.

Если диагностический инструмент полезен, включайте его по умолчанию. Если вам приходится не забыть включить его, он вам не поможет, когда система упадет в 2 часа ночи. Зашивайте свои уроки в инструменты, чтобы вам не приходилось учиться заново.

Источник: https://dev.to/nasrulhazim/dev-log-2026-06-19-mcp-servers-everywhere-email-that-tracks-itself-and-menus-that-behave-19il