#MCP authorization 체크리스트: OAuth, scope, 승인, 로그

이 글은 MCP authorization 검토용 초안 worksheet입니다. 실제 OAuth 구현, 운영 보안, 컴플라이언스, 개인정보 보호, 침해 방지, 고객 데이터 처리 안전성, 자동화 성과를 증명하지 않습니다. 실제 계정·고객 데이터·쓰기 권한 연결 전에는 별도 보안 검토와 샌드박스 테스트가 필요합니다.

#바로 답변

MCP authorization 체크리스트는 “MCP 도구가 누구 권한으로, 어떤 scope를 받아, 어떤 데이터에 접근하고, 어떤 작업을 실행하며, 누가 승인·철회·rollback을 책임지는가”를 연결 전에 기록하는 검토표입니다.

실제 데이터나 쓰기 가능한 시스템에 MCP workflow를 연결하기 전, 최소한 authorization boundary, requested scope, exposed tool, human approval gate, allowed log field, redaction rule, revoke path, rollback owner를 적어야 합니다.

이 worksheet를 작성해도 OAuth가 구현됐다는 뜻은 아닙니다. production readiness, security, compliance, privacy, breach prevention, saved hours, conversion, ranking, traffic, leads, revenue를 증명하지도 않습니다. 목적은 credential과 민감 데이터가 workflow에 들어가기 전에 권한 경계, 승인, 로그 제한을 빠짐없이 기록하는 것입니다.

#오늘 확인한 공식 소스

SourceURLFinal URLChecked dateOwnerSupported claim familyClaim limit
MCP authorization tutorialhttps://modelcontextprotocol.io/docs/tutorials/security/authorizationhttps://modelcontextprotocol.io/docs/tutorials/security/authorization2026-06-05Model Context ProtocolMCP authorization 개념과 검토 질문 구성.이 문서나 독자 환경에 OAuth가 구현됐다는 증거 아님.
MCP security best practiceshttps://modelcontextprotocol.io/docs/tutorials/security/security_best_practiceshttps://modelcontextprotocol.io/docs/tutorials/security/security_best_practices2026-06-05Model Context Protocolsecurity/privacy 관련 주의점, consent, redaction 검토 항목.secure-by-default, compliance, privacy, breach-prevention 보장 아님.
MCP latest authorization spechttps://modelcontextprotocol.io/specification/latest/basic/authorizationhttps://modelcontextprotocol.io/specification/2025-11-25/basic/authorization2026-06-05Model Context Protocolauthorization spec-level reference.implementation proof 아님. 배포별 local review와 test 필요.
MCP latest transports spechttps://modelcontextprotocol.io/specification/latest/basic/transportshttps://modelcontextprotocol.io/specification/2025-11-25/basic/transports2026-06-05Model Context Protocolauthorization boundary를 볼 때 필요한 transport context.setup guide, runtime evidence, deployment proof, security certification 아님.

#1분 판단 기준

질문연결 전 안전한 답
누가 승인했나요?user, service owner, admin 중 승인 주체와 날짜가 기록돼야 합니다.
어떤 scope가 필요한가요?scope 문자열, 목적, 최소 권한 이유가 있어야 합니다.
어떤 tool이 노출되나요?read, write, delete, external send, account mutation 중 어디인지 분류해야 합니다.
어떤 데이터에 닿나요?public, internal, sensitive, regulated, customer data 여부를 분리해야 합니다.
사람 승인이 필요한가요?write, send, delete, sensitive-read는 승인 gate를 먼저 정해야 합니다.
로그에 무엇이 남나요?tool name, timestamp, approval ID처럼 최소 field만 허용해야 합니다.
어떻게 철회하나요?revoke owner, rollback path, test date가 있어야 합니다.

한 줄로 줄이면 이렇습니다. “읽기 전용 sandbox tool인가, 아니면 실제 계정에 쓰기·전송·삭제·민감정보 접근을 할 수 있는 tool인가?” 두 번째라면 approval, redaction, rollback을 먼저 적어야 합니다.

#OAuth와 scope boundary 표

OAuth와 scope 검토는 기술 용어를 운영 질문으로 바꿔야 합니다. 핵심 질문은 “누가 이 tool에 무엇을 하도록 허용했고, 어떤 resource에 대해서만 허용되며, 누가 철회할 수 있는가?”입니다.

Review itemOperator questionRecord before live useBoundary
OAuth grant어떤 user, service, admin이 access를 승인했나요?approver, date, environment, consent contextgrant record만으로 security proof가 되지 않습니다.
Requested scope정확히 어떤 permission이 필요한가요?scope string, reason, minimum required accessbroad scope는 더 강한 승인 없이는 normal 처리하지 않습니다.
Audience / resourcetoken을 받아야 하는 server나 API는 어디인가요?resource server, tenant/environment, data classtoken 하나가 모든 API에 맞는다고 가정하지 않습니다.
Token lifetimeaccess가 얼마나 오래 지속되나요?expiry, refresh behavior, rotation ownerraw token이나 Authorization header를 log에 남기지 않습니다.
Revocation path누가 access를 제거할 수 있나요?revoke owner, rollback path, test daterevoke plan은 production 의존 전 test가 필요합니다.
Human approval어떤 action이 명시적 승인 대상인가요?trigger, approver role, approval recordapproval gate는 ambiguity를 줄이지만 safe outcome을 보장하지 않습니다.

#Tool permission 표

아래 표는 실제 connector 존재 증거가 아닙니다. 실제 CRM, email, Slack, Discord, customer-data workflow가 연결돼 있다는 뜻도 아닙니다. live account 연결 전 권한표를 어떻게 써야 하는지 보여주는 placeholder입니다.

ToolData touchedCapabilityApproval requirementAllowed log fieldsRedaction ruleRollback owner
`search_docs`선택된 public 또는 internal document indexreadpublic sandbox는 no, private docs는 yestool name, timestamp, collection labelshared log에 raw private document text 금지workspace owner
`create_ticket`issue trackerwriteticket 생성 전 yesticket title summary, tool name, statuscustomer identifier, token, private incident detail 금지ops owner
`send_email`email accountexternal send매번 yesrecipient domain class, approval ID, send statusfull email body, private address, token, auth header 금지account owner
`update_crm`CRM recordwrite/account mutation매번 yesrecord type, field group, approval IDcustomer name, email, phone, raw note, account ID 금지revenue ops owner
`delete_file`storage workspacedestructive actiondefault blockedblocked action, requester, reasonprivate customer/employee data가 들어간 path 금지system owner

#사람 승인 gate

다음 MCP action은 실제 사용 전 명시적 사람 승인을 기본값으로 둡니다.

  • 외부 시스템에 쓰기.
  • 메시지, 이메일, notification 발송.
  • sensitive, private, regulated, customer data 읽기.
  • account, permission, billing setting, CRM field, ticket, file 변경.
  • 삭제, 철회, overwrite, publish, submit, expose처럼 되돌리기 어렵거나 외부에 보이는 작업.

Approval screen이나 approval log에는 tool name, intended action, data class, expected result, reversibility, rollback owner, undo 가능 여부가 보여야 합니다. 이 정보는 review control입니다. certification이 아닙니다.

#Log와 redaction 체크리스트

log를 켜기 전 아래 항목을 막습니다.

  • API key, OAuth token, cookie, refresh token, raw Authorization header, webhook secret.
  • customer name, email, phone number, account ID, private workspace name, private document text.
  • full tool input/output dump 기본 저장.
  • raw OAuth response, token exchange, secret material이 들어간 prompt, connector payload.
  • “secure by default”, “compliance-ready”, “privacy-safe”, “customer-data safe” 같은 검증 없는 표현.
  • 실제 secret처럼 보일 수 있는 예시값. 필요한 경우 `sk_test_xxx`, `customer_example`, `workspace_demo` 같은 dummy value만 사용합니다.

#연결 전 decision worksheet

```text MCP authorization review worksheet

Workflow / server: Reviewer: Review date: Environment: sandbox / staging / production candidate Review status: sandbox / staging / production candidate

1) Authorization boundary

  • OAuth grant owner:
  • Requested scopes:
  • Scope justification:
  • Audience / resource server:
  • Data class touched:
  • Token lifetime / refresh behavior:
  • Revoke owner:
  • Rollback path:

2) Tool capability

  • Tool name:
  • Read/write/delete/external-send capability:
  • External systems touched:
  • Sensitive or customer data touched:
  • Human approval required? yes/no + trigger:
  • Blocked actions:

3) Logs and redaction

  • Allowed log fields:
  • Fields never logged:
  • Redaction rule:
  • Log retention owner:
  • Example placeholder values only:

4) Decision

  • Allow in sandbox / allow with approval / block:
  • Reason:
  • Next review date:
  • Reviewer signoff:

```

#이 worksheet가 증명하지 않는 것

Claim area이 worksheet가 도울 수 있는 것여전히 증명되지 않는 것
Authorizationgrant, scope, approval, log, revoke owner를 기록.OAuth가 production에서 올바르게 구현됨.
Tool safetywrite, send, delete, sensitive-read action에 review gate 설정.connector가 실패, leak, misuse 없이 동작함.
Logslive use 전 redaction rule 문서화.log가 compliant, private, breach-proof임.
Production readinessreview question 정리.runtime reliability, saved time, conversion, ranking, traffic, leads, revenue, compliance.

#NO_GO production/security claims

이 페이지에서는 아래처럼 말하지 않습니다.

  • 이 site가 customer system용 production MCP를 운영한다.
  • 실제 customer system에 OAuth가 구현됐다.
  • MCP는 secure by default다.
  • 이 체크리스트가 security, compliance, privacy, breach prevention, safe data handling, audit readiness를 보장한다.
  • 이 worksheet 때문에 live connector, external credential, customer-data workflow, account automation, saved-hours result, conversion result, ranking result, traffic result, lead result, revenue result가 존재한다.
  • setup command, connector JSON, credential flow, implementation walkthrough가 여기 있다. 그런 내용은 별도 test와 QA approval이 필요합니다.

#FAQ/schema parity note

Schema target은 `Article` primary입니다. `FAQPage`는 아래 질문과 답변이 body copy에 보이기 때문에 후보입니다. FAQ markup은 아래 visible answer보다 강한 claim을 포함하면 안 됩니다.

#CTA caveat

MCP authorization review worksheet는 운영자가 tool permission, approval gate, log redaction을 실제 데이터 처리 전 기록하도록 돕는 자료입니다. runtime success, saved hours, security, compliance, privacy, conversion, ranking, traffic, leads, revenue를 증명하지 않습니다.

#FAQ

#MCP는 기본적으로 안전한가요?

아니요. MCP는 connection과 tool 개념을 제공합니다. 하지만 authorization boundary, tool permission, token handling, human approval, log rule은 workflow마다 별도로 검토해야 합니다.

#이 체크리스트가 OAuth 구현을 증명하나요?

아니요. 이 글은 review worksheet입니다. grant, scope, audience, token lifetime, revocation 질문을 정리할 수는 있지만 implementation evidence가 아닙니다.

#쓰기 가능한 tool은 사람 승인이 필요한가요?

네. external send, record update, account mutation, destructive action, sensitive-data access는 live use 전 human approval과 rollback owner를 먼저 기록해야 합니다.

#로그에 raw tool input과 output을 남겨도 되나요?

기본값은 아니요. log는 secret, token, PII, customer identifier, private document text, raw OAuth response, connector payload를 저장하지 않는 기준으로 설계해야 합니다. 별도 security review가 승인한 최소 field만 남기는 방식으로 제한합니다.