Skip to main content
Glama
haisamar

AgentGuard MCP

by haisamar

AgentGuard

Безопасность идентификации для ИИ-агентов

AgentGuard — это уровень авторизации с учётом идентичности для автономных ИИ-агентов.

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

Живой продукт:
https://agentguard-eight.vercel.app

Бэкенд авторизации MCP:
https://github.com/haisamar/agentguard-mcp


Проблема

ИИ-агенты всё чаще подключаются к реальным системам:

  • CRM

  • финансовые инструменты

  • платформы поддержки

  • внутренние API

  • базы данных

  • MCP-серверы

Но подключение агента к инструменту порождает вопрос безопасности:

Тот факт, что агент может пройти аутентификацию, означает ли, что ему следует разрешить делать всё, что поддерживает инструмент?

Обычно нет.

Торговому агенту может понадобиться:

read CRM accounts
update opportunities
inspect support context

но он не должен автоматически иметь возможность:

issue refunds
export customer data
modify security settings

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

AgentGuard демонстрирует, как идентичность, авторизация, контекстная политика и контроль со стороны человека могут быть объединены вокруг выполнения ИИ-агента.


Что делает AgentGuard

AgentGuard разделяет авторизацию на несколько границ безопасности:

AI Agent
   ↓
Machine Identity
   ↓
OAuth Scope Authorization
   ↓
Contextual Policy
   ↓
Human Approval if Required
   ↓
Controlled Execution
   ↓
Audit Trail

Аутентификация сама по себе не означает неограниченные полномочия.


Живая демонстрация

Публичную демонстрацию можно изучить без аутентификации:

https://agentguard-eight.vercel.app/demo

Она содержит три реальных сценария сохранённой авторизации.


Related MCP server: Oakallow MCP Server

Сценарий 1 — Одобрено человеком

Финансовый агент запрашивает возврат $750.

Finance Agent
      ↓
Authenticated machine identity
      ↓
finance:refund scope verified
      ↓
Refund exceeds $500 autonomous threshold
      ↓
APPROVAL_REQUIRED
      ↓
Authenticated human administrator approves
      ↓
Finance Agent executes approved refund
      ↓
ALLOW

Конечное состояние:

EXECUTED

Сценарий 2 — Отклонено человеком

Тот же финансовый агент запрашивает ещё один возврат $750.

У агента есть правильное разрешение OAuth, поэтому запрос проходит проверку области.

Однако контекстная политика требует одобрения человека.

Finance Agent
      ↓
finance:refund ✓
      ↓
Refund > $500
      ↓
APPROVAL_REQUIRED
      ↓
Human Administrator
      ↓
DENY
      ↓
Finance Agent attempts execution
      ↓
DENY

Конечное состояние:

DENIED

Это демонстрирует, что:

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


Сценарий 3 — Блокировка по области

Торговый агент пытается оформить возврат.

Его идентичность содержит:

crm:read
crm:write
support:read

но защищённый инструмент требует:

finance:refund

AgentGuard немедленно блокирует запрос.

Sales Agent
      ↓
Authenticated
      ↓
Missing finance:refund
      ↓
DENY

Контекстная политика не оценивается.

Рассмотрение человеком не достигается.

Запрос отклоняется на границе авторизации с наименьшими привилегиями.


Архитектура

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

flowchart LR
    AGENT["AI Agent<br/>Sales / Finance"]
    AUTH0M["Auth0<br/>Machine Identity"]
    TOKEN["OAuth Access Token<br/>Scoped Permissions"]
    MCP["AgentGuard MCP<br/>Protected Tools"]
    SCOPE{"Scope<br/>Authorized?"}
    POLICY{"Contextual<br/>Policy"}
    APPROVAL["Approval Request<br/>Persisted"]
    AUTH0H["Auth0<br/>Human Identity"]
    HUMAN{"Human<br/>Decision"}
    EXEC["Controlled<br/>Execution"]
    BLOCK["Execution<br/>Blocked"]
    DB[("Supabase<br/>Approvals + Audit")]

    AGENT --> AUTH0M
    AUTH0M --> TOKEN
    TOKEN --> MCP
    MCP --> SCOPE

    SCOPE -->|"Missing scope"| BLOCK
    SCOPE -->|"Authorized"| POLICY

    POLICY -->|"Low risk"| EXEC
    POLICY -->|"Forbidden"| BLOCK
    POLICY -->|"Sensitive"| APPROVAL

    APPROVAL --> DB
    APPROVAL --> AUTH0H
    AUTH0H --> HUMAN

    HUMAN -->|"Approve"| EXEC
    HUMAN -->|"Deny"| BLOCK

    EXEC --> DB
    BLOCK --> DB

Модель идентичности

AgentGuard намеренно разделяет машинные идентичности и человеческие идентичности.

Машинные идентичности

Каждая среда выполнения агента получает отдельную идентичность Auth0 Machine-to-Machine.

Демонстрация содержит три среды выполнения.

Идентичность

Роль

Области OAuth

Торговый агент

Операции по доходам

crm:read, crm:write, support:read

Финансовый агент

Финансовые операции

crm:read, finance:read, finance:refund

Среда администрирования

Администрирование безопасности

agent:manage

Это предотвращает совместное использование несколькими агентами одного широко привилегированного учётного данного.


Человеческая идентичность

Конфиденциальные решения рассматриваются через отдельно аутентифицированного пользователя Auth0.

Человек-администратор не является той же идентичностью, что и запрашивающая машина.

Пример:

Requested by
Finance Agent
Machine Identity

Reviewed by
Human Administrator
Human Identity

Это создаёт чёткое разделение между:

machine authority

и:

human approval authority

Модель авторизации

AgentGuard использует многоуровневую авторизацию.

1. Аутентификация

Auth0 устанавливает личность вызывающего агента.

MCP-сервер получает токен доступа OAuth, содержащий машинную идентичность.


2. Авторизация по областям OAuth

Каждый защищённый MCP-инструмент объявляет разрешение, необходимое для его вызова.

Пример:

issue_refund
requires
finance:refund

Если у агента нет необходимой области:

DENY

Никакой оценки политики или эскалации человеку не требуется.


3. Контекстная политика

Прохождение проверки области OAuth не гарантирует автоматическое выполнение.

AgentGuard оценивает контекст запрошенного действия.

Текущие демонстрационные правила включают:

Refund <= $500
→ ALLOW

Refund > $500
→ APPROVAL_REQUIRED

Customer data export
→ APPROVAL_REQUIRED

Customer deletion
→ DENY

Это разделяет:

Can this identity request this type of operation?

от:

Should this exact operation execute autonomously?

4. Авторизация с участием человека

Конфиденциальные операции приостанавливаются и сохраняются.

Защищённая панель администратора показывает ожидающий запрос.

Аутентифицированный человек может затем выбрать:

Approve

или:

Deny

Решение сохраняется и добавляется в журнал аудита безопасности.


5. Выполнение, привязанное к одобрению

Одобрение человека не выполняет действие напрямую.

Первоначальная машинная идентичность возвращается и запрашивает выполнение.

Затем AgentGuard проверяет:

Does the approval exist?

Is it APPROVED?

Does the approval belong to this agent?

Does it match this action?

Has it already been executed?

Только после этого выполнение может продолжиться.


6. Защита от повторного воспроизведения

Успешно выполненные одобрения переходят в состояние:

EXECUTED

Повторная попытка выполнить то же одобрение блокируется.

EXECUTED
      ↓
second execution attempt
      ↓
DENY

Попытка повторного воспроизведения регистрируется как событие безопасности.


Консоль администратора

Защищённая панель доступна по адресу:

/dashboard

Для неё требуется аутентификация Auth0.

Консоль администратора предоставляет:

  • инвентаризацию машинных идентичностей

  • выданные области OAuth

  • контекст аутентифицированного оператора-человека

  • ожидающие одобрения

  • элементы управления одобрением / отклонением

  • обозреватель трассировки авторизации

  • ленту активности безопасности

  • детальный просмотр событий аудита

  • историю одобрений

  • визуализацию машинной и человеческой идентичности

Необработанная идентичность и контекст аудита остаются за аутентификацией.


Публичная демонстрация

Публичная демонстрация существует отдельно по адресу:

/demo

Она намеренно доступна только для чтения.

Прежде чем данные попадут в браузер, из них удаляется конфиденциальная информация безопасности.

Публичная демонстрация не раскрывает:

Auth0 subject IDs
machine client IDs
administrator email addresses
OAuth access tokens
Supabase credentials
raw audit metadata
private approval identifiers

Публичный интерфейс получает только очищенные данные сценариев.


Обозреватель трассировки авторизации

AgentGuard включает интерактивный обозреватель трассировки, который реконструирует сохранённые сценарии безопасности.

Пользователи могут переключаться между:

Human Approved
Human Denied
Scope Blocked

Каждая трассировка визуализирует:

01 Agent Identity

02 Scope Check

03 Contextual Policy

04 Human Review

05 Execution

Это делает жизненный цикл авторизации понятным без необходимости доступа к MCP Inspector, панели Auth0 или базе данных.


Активность безопасности

Каждое важное решение об авторизации записывается как событие аудита.

Примеры решений включают:

ALLOW
DENY
APPROVAL_REQUIRED
APPROVED

Выбор события открывает подробную панель безопасности, содержащую такую информацию, как:

Identity
Identity Type
Decision
Action
Required Scope
Reason
Approval Reference
Timestamp
Event ID
Security Metadata

Пример сбоя авторизации:

Sales Agent

Action
issue_refund

Decision
DENY

Required Scope
finance:refund

Granted Scopes
crm:read
crm:write
support:read

Missing Scope
finance:refund

Security Event
authorization_failure

Жизненный цикл одобрения

Конфиденциальные действия представлены сохранёнными записями одобрения.

Доступные состояния:

PENDING
APPROVED
DENIED
EXECUTED

Успешный поток:

PENDING
   ↓
APPROVED
   ↓
EXECUTED

Отклонённый поток:

PENDING
   ↓
DENIED

AgentGuard также разделяет:

reviewed_by

от:

approved_by

чтобы отклонённый запрос мог корректно представлять:

status      = DENIED
reviewed_by = Human Administrator
approved_by = null

Технологии

AgentGuard создан с использованием:

Идентичность и авторизация

Auth0
OAuth 2.0
Machine-to-Machine Applications
Human Authentication
Scoped Access Tokens

Интерфейс агента

Model Context Protocol
FastMCP

Бэкенд

Python
Starlette
Uvicorn

Приложение

Next.js 16
React
TypeScript
Tailwind CSS

Хранение данных

Supabase
PostgreSQL
Row Level Security

Развёртывание

Vercel
GitHub

Структура репозитория

agentguard/
│
├── src/
│   ├── app/
│   │   ├── dashboard/
│   │   │   ├── ApprovalButtons.tsx
│   │   │   ├── SecurityActivity.tsx
│   │   │   ├── TraceExplorer.tsx
│   │   │   ├── actions.ts
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   │
│   │   ├── demo/
│   │   │   ├── PublicTraceExplorer.tsx
│   │   │   └── page.tsx
│   │   │
│   │   └── page.tsx
│   │
│   ├── lib/
│   │   ├── agentguard-data.ts
│   │   ├── auth0.ts
│   │   └── public-demo-data.ts
│   │
│   └── proxy.ts
│
├── package.json
└── README.md

Сервер авторизации MCP на Python поддерживается отдельно:

https://github.com/haisamar/agentguard-mcp


Бэкенд-сервер MCP

Компаньон-бэкенд реализует:

  • проверку токенов доступа Auth0

  • метаданные OAuth защищённых ресурсов

  • авторизацию инструментов MCP

  • принудительное применение требуемых областей

  • оценку контекстной политики

  • создание одобрений

  • принудительное одобрение человеком

  • выполнение, привязанное к одобрению

  • защиту от повторного воспроизведения

  • сохранение в Supabase

  • журналирование аудита безопасности

Репозиторий бэкенда:

https://github.com/haisamar/agentguard-mcp


MCP-инструменты

Текущий прототип безопасности включает:

search_accounts
issue_refund
list_pending_approvals
approve_action
execute_approved_refund

Пример:

Finance Agent
finance:refund
      ↓
issue_refund($100)
      ↓
ALLOW

против:

Finance Agent
finance:refund
      ↓
issue_refund($750)
      ↓
APPROVAL_REQUIRED

против:

Sales Agent
no finance:refund
      ↓
issue_refund($750)
      ↓
DENY

Безопасность базы данных

Записи одобрений и аудита хранятся в Supabase/PostgreSQL.

Безопасность на уровне строк включена в базовых таблицах.

Для конфиденциальных записей AgentGuard намеренно не определены публичные политики браузера.

Серверные компоненты используют защищённые переменные окружения.

Секретный ключ Supabase никогда не передаётся в клиентский JavaScript.

Публичная демонстрационная информация очищается на сервере перед передачей в интерактивные клиентские компоненты.


Локальная разработка

Требования

Node.js
Auth0 tenant
Supabase project
AgentGuard MCP backend

Клонируйте:

git clone https://github.com/haisamar/agentguard.git
cd agentguard

Установите:

npm install

Создайте:

.env.local

с вашей собственной конфигурацией окружения.

Примеры переменных:

SUPABASE_URL=
SUPABASE_SECRET_KEY=

AUTH0_DOMAIN=
AUTH0_CLIENT_ID=
AUTH0_CLIENT_SECRET=
AUTH0_SECRET=

APP_BASE_URL=http://localhost:3000

AGENTGUARD_ADMIN_EMAIL=

Никогда не коммитьте .env.local.

Запустите:

npm run dev

Затем откройте:

http://localhost:3000

Модель маршрутов

/
Public product page

/demo
Public sanitized security demo

/dashboard
Auth0-protected administrator console

Такое разделение позволяет проекту оставаться легко проверяемым в качестве портфолио, не раскрывая привилегированный административный функционал.


Продакшн

Фронтенд развёрнут на Vercel:

https://agentguard-eight.vercel.app

Продакшн-аутентификация использует Auth0 Regular Web Application с явными продакшн-URL обратного вызова, выхода и источника.

Секреты хранятся как переменные окружения Vercel и не коммитятся в Git.


Продемонстрированные границы безопасности

AgentGuard демонстрирует несколько концепций безопасности идентичности в одной системе:

Аутентификация ≠ Авторизация

Аутентифицированному агенту всё равно может быть отказано.

Наименьшие привилегии

Агенты получают только те области, которые требуются их роли.

Контекстно-зависимая авторизация

Авторизация может зависеть от деталей действия, а не только от вызывающего.

Разделение обязанностей

Машина может запросить действие, а человек независимо его одобрить.

Контроль с участием человека

Автономное выполнение может останавливаться на определённых границах риска.

Выполнение, привязанное к одобрению

Одобрение связано с запрашивающей идентичностью и действием.

Защита от повторного воспроизведения

Ранее выполненные одобрения не могут быть использованы повторно.

Аудируемость

Решения об авторизации сохраняются с контекстом идентичности и решения.

Разделение публичного и частного

Зрители портфолио могут изучать очищенные сценарии без доступа к административным данным.


Что я хотел исследовать

AgentGuard был создан для исследования вопроса:

Как выглядит безопасность идентичности, когда пользователь не всегда человек?

Традиционная безопасность приложений часто предполагает, что люди проходят аутентификацию, а затем напрямую взаимодействуют с системами.

ИИ-агенты меняют эту модель.

Автономные среды выполнения могут:

call APIs
use tools
modify records
trigger workflows
take financial actions

Это делает идентичность и авторизацию всё более важными на уровне агентов.

AgentGuard исследует, как знакомые концепции IAM, такие как:

machine identity
OAuth scopes
least privilege
separation of duties
human approval
auditability

могут применяться к выполнению ИИ-агентов.


Текущие рамки

AgentGuard — это прототип портфолио по безопасности, а не продакшн-продукт IAM.

Некоторые намеренные ограничения включают:

  • контекстные политики в настоящее время определены в коде

  • машинные идентичности сопоставлены с демонстрационными ролями

  • авторизация человека-администратора в настоящее время использует список разрешений на уровне приложения

  • управление политиками ещё не имеет собственной плоскости управления

  • записи аудита в базе данных не являются криптографически неизменяемыми

  • производственная распределённая блокировка выходит за рамки прототипа

  • развёртывание бэкенда MCP предназначено для контролируемого тестирования

  • срок действия одобрения в настоящее время не реализован

Эти ограничения задокументированы намеренно, а не скрыты.


Возможные расширения

Будущие версии могли бы исследовать:

Auth0 role-based administration
policy-as-code
policy versioning
agent identity registry
workload identity federation
delegated authorization
resource-level authorization
organization isolation
approval expiration
time-bound privileges
step-up authentication
signed audit events
SIEM integration
policy simulation
risk scoring
dynamic authorization
production MCP deployment

Связанный репозиторий

AgentGuard MCP

Сервер авторизации на Python, механизм политик, принудительное одобрение и сохранение аудита:

https://github.com/haisamar/agentguard-mcp


Живой проект

AgentGuard

https://agentguard-eight.vercel.app

Интерактивная демонстрация

https://agentguard-eight.vercel.app/demo

Консоль администратора

https://agentguard-eight.vercel.app/dashboard

Требуется аутентификация.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A governance and control layer for MCP tools that manages tool requests as intents through policy-based approval, queuing, or blocking. It enables secure human oversight and audit trails for consequential agent actions across platforms like Claude Desktop and Cursor.
    1
    MIT No Attribution
  • A
    license
    Not graded
    quality
    B
    maintenance
    Runtime permission, approval, and audit governance for AI agent tool execution, enabling human oversight of risky actions via an MCP server.
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server that provides a security gateway for AI agents, enforcing allow/confirm/deny policies on tool calls and requiring human approval for risky operations, with full audit logging.
  • F
    license
    Not graded
    quality
    C
    maintenance
    A protected Model Context Protocol server that gives AI agents distinct machine identities, enforces least-privilege OAuth permissions, applies contextual authorization policies, and pauses sensitive actions for human approval.

View all related MCP servers

Related MCP Connectors

  • Runtime permission, approval, and audit layer for AI agent tool execution.

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

  • See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/haisamar/agentguard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server