AgentGuard MCP
AgentGuard
AI 에이전트를 위한 아이덴티티 보안
AgentGuard는 자율 AI 에이전트를 위한 아이덴티티 인식 권한 부여 계층입니다.
각 에이전트에게 고유한 기계 아이덴티티를 부여하고, OAuth 스코프로 액세스를 제한하며, 민감한 작업이 실행되기 전에 상황별 정책을 평가하고, 자율 권한이 중단되어야 할 때 별도로 인증된 인간 승인 경계를 도입합니다.
라이브 제품:
https://agentguard-eight.vercel.app
MCP 권한 부여 백엔드:
https://github.com/haisamar/agentguard-mcp
문제
AI 에이전트는 점점 더 실제 시스템에 연결되고 있습니다.
CRM
금융 도구
지원 플랫폼
내부 API
데이터베이스
MCP 서버
그러나 에이전트를 도구에 연결하면 보안 질문이 생깁니다:
에이전트가 인증할 수 있다고 해서, 그 도구가 지원하는 모든 작업을 수행하도록 허용해야 할까요?
대개는 아닙니다.
영업 에이전트는 다음이 필요할 수 있습니다:
read CRM accounts
update opportunities
inspect support context하지만 다음을 자동으로 수행할 수 없어야 합니다:
issue refunds
export customer data
modify security settings그리고 합법적으로 환불 권한을 가진 금융 에이전트라도 높은 금액의 환불을 실행하기 전에 인간 승인이 필요할 수 있습니다.
AgentGuard는 아이덴티티, 권한 부여, 상황별 정책, 인간 통제가 AI 에이전트 실행을 중심으로 어떻게 계층화될 수 있는지 보여줍니다.
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는 기계 인증, 최소 권한 권한 부여, 상황별 위험 결정, 인간 승인을 분리함으로써, 인증된 AI 에이전트가 자동으로 무제한 권한을 받지 못하게 합니다.
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 스코프 |
영업 에이전트 | Revenue Operations |
|
금융 에이전트 | 재무 운영 |
|
관리자 런타임 | 보안 관리 |
|
이를 통해 여러 에이전트가 하나의 광범위한 권한을 가진 자격 증명을 공유히는 것을 방지합니다.
인간 아이덴티티
민감한 결정은 별도로 인증된 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재생 시도는 보안 이벤트로 기록됩니다.
관리자 콘솔
보호된 대시보드는 다음에서 사용할 수 있습니다:
/dashboardAuth0 인증이 필요합니다.
관리자 콘솔은 다음을 제공합니다:
기계 아이덴티티 인벤토리
부여된 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.mdPython MCP 권한 부여 서버는 별도로 유지됩니다:
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에 저장됩니다.
기본 테이블에는 Row Level Security가 활성화되어 있습니다.
민감한 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
프로덕션 인증은 호출, 로그아웃, 그리고 오리진 URL이 명시적으로 설정된 Auth0 Regular Web Application을 사용합니다.
시크릿은 Vercel 환경 변수로 저장되고 Git에 커밋되지 않습니다.
입증된 보안 경계
AgentGuard는 하나의 시스템에서 여러 아이덴티티 보안 개념을 보여줍니다:
인증 ≠ 권한
인증된 에이전트라도 거부될 수 있습니다.
최소 권한
Agent는 해당 역할에 필요한 스코프만 받습니다.
상황 인식 권한 부여
권한 부여는 호출자뿐 아니라 작업의 특성에 따라 달라질 수 있습니다.
직무 분리
기계가 작업을 요청하는 동안 인간은 이에 대해 독립적으로 승인할 수 있습니다.
Human-in-the-Loop 통제
자율 실행은 정의된 위험 경계에서 멈출 수 있습니다.
승인-바인딩 실행
승인은 요청한 아이덴티티와 작업에 묶여있습니다.
재생 방지
이전에 실행된 승인은 재사용될 수 없습니다.
감사 가능성
권한 부여 결정은 아이덴티티와 결정 컨텍스트와 함께 저장됩니다.
공개 / 비공개 분리
포트폴리오 열람자들은 관리 데이터로 접근 없이 안전한 처리된 시나리오를 살펴볼 수 있습니다.
내가 탐구하고 싶었던
AgentGuard는 다음 질문을 탐구하기 위해 제작되었습니다:
사용자가 항상 사람은 아닐 때 아이덴티티 보안은 어떤 모습일까요?
전통적인 응용 프로그램 보안은 보통 사람들이 인증한 후 시스템과 직접 상호작용한다고 가정합니다.
AI 에이전트가 그 모델을 바꿉니다.
자율 런타임은 다음을 수행할 수 있습니다:
call APIs
use tools
modify records
trigger workflows
take financial actions그렇기 때문에 아이덴티티와 권한 부여는 에이전트 계층에서 더욱 중요해집니다.
AgentGuard는 다음과 같은 익숙한 IAM 개념이:
machine identity
OAuth scopes
least privilege
separation of duties
human approval
auditabilityAI 에이전트 실행에 어떻게 적용될 수 있는지 탐구합니다.
현재 범위
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
인터랙티브 Demo
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