API VEGA

Oakallow MCP Server

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

Oakallow — это хостированный MCP-сервер. Он размещён между агентом и действиями, которые агент намерен выполнить, чтобы конкретное действие можно было проверить, потребовать утверждения со стороны человека при риске, авторизовать одноразовым подписанным токеном и зафиксировать в неизменяемом журнале аудита в момент исполнения.

Назначение этого коннектора

Oakallow внедряет контрольную точку управления в рабочий процесс, который может использовать другие коннекторы. Агент выполняет исследовательскую работу (например, ищет учётную запись через другой коннектор), формирует рекомендацию и вызывает Oakallow, чтобы запросить утверждение для действия. Человек-утверждающий затем принимает решение в панели Oakallow или в мобильном приложении, под принудительной многофакторной аутентификацией.

Коннектор выступает как запрашивающий и проходной (pass-through), а не как принимающий решение:

  • Он может перечислять ваши инструменты, проверять разрешения, запрашивать утверждения и выдавать одноразовые токены запуска после одобрения действия.

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

Стандартные инструменты

ИнструментНазначениеТолько чтение
list_my_toolsПеречисляет инструменты, доступные вошедшему в систему пользователю в указанной организации (аргумент org; см. ниже)да
check_permissionПроверить, разрешён ли вызов данного инструмента, потребовать утверждения или заблокировать (принимает аргумент org; см. ниже)да*
list_pending_approvalsПеречень запросов на утверждение, ожидающих решения человекада
check_approval_statusПроверить статус ожидающего утверждения по номеру ссылкида
  • check_permission возвращает только вердикт для чтения — он не создаёт утверждение или ссылку. (Утверждение и его REF-… создаются, когда вы вызываете ограниченный инструмент через oakallow.) По задумке у этого есть побочный эффект: проверка незарегистрированного инструмента автоматически создаёт у Oakallow черновую запись с ограниченным доступом для него (с консервативными настройками по умолчанию — fail-closed), чтобы итоговый вызов был управляемым и владелец мог обработать его в панели управления. Это сделано намеренно: неизвестный инструмент никогда не доверяется без явного контроля.

Выбор организации

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

check_permission и list_my_tools принимают необязательный аргумент org — внешний идентификатор организации (например, org_oak_…). Правило:

  • Одна организация в вашей учётной записи: пропустите org. Коннектор использует вашу единственную организацию.

  • Более одной организации: укажите org, назвав организацию, на которую нацелено действие. Если не указать её, вызов отклоняется с подсказкой, а не догадкой о том, какая организация будет выставлена к оплате.

Вы не просите коннектор перечислить ваши организации — такого инструмента нет. Вместо этого загрузите навык, ориентированный на конкретную организацию, из панели управления этой организации. Каждый навык организации имеет свой собственный id организации и сообщает агенту, какой org нужно передать. Устанавливайте по одному навыку на каждую организацию, в которой вы работаете; агент считывает соответствующий навык и передаёт правильный org при каждом вызове.

Коннектор авторизует переданный вами org в соответствии с вашей вошедшей идентичностью: вы можете работать только в той организации, в которой имеете право действовать (вы владелец/админ команды этой организации, или входите в группу одобрителей этой организации). Передача org, к которому у вас нет доступа, отклоняется — навык удобен, а не предоставляет доступ.

Ресурсы

Oakallow предоставляет два MCP-ресурса только для чтения. Это сигналы preflight, которые агент (или клиентский UI) может прочитать до направления выполнения через oakallow. Оба требуют область mcp:read, ни один не является вызовом инструмента и за них не взимается плата.

РесурсВозвращаетТолько чтение
oakallow://statusЖизнеспособность коннектора для текущей сессии: статус, конечная точка, версия сервера, версия протокола и выданные области доступа. Успешное чтение само по себе является доказательством валидности сессии. Не возвращает идентификацию аккаунта или PII.да
oakallow://creditsОпределяет, будет ли текущий управляемый вызов финансироваться организацией, к которой привязана эта сессия, чтобы агент мог быстро прекратить запрос на утверждение, которое не может быть оплачено.да

oakallow://credits ограничен идентификатором платёжной организации вызывающего и определяет её таким же образом, как и реальный вызов инструмента, поэтому результат can_fund: true действительно означает, что итоговое утверждение будет финансировано (включая резервы команды). Он возвращает только булево значение can_fund и имя организации и её внешний id. Навык намеренно не раскрывает балансы: суммы в долларах доступны только владельцу команды в панели управления, а не через коннектор. Если сессия относится к ни одной организации или к более чем одной, возвращается can_fund: false с причиной, а не догадкой, какая организация будет оплачена.

Подключение

Нет анонимного доступа. Учетная запись Oakallow — предпосылка для подключения, и конечная точка принимает два типа учётных данных: интерактивный OAuth 2.1 (PKCE) для клиента, управляемого человеком, или bearer-токен вида oak_agent_ для автономного агента (см. ниже раздел Автономные агенты).

Для пути OAuth, ориентированного на пользователя, добавьте https://api.oakallow.io/mcp в качестве настраиваемого коннектора в ваш MCP-клиент (Claude, Claude Desktop, Cowork, ChatGPT или любой MCP-хост на базе Streamable HTTP). Вы будете перенаправлены на вход в Oakallow и подтверждение запрошенных областей доступа:

  • mcp:read: перечислять инструменты, просматривать ожидающие утверждения, проверять разрешения, читать активность.
  • mcp:write: создавать запросы на утверждение и выдавать токены запуска.

С этим ничего не настраивается вручную: неавторизованный запрос вернёт 401 с заголовком WWW-Authenticate, указывающим на защищённые ресурсы авторизации по RFC 9728 (/.well-known/oauth-protected-resource), поэтому MCP-клиент, соответствующий спецификации, обнаружит сервер авторизации и автоматически выполнит OAuth-поток.

См. examples/ для конфигурации Claude Desktop и пошаговой записи OAuth-потока.

Автономные агенты (bearer-токен oak_agent_)

OAuth предполагает, что человек может выполнить интерактивный вход. Автономный агент, работающий самостоятельно, аутентифицируется на том же https://api.oakallow.io/mcp с заранее выданным bearer-токеном: Authorization: Bearer oak_agent_.... Конечная точка проверяет наличие bearer-токена oak_agent_ перед OAuth-провайдером, поэтому экран запроса согласия или интерактивный вход не требуются.

Идентичность агента привязана к одной организации, может отправлять и запрашивать разрешения, но никогда не утверждать; ограничена по скорости для каждого идентификатора и хранится только в виде SHA-256 хеша (сырой токен показывается только при создании). Создайте одного агента через страницу Accounts → Agents на панели (для владельца/администратора). Подробная модель доступна на oakallow.io/info/agents.

Навык

SKILL.md — это навык агента, который документирует, когда и как использовать инструменты Oakallow: запрос, утверждение, опрос и выполнение, как формулировать причины утверждения и что делать с verdict'ами allowed, requires_approval или blocked. Укажите ваш агент на этот навык, чтобы корректно управлять действиями инструментов.

Триггерные подсказки

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

Как работает управляемый вызов

  • Агент вызывает Oakallow со своими учётными данными.

  • Oakallow определяет правило разрешения для конкретного инструмента, тенанта и ресурса.

  • Если действие разрешено, Oakallow выдает одноразовый, подписанный HMAC-токен запуска.

  • Если требуется утверждение, создаётся запрос на утверждение и уведомляется человек. Вызов агента удерживается до решения по заявке или до её истечения.

  • Агент использует токен запуска для выполнения действия; Oakallow записывает неизменяемую строку аудита, фиксирующую результат.

Oakallow находится вне пути выполнения. Он управляет и фиксирует то, что было передано; он не запускает ваши инструменты и не принимает параметры инструментов сверх обезличенной по PII причине.

Лицензия

См. LICENSE.

История изменений

См. CHANGELOG.md.


© Islemonics Studios LLC. Патент находится на стадии регистрации.