Skip to main content
Glama
haisamar

AgentGuard MCP

by haisamar

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:refund

AgentGuard는 요청을 즉시 차단합니다.

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

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

Python 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
auditability

AI 에이전트 실행에 어떻게 적용될 수 있는지 탐구합니다.


현재 범위

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

인증이 필요합니다.

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