tools/call через вашу
политику firewall, прежде чем он достигнет
реального сервера.
Эта страница покрывает одну эту задачу — подключение и настройку записи
сервера. О рантайм-поведении шлюза и вердиктах на каждый вызов см.
Справочник MCP; о более широкой картине
начните с Обзора безопасности MCP.
Регистрация — это действие консоли (маршруты
/api/workspace/firewall/* аутентифицируются вашим session/access-токеном,
а не relay-ключом sk-orca-…). Записи требуют роли Developer+; любой
участник может перечислять серверы.1. Как подключить MCP-сервер
Откройте Firewall → MCP Servers в консоли и добавьте сервер, либо вызовите workspace API напрямую. Регистрация несёт четыре значимые вещи:name
Уникально в рамках рабочего пространства. Становится префиксом
пространства имён
<server>.<tool>, так что дублирующееся имя в том же
рабочем пространстве отклоняется с HTTP 409.endpoint
URL вашего удалённого MCP-сервера. Оставьте пустым, чтобы
зарегистрировать встроенный внутрипроцессный сервер — так он станет
видимым и управляемым.
auth_mode
Как шлюз аутентифицируется на вашем сервере:
none, bearer,
oauth или basic.credentials
Специфичный для режима секрет. Хранится зашифрованным в покое и
маскируется при чтении — никогда не достигает модели или клиента.
enabled и полностью выбрасывается из шлюза в тот момент,
когда вы его отключаете — это выключатель, и учётные данные отключённого
сервера никогда не расшифровываются.
2. Один конкретный пример
Зарегистрируйте удалённый GitHub MCP-сервер с bearer-токеном. Это console-эквивалентный REST-вызов; имена полей — ровно то, что пишет форма.auth_mode:
bearer
bearer
{"token":"…"} — отправляется как bearer-токен на ваш сервер.oauth
oauth
{"access_token":"…"} — статический access-токен, который шлюз
отправляет как bearer-заголовок. Автоматический обмен
client-credentials пока не поддерживается; без хранимого access_token
зонд в режиме oauth завершается ошибкой, а не подключается
неаутентифицированным.basic
basic
{"username":"…","password":"…"}.none
none
Пустая строка. Учётные данные не прикрепляются.
3. Зондирование его здоровья
Прежде чем вы сможете писать правила firewall против инструментов сервера, вам нужно знать, что они достижимы и как называются. Зондируйте (probe) сервер — шлюз прогоняет рукопожатие MCPinitialize +
tools/list, используя расшифрованные учётные данные, записывает
достижимость и возвращает рекламируемые инструменты:
status оседает в записи сервера и управляет индикатором здоровья:
| status | Значение |
|---|---|
ok | Достижим; инструменты обслуживаются шлюзом. |
degraded | Достижим, но рукопожатие было частичным. |
down | Недостижим при последнем зонде; сервер пропускается. |
down остаётся в стороне, когда шлюз строит свой набор
инструментов, так что переходный сбой деградирует мягко вместо того, чтобы
ломать диспетч. Зонд возвращает свой результат независимо от исхода —
неудавшийся зонд возвращается как 200 с status: down и вычищенной
причиной, а не как ошибка транспорта.
Каждое изменение регистрации немедленно инвалидирует per-workspace кэш
инструментов шлюза, так что вновь подключённый, отключённый или
переснованный сервер вступает в силу на следующем подключении, а не после
окна кэша.
4. После подключения
Как только сервер зарегистрирован и зондируетсяok, его инструменты
управляются:
- Каждый вызов вычисляется. Каждый
tools/callпрогоняется через вашу политику firewall на поверхностиmcp, прежде чем достигнет вашего сервера. Стройте охват правил поtool_name_glob: github.*теперь, когда вы знаете имена инструментов. - Заблокируйте поверхность. По умолчанию запрещайте инструменты, которые вы явно не разрешили — см. список разрешённых MCP-инструментов.
- Управляйте тем, куда он достаёт. Напишите egress-правило, чтобы инструмент не мог обращаться к произвольным хостам.
- Следите за изменениями. Сервер, которому вы доверяли, может изменить свои определения инструментов задним числом; защита от rug-pull отмечает этот дрейф.
5. API-справочник
Все маршруты консоли ограничены рабочим пространством и аутентифицируются вашим session/access-токеном. Чтения списков открыты любому Member (секреты замаскированы); каждая запись требует Developer+.| Метод и путь | Роль | Назначение |
|---|---|---|
GET /api/workspace/firewall/mcp_servers | Member | Список серверов (секреты + эндпоинт замаскированы). |
GET /api/workspace/firewall/mcp_servers/:id | Member | Один сервер, замаскирован. |
POST /api/workspace/firewall/mcp_servers | Developer+ | Зарегистрировать сервер (409 при дублирующемся имени). |
PUT /api/workspace/firewall/mcp_servers | Developer+ | Обновить сервер (id в теле). |
DELETE /api/workspace/firewall/mcp_servers/:id | Developer+ | Soft-delete; освобождает имя. |
POST /api/workspace/firewall/mcp_servers/:id/probe | Developer+ | Зондировать достижимость + обнаружить инструменты. |
GET /api/v1/firewall/mcp_servers (только включённые серверы). О
том, как аутентифицировать эту сторону, см.
аутентификацию MCP-шлюза.
Зачем вообще подключаться через OrcaRouter? Чтобы было одно место,
которое видит каждый вызов инструмента — одно подключение, одна политика,
один аудируемый лог и учётные данные, внедряемые при диспетче, а не
разбросанные по конфигам агентов. Прочитайте
защиту ИИ-агентов и
угрозу отравления MCP-инструментов
о мотивации.
Связанное
Обзор безопасности MCP
Полная модель управления MCP, от начала до конца.
Firewall: MCP-серверы
Рантайм-поведение шлюза и вердикты на каждый вызов.
Аутентификация шлюза
Выпустите и ограничьте токен, с которым подключается ваш агент.
Чек-лист доверия
Всё, что нужно проверить, прежде чем доверять новому серверу.
