TL;DR
Cloudflare는 에이전트가 MCP를 통해 수행하는 쓰기 작업을 중앙에서 통제하기 위해 WriteGuard를 도입했고, 툴별 리스크 티어로 허용·귀속·차단을 결정한다. WriteGuard는 직원 신원을 유지하되 MCP 클라이언트와 세션 문맥을 붙여 에이전트 귀속을 기록하고, 민감값을 스크럽한 감사 이벤트를 비동기로 중앙 저장소로 보낸다. 이 방식은 여러 MCP 서버 전반에서 일관된 쓰기 정책과 쿼리 가능한 감사 추적을 가능하게 한다.
섹션별 상세
이미지 분석

다이어그램은 AI 에이전트와 MCP 클라이언트가 Cloudflare Access를 통해 포털로 연결되고, 요청이 WriteGuard를 거쳐 허용·수정·차단되는 흐름을 시각화한다. 허용되면 MCP 서버가 핸들러를 실행하고 결과가 분류되어 컨트롤 레이어로 반환되며, 감사 서비스는 민감 필드를 스크럽하고 중앙 감사 DB에 기록한다. 이 그림은 WriteGuard가 호출 전후 지점에서 정책 적용·귀속 삽입·비동기 감사 생성이라는 세 가지 역할을 수행한다는 구조적 근거를 보여준다.
아키텍처 다이어그램

대시보드는 총 호출 수 1,284,760건과 Critical 12,418건, Blocked 31,204건 같은 핵심 지표를 표시하며 시간에 따른 활동 증가를 선 그래프로 보여준다. 서버별 호출 분포와 리스크·결과 분포 막대가 있어 어떤 서버와 리스크 클래스에서 호출이 집중되는지 한눈에 파악할 수 있다. 이 화면은 WriteGuard가 대규모 에이전트 활동을 집계하고 리스크 기반 필터링으로 조사 가능하게 만든다는 운영적 증거를 제공한다.
내부 WriteGuard 대시보드 예시

스크린샷은 Joe Programmmerson라는 사용자의 메시지 블록과 'MCP Agent', 'Harness: OpenCode', 'Session' 같은 메타데이터를 보여주며, 에이전트 귀속이 노트에 어떻게 표기되는지 예시로 제시한다. 이 예시는 WriteGuard가 설정된 필드에 귀속 라벨을 삽입해 다운스트림 UI에서 에이전트 세션을 읽을 수 있도록 만든다는 구체적 구현 예를 제공한다. 또한 원문 내용과 연계해 귀속 정보가 문제 해결과 책임 추적에서 유용하다는 점을 가시적으로 뒷받침한다.
GitLab create_mr_note 호출 예시 스크린샷

감사 레코드는 create_mr_note 호출이 Contained Write로 분류되어 성공(success)으로 처리된 사례를 보여주며 서버, 툴, 사용자, 세션, 클라이언트 ID와 소요 시간(737ms)을 항목별로 나열한다. 하단의 인자(Arguments)는 'SCRUBBED'로 표시되어 민감 정보는 기록에서 제거된 채 구조적 메타데이터만 보존되는 점을 확인할 수 있다. 이 스냅샷은 비동기 감사 이벤트가 민감값을 스크럽해 중앙 DB에 안전하게 저장한다는 운영 원칙을 시각화한다.
감사 기록 Record #233320 예시

로그 브라우저는 gitlab-mcp-server-production에서 반복적으로 발생한 merge_mr 호출을 나열하며 각 항목에 Critical 리스크와 blocked 결과가 붙어 있는 것을 보여준다. 상단에는 '152 records found'와 같은 검색 결과 수가 표시되어 다수의 차단 시도가 기록되고 있음을 알 수 있다. 이 화면은 WriteGuard가 반복적·위험한 자동 호출을 포착해 중앙에서 차단 및 조사 가능하도록 하는 역할을 확인시킨다.
로그 브라우저에서 merge_mr 차단 항목
용어 해설
- Model Context Protocol(MCP)
- — MCP는 AI 에이전트와 외부 도구를 연결하는 표준 프로토콜로, 클라이언트가 툴 호출을 서버로 전달하면 서버가 핸들러를 통해 다운스트림 애플리케이션과 상호작용한다.
- 에이전트 귀속(Agent Attribution)
- — 에이전트 귀속은 사람이 아닌 에이전트가 수행한 쓰기 작업에 대해 어떤 세션과 클라이언트가 동작했는지 메타데이터로 연결하는 방식으로, 후속 조사와 UI 표시를 가능하게 한다.
- 리스크 티어(Risk Tier)
- — 리스크 티어는 각 툴의 위험도를 분류해 로깅·허용·차단 정책을 결정하는 레이블 체계로, READ_ONLY·MINIMAL_IMPACT·CONTAINED_WRITE·CRITICAL 같은 단계로 운영된다.
- Cloudflare Access
- — Cloudflare Access는 내부 MCP 서버 접근을 직원의 신원으로 인증·권한부여하는 계층으로, 에이전트는 그 직원의 권한 범위 내에서 행동한다.
코드 예제
const sendEmailTool = { tool: EmailMCP.sendEmailTool, writeGuard: { riskLevel: RiskLevel.CONTAINED_WRITE, enabled: true, labeling: { field: "body", supportedFormats: [ LabelFormat.PLAIN_TEXT, LabelFormat.HTML, ], }, }, };이 코드 조각은 MCP 툴에 WriteGuard 정책을 붙이는 예로서 특정 툴을 CONTAINED_WRITE로 분류하고 활성화한 뒤, 에이전트 귀속을 삽입할 필드와 지원 포맷을 지정한다. 해당 설정은 서버 코드 변경 없이 포털에서 동일한 정책을 적용할 수 있게 한다. TypeScript 환경의 internal MCP monorepo에서 구성하는 방식이다.
근거 모음
- WriteGuard는 CRITICAL 등급 툴에 대해 실행 전에 요청을 차단하고 차단 시도를 기록한다. — 글의 GitLab 사례에서 merge_mr를 CRITICAL로 분류하고 disabled로 설정해 WriteGuard가 핸들러 실행 전 차단한다고 기술한 단락과 차단 이벤트를 보여주는 대시보드 스크린샷.
- WriteGuard는 CONTAINED_WRITE 툴을 호출할 때 에이전트 귀속 정보를 구성된 필드 포맷으로 삽입하고 그 호출을 정상 실행시킨다. — create_mr_note 사례에서 WriteGuard가 구성된 note 필드에 에이전트 라벨을 추가한 뒤 툴 핸들러를 호출한다고 서술한 문단과 create_mr_note 스크린샷.
- 모든 호출은 성공·실패·차단으로 분류되어 민감값을 스크럽한 감사 이벤트로 중앙 감사 데이터베이스에 비동기 전송된다. — WriteGuard가 결과를 분류하고 비동기 감사 Worker로 스크럽된 이벤트를 전송한다는 기술적 설명과 내부 대시보드의 총합 통계 및 로그 브라우저 이미지.
기술
- MCP
- WriteGuard
- Cloudflare Access
- GitLab
- OpenCode
- TypeScript
활용 사례
- 에이전트가 MR에 코멘트를 남기도록 허용하면서 코멘트 필드에 귀속 라벨을 삽입하는 경우
- 중요한 병합 또는 배포 트리거는 사람 검증 없이 에이전트가 실행하지 못하도록 차단하는 경우
- 여러 MCP 서버 전반의 에이전트 활동을 중앙에서 쿼리하고 감사하는 경우
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.