Summary
Как AnythingMCP управляет пользователями, контролем доступа на основе ролей (RBAC) и разрешениями для каждого инструмента на соединителях MCP — и почему это невозможно с серверами MCP только на CLI и рискованно на хостинговых SaaS-шлюзах.
Скрытая проблема большинства настроек MCP
Протокол контекста модели открыл чистую полосу для AI-агентов для общения с реальными системами. Первая волна серверов MCP поставляется как CLI бинарники: установи на ноутбук разработчика, укажи Claude Desktop на него, готово. Это работает для одного мощного пользователя.
Это не работает для предприятия.
В момент, когда более одного человека внутри компании нуждается в MCP, сразу возникают три вопроса управления:
- Кто может использовать какой соединитель?
- Что может делать каждый пользователь после подключения (читать? писать? удалять?)
- Где находится журнал аудита?
Сервера MCP на основе CLI отвечают "все с бинарником" / "всё, что может API" / "stdout, исчезнет завтра". Для регулируемого бизнеса это жесткая остановка.
Это разрыв, который AnythingMCP создан закрыть.
Что означает управление в контексте MCP
В классическом SaaS управление означает пользователи, группы, роли, разрешения и журнал аудита. Те же примитивы применимы к MCP, но они получают одно дополнительное измерение: инструмент.
Сервер MCP предоставляет список инструментов AI-клиенту. Каждый инструмент — это отдельная возможность — list_invoices, create_quote, delete_account. Без контроля доступа на уровне инструмента предоставление "соединителя CRM" пользователю означает предоставление каждого инструмента, который открывает соединитель. Это эквивалентно предоставлению стажеру root SSH, потому что им нужно tail журнал.
AnythingMCP рассматривает четыре уровня как первоклассные:
| Уровень | Вопрос | Пример |
|---|---|---|
| Пользователь | Кто делает запрос? | mario.rossi@acme.com |
| Роль | Какой доступ у них есть? | developer, viewer, finance |
| Соединитель | Какую интегрированную систему? | Salesforce CRM, SAP ERP, Postgres |
| Инструмент | Какой конкретный инструмент MCP внутри? | list_accounts (чтение), delete_account (выключено) |
Каждый вызов проверяется по всем четырем уровням, затем записывается в журнал.
Модель управления AnythingMCP
Пользователи и SSO
Ты можешь создавать пользователей вручную из панели управления или — и это то, что на самом деле делают корпоративные клиенты — подключить твой существующий поставщик идентификации:
- SAML 2.0 для Okta, Azure AD, OneLogin, Ping, Auth0, Keycloak
- SCIM 2.0 для автоматического предоставления и отзыва (когда кто-то покидает компанию, их доступ к MCP исчезает вместе с их учетной записью AD, а не через три недели, когда операционная служба до этого доберется)
- Сопоставление группы → роли: группа AD
eng-platformавтоматически становится рольюdeveloperв AnythingMCP
Нет отдельного пароля для изменения, нет списка теневых пользователей, который нужно поддерживать в актуальном состоянии.
Роли
Роль — это именованный набор разрешений. AnythingMCP поставляется с разумными значениями по умолчанию — admin, developer, viewer — и позволяет тебе определять свои собственные.
Определение роли выглядит концептуально так:
role: finance
description: Финансовая команда — читать счета повсюду, публиковать в DATEV
connectors:
- slug: datev
tools:
list_clients: read
list_invoices: read
create_booking: write
delete_booking: off
- slug: weclapp
tools:
list_invoices: read
list_orders: read
- slug: sap-erp
tools:
"*": off # явно запрещено
Дикий символ "*" имеет значение: когда ты добавляешь новый инструмент к соединителю SAP позже, роль финансов автоматически наследует выключено — закрытие вместо открытия.
Доступ по соединителю
Наиболее распространенный корпоративный шаблон: разделение соединителей по границам команд.
- Отдел продаж видит CRM.
- Финансовый отдел видит ERP и бухгалтерию.
- Инженеры видят производственные базы данных (только для чтения).
- Служба поддержки видит систему тикетов.
AI-агент каждой команды — Claude, ChatGPT, Copilot, не имеет значения — видит только инструменты, разрешенные их ролью. Продавец, который просит ChatGPT "удалить запись клиента", получает чистый отказ от шлюза, а не ошибку 500 от SAP после того, как действие уже было выполнено наполовину.
Разрешения на уровне инструмента
Это уровень детализации, который серверы CLI не могут обеспечить.
Один соединитель MCP для Salesforce может открывать более 30 инструментов: list_accounts, get_opportunity, create_opportunity, update_opportunity, delete_opportunity, list_leads, … Для каждого AnythingMCP поддерживает три режима:
- read — инструмент доступен и возвращает данные, но изменения отфильтровываются
- write — инструмент полностью доступен
- off — инструмент полностью скрыт от агента (он даже не появляется в ответе MCP
tools/list)
"Скрытый" — это важный момент. Модель не может быть взломана для вызова инструмента, о котором она не знает. Сокращая каталог инструментов по ролям, ты уменьшаешь поверхность атаки до минимума, который действительно нужен каждому пользователю.
Журнал аудита
Каждый вызов инструмента записывает строку: кто, когда, какой инструмент, какой соединитель, с какими аргументами, что было возвращено (или какая ошибка). Журнал хранится в твоей PostgreSQL — не в нашем облаке, не в S3 третьей стороны — и доступен для запросов, как любая другая таблица.
Для регулируемых отраслей (банковское дело, здравоохранение, государственный сектор) это то, что делает MCP вообще пригодным для использования. Ты можешь ответить "читал ли кто-нибудь запись пациента 1234 в прошлом квартале" одним SQL-запросом.
Почему это невозможно с серверами MCP только на CLI
Экосистема MCP полна одноцелевых серверов CLI — mcp-server-postgres, mcp-server-github и т.д. Они отличны для личного использования. Они структурно неспособны обеспечить корпоративное управление по четырем причинам:
-
Нет концепции пользователя. Бинарник CLI работает как пользователь ОС, который его вызвал. Нет "Марио" против "Анны" — есть только
whoami. Два человека, использующие одну и ту же установку Claude Desktop, делят одну и ту же идентичность MCP по умолчанию. -
Нет контроля на уровне инструмента. Если CLI открывает
query_database, каждый пользователь с бинарником может вызывать его с любым SQL. Ты не можешь ограничить его толькоSELECTили конкретными таблицами, не форкнув бинарник. -
Нет центрального аудита. Каждый бинарник ведет журнал в свой собственный stdout. Нет места, чтобы спросить "покажи мне каждый вызов MCP, сделанный компанией на прошлой неделе".
-
Нет отзыва доступа. Когда кто-то уходит, тебе нужно отследить каждый ноутбук с установленным бинарником и удалить учетные данные. На практике никто этого не делает.
Это не ошибки в серверах CLI — это присуще архитектуре. Бинарник, работающий на машине разработчика, не имеет концепции организационной идентичности.
Почему хостинговые SaaS-шлюзы имеют противоположную проблему
Другой очевидный ответ — "используй хостинговый SaaS-шлюз MCP". Это решает проблему управления, но вводит более серьезную: твои производственные учетные данные теперь находятся у третьей стороны.
Для немецкой GmbH или регулируемого американского субъекта это обычно не срабатывает:
- Соответствие — GDPR, BDSG, HIPAA, SOX усложняют (или запрещают) передачу учетных данных сервисной учетной записи третьей стороне
- Радиус поражения — если SaaS будет взломан, все подключенные производственные системы клиентов будут под угрозой сразу
- Зависимость от поставщика — учетные данные, журналы аудита, определения ролей — все это живет в системе, которую ты не контролируешь
AnythingMCP разработан для самохостинга. Шлюз работает в твоём VPC, твоём кластере Kubernetes, твоём сервере Hetzner, твоём ноутбуке — где угодно. Учетные данные никогда не покидают твою периметру. Журнал аудита хранится в твоей базе данных. Политики управления версионируются в твоём репозитории git, если ты хочешь.
Ты получаешь управление хостингового шлюза с уровнем доверия самохостируемого бинарника.
Почему это важно именно для предприятий
Три шаблона, которые мы видим постоянно у корпоративных покупателей:
Шаблон 1 — ворота проверки безопасности
Пилотный проект начинается в ИТ или инновациях. В момент, когда проект переходит в производство, начинается проверка безопасности и задаются вопросы:
- Можем ли мы отозвать доступ для конкретного пользователя?
- Можем ли мы доказать, кто вызвал какой инструмент?
- Где хранятся учетные данные и кто может их расшифровать?
Сервера CLI не проходят ни один из этих тестов. AnythingMCP отвечает на каждый вопрос скриншотом из панели управления.
Шаблон 2 — ворота юридической/комплаенс проверки
Юридический отдел спрашивает: "Если регулятор вызывает нас по поводу решения, основанного на AI, можем ли мы предоставить след вызовов?"
Ответ должен быть "да", с отметками времени, идентичностью пользователя и полными аргументами инструмента. Журнал аудита AnythingMCP структурирован именно для этого — каждый вызов — это строка с отметкой времени, пользователем, соединителем, инструментом, аргументами, статусом ответа. Экспортировать его в формате CSV для юридических нужд — это одно строковое запрос.
Шаблон 3 — ворота межкомандного взаимодействия
Как только одна команда заставляет MCP работать, три другие команды хотят его. Без управления каждая команда либо:
- Получает свою собственную установку CLI (потеря центрального контроля)
- Делит одну установку без изоляции (ошибка одной команды ломает данные другой)
AnythingMCP позволяет одной инстанции безопасно обслуживать все команды — отдел продаж видит только CRM, финансовый отдел видит только ERP, инженеры видят только базу данных метрик. Каждый AI-клиент команды получает другой URL /mcp с собственным каталогом инструментов.
Практическая настройка, от начала до конца
Вот как выглядит типичный развертывание предприятия в AnythingMCP, шаг за шагом:
-
Разверни шлюз в твоей инфраструктуре (Docker, Helm, Railway, DigitalOcean — на твой выбор). Займет около 60 секунд.
-
Подключи SSO. Укажи Okta или Azure AD на конечную точку SAML шлюза. Сопоставьте твои группы AD с ролями AnythingMCP.
-
Добавь соединители. Из панели управления укажи AnythingMCP на твои API (URL OpenAPI, WSDL, строка подключения к базе данных). Он автоматически генерирует каталог инструментов MCP.
-
Определи роли. Для каждой роли выбери, какие соединители и какие инструменты они могут вызывать (чтение / запись / выключено). Дикие символы по умолчанию выключены, так что добавление нового инструмента позже никогда случайно не предоставляет доступ.
-
Распредели конечную точку MCP пользователям. Каждый клиент Claude / ChatGPT / Copilot пользователя получает один и тот же URL шлюза — AnythingMCP возвращает каталог инструментов в зависимости от роли аутентифицированного пользователя.
-
Мониторьте через журнал аудита. Каждый вызов хранится в твоей PostgreSQL; создай панель Metabase на его основе за один день.
TL;DR — почему AnythingMCP для управления
| Потребность | Серверы CLI MCP | Хостинговый SaaS шлюз | AnythingMCP (самохостируемый) |
|---|---|---|---|
| Пользователи + SSO | ❌ | ✅ | ✅ |
| Разрешения по соединителю | ❌ | ✅ | ✅ |
| Разрешения по инструменту | ❌ | частично | ✅ |
| Журнал аудита в твоей БД | ❌ | ❌ (их) | ✅ |
| Учетные данные никогда не покидают тебя | ✅ | ❌ | ✅ |
| Соответствующий требованиям | ❌ | ❌ для большинства | ✅ |
| Добавить новый инструмент → безопасное значение по умолчанию | ❌ | варьируется | ✅ (закрытие) |
| Работает с Claude / ChatGPT / Copilot | ✅ | ✅ | ✅ |
Если управление стоит на твоём AI-дорожной карте и самохостинг является обязательным — AnythingMCP это единственный вариант, который предоставляет тебе оба.
Начало работы
Ты можешь попробовать модель управления на AnythingMCP Cloud (7-дневная бесплатная пробная версия, без кредитной карты) или самохостить сборку с открытым исходным кодом с помощью одной команды. Оба поставляются с одним и тем же движком RBAC.
→ Начни бесплатно в Cloud → Самохостинг на GitHub → Поговори с командой о развертывании для предприятий
Это руководство помогло?