AgentGuard MCP
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:refundAgentGuard немедленно блокирует запрос.
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 |
Торговый агент | Операции по доходам |
|
Финансовый агент | Финансовые операции |
|
Среда администрирования | Администрирование безопасности |
|
Это предотвращает совместное использование несколькими агентами одного широко привилегированного учётного данного.
Человеческая идентичность
Конфиденциальные решения рассматриваются через отдельно аутентифицированного пользователя 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
↓
DENIEDAgentGuard также разделяет:
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Требуется аутентификация.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceA 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.1MIT No Attribution

Oakallow MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceRuntime permission, approval, and audit governance for AI agent tool execution, enabling human oversight of risky actions via an MCP server.1MIT- FlicenseNot gradedqualityCmaintenanceMCP 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.
- FlicenseNot gradedqualityCmaintenanceA 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.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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