About Portfolio Services Blog Contact 🎙 Talk to AI
EN DE RU
🎙 Talk to AI
July 8, 2026 · 3 min read

Как избавиться от хаоса с MCP-серверами и инструментами для AI-агентов: единая точка доступа и аудит

Я — Денис Шохирев, Enterprise AI architect из Эрлангена. Руководитель DennisCraft AI Studio, где за последние 6 месяцев я внедрил 14 production AI-агентов для B2B-клиентов DACH-региона. В стеке: Claude, Supabase, n8n, Doppler, self-hosted Postgres. Типичный продакшн-кейс: внезапно выясняется, что у каждого агента свой набор MCP-серверов (например, orchestration через n8n, хранение в Supabase, несколько вспомогательных сервисов), а доступы и аудит ведутся в Excel-файле. На третьем проекте подряд

Denis Shokhirev
Denis Shokhirev
Enterprise AI Architect
Telegram LinkedIn

Я — Денис Шохирев, Enterprise AI architect из Эрлангена. Руководитель DennisCraft AI Studio, где за последние 6 месяцев я внедрил 14 production AI-агентов для B2B-клиентов DACH-региона. В стеке: Claude, Supabase, n8n, Doppler, self-hosted Postgres. Типичный продакшн-кейс: внезапно выясняется, что у каждого агента свой набор MCP-серверов (например, orchestration через n8n, хранение в Supabase, несколько вспомогательных сервисов), а доступы и аудит ведутся в Excel-файле. На третьем проекте подряд я увидел, как этот хаос приводит к простоям и дыркам в безопасности.

Почему хаос с MCP-инфраструктурой — это реальная угроза

Когда в компании появляется больше 2-3 AI-агентов, MCP-сервера (multi-component processing servers — например, orchestrators, интеграционные хабы, API шлюзы) и связанная с ними инфраструктура начинают жить своей жизнью. Каждый интегратор или ML-инженер подключает свои сервисы, заводит новые токены, забывает про старые, заливает переменные окружения в разные vault’ы. В итоге:

  • Невозможно быстро понять, кто и как получает доступы к данным.
  • Аудит действий размазан по логам разных сервисов.
  • Реальный риск утечек — например, если доступ к Supabase не был отозван после ухода подрядчика.

На практике это приводит к тому, что при попытке пройти внешний аудит или сертификацию (DSGVO, ISO 27001), команда вынуждена в спешке собирать ручные отчеты, а реальные инциденты детектируются с опозданием.

Единая точка доступа: что это и зачем

Я внедряю паттерн «единая точка доступа» (Single Access Point) для MCP-серверов и инструментов агентов. Суть подхода:

  • Все сервисные подключения (API, базы, orchestration) проходят через централизованный слой авторизации.
  • Аудит всех действий ведется в одной системе (например, отдельная таблица в Postgres, куда пишутся события не только из n8n, но и из Supabase и внешних API).
  • Выдача и отзыв доступа автоматизированы — через workflow в n8n, интегрированный с Doppler для управления секретами.

Результат: при проверке безопасности (или внутреннем аудите) я могу за 5 минут выгрузить полную историю действий по каждому агенту, увидеть все активные подключения и отозвать доступ без ручных скриптов.

Пример централизованной схемы доступа

Сервис Тип авторизации Аудит событий Управление доступом
Supabase Service Role Token (через Doppler) Логи в отдельной таблице Postgres n8n workflow для выдачи/отзыва
n8n API Key (Doppler) Журнал действий в Postgres Автоматизация через workflow
Внешний API OAuth2 Proxy События пишутся в ту же таблицу Централизованная панель

Реализация: реальный стек и контроль безопасности

n8n + Doppler: автоматизация доступа

n8n позволяет строить workflow, где выдача токенов и их отзыв полностью автоматизированы. Doppler хранит секреты, а workflow реагирует на события (например, удаление сотрудника в системе HR) и отзывает все связанные ключи.


// n8n workflow: отзыв доступа через Doppler API
const axios = require("axios");
const dopplerApi = "https://api.doppler.com/v3/configs/config/secrets";
const revokeKey = async (service, key) => {
  await axios.delete(`${dopplerApi}/${service}/${key}`, {
    headers: { "Authorization": `Bearer ${process.env.DOPPLER_TOKEN}` }
  });
};
// Использование в workflow
revokeKey("supabase", "SERVICE_ROLE_TOKEN");

Аудит: централизованное логирование в Postgres

Все ключевые операции (создание подключения, запуск агентского workflow, выдача токена) пишутся в таблицу audit_event:


CREATE TABLE audit_event (
  id SERIAL PRIMARY KEY,
  event_type TEXT,
  actor TEXT,
  service TEXT,
  timestamp TIMESTAMPTZ DEFAULT now(),
  metadata JSONB
);
-- Пример записи события
INSERT INTO audit_event (event_type, actor, service, metadata)
VALUES ('token_revoked', 'n8n-admin', 'Supabase', '{"reason": "user offboarding"}');

Статический анализ: semgrep и bandit

Перед выкладкой новых агентов провожу статический анализ кода на типовые уязвимости. По данным OWASP (2023, https://owasp.org/www-project-top-ten/), неправильное управление секретами входит в топ-3 угроз. Semgrep и bandit находят утечки токенов или неправильное использование переменных окружения ещё на этапе CI.


# Пример запуска bandit для Python-агента
bandit -r ./agent_code/
# Semgrep для поиска утечек в JS/TS
semgrep --config auto ./src/

Частые ошибки и как их избегать

  • Секреты, hardcoded в коде агента. Решение: Doppler + переменные окружения, контроль через semgrep.
  • Отсутствие единого журнала аудита. Решение: централизованная таблица в Postgres, автоматический экспорт логов из всех сервисов.
  • Ручная выдача/отзыв доступа. Решение: n8n workflow, триггерованный событиями из HR/IT систем.
  • Разные схемы авторизации для каждого сервиса. Решение: OAuth2 proxy или единая SSO, где возможно.

FAQ

Можно ли обойтись без централизованного аудита, если агентов мало?

Возможно, если у вас 1-2 агента и команда до 5 человек. Но с ростом нагрузки и требований по безопасности аудит становится обязательным.

Как автоматизировать отзыв доступа при увольнении сотрудника?

Интегрируйте n8n с HR-системой (например, через webhook), чтобы workflow автоматически отзывал все ключи и токены уволенного пользователя.

Можно ли хранить audit-логи только в Supabase?

Можно, если Supabase — основной storage. Но для гибкости лучше вынести логи в отдельную схему Postgres с резервным экспортом.

Какие инструменты статического анализа реально находят утечки секретов?

Semgrep (для JS/TS/Python) и bandit (для Python) показывают хорошие результаты. Для поиска ключей в git-репозитории используйте gitleaks.

Сколько времени занимает внедрение единой точки доступа?

Для команды до 10 человек первый MVP можно собрать за 2-3 дня, если стек уже на n8n + Doppler + Postgres.

В каком сервисе вашей инфраструктуры чаще всего проваливается аудит доступа — orchestration, база или внешние API? Поделитесь опытом. Я провожу бесплатный 30-минутный аудит стека для команд DACH, кто строит AI в регулируемых сегментах. Напишите в LinkedIn или телегу @ger_dennis_ai.

Ready to build?

Turn your process into an AI system

Fixed price. Production quality. DACH B2B focus.

Start a project → ← All articles