KoreaDevKNOWLEDGE SHARING

콘텐츠 유형학습하기

AI SOFTWARE DEVELOPMENT · 04 / 10

MCP와 AI 시스템 연결

Agent마다 제각각 연결하던 문제를 host·client·server 계약으로 나누고 tools·resources·prompts와 보안을 설계합니다.

난이도
실무
구성
강의 8개 · 실습 2개 · 평가

CORE UNIT 1 / 1

MCP와 AI 시스템 연결

Agent마다 제각각 연결하던 문제를 host·client·server 계약으로 나누고 tools·resources·prompts와 보안을 설계합니다.

난이도
실무
구성
강의 8개 · 실습 2개 · 평가

도해·표 자료: 각 강의의 공식 1차 출처를 바탕으로 저자 구성. 원문과 검토일은 해당 강의 끝에서 확인합니다.

NEW HIRE ONBOARDING

첫 업무를 받는 순서로 시작합니다

중학교를 졸업하고 처음 IT 업무를 맡은 신입사원도 따라올 수 있도록, 어려운 정의보다 상황·할 일·증거·보고할 경계를 먼저 확인합니다.

  1. 01

    상황을 한 문장으로 읽기

    검색 tool 하나가 전체 문서 원문, HR 기록과 삭제 기능까지 같은 관리자 token으로 사용합니다.

  2. 02

    오늘 맡은 일

    MCP host·client·server의 역할과 신뢰 경계를 설명합니다.

  3. 03

    완료를 보여 주는 증거

    주입된 지시·권한 거부·빈 결과·schema 누락을 분리한 fixture로 후속 실행을 검사합니다.

  4. 04

    멈추고 선임에게 확인할 경계

    새 protocol layer의 version, server 신뢰와 생태계 공급망 관리가 필요합니다.

낯선 용어 먼저 풀기

MCP가 등장한 연결 문제
MCP는 모든 API를 하나로 합치는 것이 아니라 AI application과 context provider 사이의 통합 표면을 표준화합니다.
Host·client·server 신뢰 경계
Host는 사용자 경험과 정책을 소유하고 client 연결을 관리하며 server는 제한된 capability를 제공합니다.
Tools·resources·prompts
Primitive는 model 편의를 위한 이름이 아니라 읽기와 실행, 제공 주체의 책임을 분리하는 계약입니다.

이 과정의 질문

왜 바뀌었고, 무엇을 검증해야 하는가?

기술의 장점만 외우지 않고 그 장점이 성립하는 조건과 새 실패 경계를 함께 확인합니다.

OBSERVABLE OUTCOMES

학습을 마치면 할 수 있는 일

  1. MCP host·client·server의 역할과 신뢰 경계를 설명합니다.
  2. Tool·resource·prompt를 side effect와 소유권 기준으로 구분합니다.
  3. 인증·인가·사용자 동의·감사 기록이 있는 최소 권한 연결을 설계합니다.

PREREQUISITE CHECK

본문을 읽기 전에 확인할 세 가지

정답을 외우는 시험이 아닙니다. 질문을 먼저 생각한 뒤 해설을 열어 이번 과목에서 사용할 바탕 개념을 확인하십시오.

1API가 있는데 MCP가 왜 필요한가요?

API를 대체하기보다 AI host가 server의 기능을 발견하고 호출하는 공통 protocol과 lifecycle을 제공합니다. Server 내부는 여전히 기존 API를 사용할 수 있습니다.

2인증과 인가는 같은가요?

인증은 주체가 누구인지 확인하고, 인가는 그 주체가 특정 자원과 행동을 할 수 있는지 결정합니다.

3Tool, resource, prompt는 무엇이 다른가요?

Tool은 계산이나 side effect가 가능한 호출, resource는 읽을 context, prompt는 재사용 가능한 대화 template을 제공하는 primitive입니다.

TEXTBOOK GUIDE

개념의 배경부터 판단 기준까지 읽는 본문

IT를 처음 접하는 독자도 용어를 암기하지 않고 원인과 결과를 연결할 수 있도록 한 절씩 이어서 설명합니다.

CONCEPT FLOW

각 장은 이렇게 연결됩니다

각 장은 따로 외우는 단답이 아닙니다. 왼쪽에서 오른쪽으로 따라가며 앞 장의 개념이 다음 판단에 어떻게 쓰이는지 먼저 살펴보세요.

  1. 1장MCP가 등장한 연결 문제
  2. 2장Host·client·server 신뢰 경계
  3. 3장Tools·resources·prompts
  4. 4장Lifecycle·오류·재시도
  5. 5장인증·인가·동의·감사
  6. 6장연결 성공 뒤 capability 변경을 검증하기
  7. 7장다른 자원용 token을 전달하지 않기
  8. 8장Tool 응답의 자료와 지시를 구분하기
MCP와 AI 시스템 연결의 전체 지도입니다. 아래 장문 해설과 각 장을 읽다가 길을 잃으면 이 순서로 돌아오세요.
그림 4-1. MCP와 AI 시스템 연결의 개념 전개앞 장의 선택과 한계가 다음 장의 문제로 어떻게 이어지는지 보여 줍니다.
  1. 1
    MCP가 등장한 연결 문제

    MCP는 모든 API를 하나로 합치는 것이 아니라 AI application과 context provider 사이의 통합 표면을 표준화합니다.

  2. 2
    Host·client·server 신뢰 경계

    Host는 사용자 경험과 정책을 소유하고 client 연결을 관리하며 server는 제한된 capability를 제공합니다.

  3. 3
    Tools·resources·prompts

    Primitive는 model 편의를 위한 이름이 아니라 읽기와 실행, 제공 주체의 책임을 분리하는 계약입니다.

  4. 4
    Lifecycle·오류·재시도

    Protocol 연결 성공과 업무 행동 성공은 다른 상태이며 오류는 재시도 가능성을 명시해야 합니다.

  5. 5
    인증·인가·동의·감사

    AI 연결의 보안은 login 한 번이 아니라 사용자와 client, resource server 사이의 token audience와 행동별 권한을 제한하는 일입니다.

  6. 6
    연결 성공 뒤 capability 변경을 검증하기

    연결 상태와 업무에 필요한 tool 계약의 호환성은 별도로 확인합니다.

  7. 7
    다른 자원용 token을 전달하지 않기

    인증된 사용자라도 제시한 token이 현재 server용인지 별도로 검증해야 합니다.

  8. 8
    Tool 응답의 자료와 지시를 구분하기

    Tool 응답은 작업의 관찰값이며 system 정책을 새로 쓰는 권한이 아닙니다.

CONTROLLED EXPLANATION

재고 조회의 두 권한 경계

현재 상태: Token 수신

재고 조회의 두 권한 경계

올바른 수신 대상 검증 뒤에도 tenant와 객체 권한을 확인하는 교육용 흐름입니다.

수신 대상 확인불일치일치한 별도 fixture업무 권한 통과1Token 수신2대상 검증3실행 전 거절4업무 권한5제한 조회
  1. Token 수신

    자원 B용 token

  2. 대상 검증

    현재 server A와 대조

  3. 실행 전 거절

    잘못된 audience

  4. 업무 권한

    올바른 A용 token만 진입

  5. 제한 조회

    tenant·객체 범위 유지

1 → 2
수신 대상 확인
2 → 3
불일치
2 → 4
일치한 별도 fixture
4 → 5
업무 권한 통과

연결·서명·audience·객체 권한은 서로 대체할 수 없는 검사입니다.

CONCRETE CASES

과정 전체 선택 기준표

TABLE 4-1

과정 전체 선택 기준표

각 장의 기술을 이름이 아니라 작동 원리, 새 비용과 확인할 증거로 비교합니다.

4-1. MCP와 AI 시스템 연결의 설계 판단 기준
중심 메커니즘주의할 비용확인할 증거
1. MCP가 등장한 연결 문제공통 client-server protocol이 capability discovery와 invocation 형식을 재사용하게 합니다.새 protocol layer의 version, server 신뢰와 생태계 공급망 관리가 필요합니다.같은 기능의 domain API contract와 MCP exposure contract를 나란히 비교합니다.
2. Host·client·server 신뢰 경계Session negotiation이 지원 기능과 protocol version을 합의하고 구조화된 message를 교환합니다.연결이 많아지면 lifecycle, reconnect, timeout과 credential scope가 복잡해집니다.각 경계에서 누가 identity, consent, timeout과 audit를 소유하는지 표시합니다.
3. Tools·resources·prompts서로 다른 primitive가 discovery와 invocation, 사용자 제어 방식을 분리합니다.잘못 분류하면 읽기처럼 보이는 기능이 side effect를 만들거나 prompt가 암묵적으로 실행됩니다.각 capability를 읽기·계산·상태 변경으로 분류하고 state 변경에는 preview와 승인 정보를 추가합니다.
4. Lifecycle·오류·재시도Correlation ID와 구조화된 error가 transport와 domain failure를 분리합니다.재시도와 reconnect가 숨은 중복 행동 또는 오래된 session state를 만들 수 있습니다.응답 유실을 주입하고 같은 operation ID 조회로 중복 없이 결과를 복구합니다.
5. 인증·인가·동의·감사OAuth 기반 token과 per-call policy가 identity를 제한된 capability로 연결합니다.동의 피로, token leakage와 과도한 scope가 새 위험이 됩니다.다른 audience의 token, 만료 token과 scope 없는 호출이 거부되는지 contract test합니다.
6. 연결 성공 뒤 capability 변경을 검증하기발견한 capability를 version이 고정된 실제 요청·응답 계약에 대조합니다.Schema 변환에는 의미 매핑과 유지보수 비용이 있으며 이름 일치만으로 승인할 수 없습니다.필수 인자 변경·필수 출력 누락 fixture로 host가 잘못된 다음 단계를 막는지 검사합니다.
7. 다른 자원용 token을 전달하지 않기Token 수신 대상 검증과 업무 객체 권한 검사를 서로 다른 경계에서 수행합니다.서로 다른 자원의 credential을 분리해야 하므로 발급·만료·회전 운영이 추가됩니다.잘못된 audience와 다른 tenant 객체를 각각 테스트하고 upstream에 원본 token이 전달되지 않는지 확인합니다.
8. Tool 응답의 자료와 지시를 구분하기응답 schema·오류 분류와 후속 실행 policy를 분리해 자료가 권한으로 승격되지 않게 합니다.지나친 원문 로깅과 오류 평탄화가 각각 노출과 진단 손실을 만듭니다.주입된 지시·권한 거부·빈 결과·schema 누락을 분리한 fixture로 후속 실행을 검사합니다.

CHAPTER 1 / 8

MCP가 등장한 연결 문제

MCP는 모든 API를 하나로 합치는 것이 아니라 AI application과 context provider 사이의 통합 표면을 표준화합니다.

이 개념이 필요해진 배경

각 agent 제품이 file, database, SaaS마다 별도 connector를 만들면 인증, discovery, error와 업데이트 방식이 중복됩니다. MCP는 host가 server capability를 일관된 message와 lifecycle로 다루게 합니다.

Server는 기존 사내 API나 database 앞의 adapter가 될 수 있습니다. Domain API와 authorization이 사라지는 것이 아니며, protocol 호환만으로 data 의미와 업무 권한까지 같아지지는 않습니다.

그림 4-2. MCP가 등장한 연결 문제의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

MCP는 모든 API를 하나로 합치는 것이 아니라 AI application과 context provider 사이의 통합 표면을 표준화합니다.

작동 원리

공통 client-server protocol이 capability discovery와 invocation 형식을 재사용하게 합니다.

검증 증거

같은 기능의 domain API contract와 MCP exposure contract를 나란히 비교합니다.

구체적인 시스템에서 따라가기

AI host가 calendar, issue tracker와 file system을 각각 독자적인 plugin으로 연결하면 같은 discovery, schema, permission과 error 처리를 제품마다 다시 구현하게 됩니다. MCP는 이 연결에서 교환하는 message와 capability 표현을 공통화해 host와 server 조합을 늘리기 쉽게 만듭니다. 하지만 실제 일정 규칙이나 issue 권한은 여전히 각 domain service가 소유합니다.

따라서 MCP 도입의 성공 기준은 connector 수가 줄었다는 것만이 아닙니다. Server revision이 바뀌어도 host가 capability를 협상하고, 허용되지 않은 resource는 보이지 않으며, tool 실패가 사용자에게 복구 가능한 상태로 전달되어야 합니다. 기존 REST API와 queue를 server 내부에서 계속 쓰는 구조도 정상이며 protocol 경계와 domain 경계를 구분해야 합니다.

선택 기준과 실패 경계

새 protocol layer의 version, server 신뢰와 생태계 공급망 관리가 필요합니다.

피해야 할 오해: MCP가 REST, database와 API gateway를 모두 대체한다는 생각은 틀립니다.

직접 검증하기

같은 기능의 domain API contract와 MCP exposure contract를 나란히 비교합니다.

판정할 핵심공통 client-server protocol이 capability discovery와 invocation 형식을 재사용하게 합니다.

이 장을 정리하면

MCP는 모든 API를 하나로 합치는 것이 아니라 AI application과 context provider 사이의 통합 표면을 표준화합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Microsoft, 「TypeScript Handbook검토일 2026-08-28 · 적용 범위 공식 문서 최신판
  2. Python Software Foundation, 「asyncio — Asynchronous I/O검토일 2026-08-28 · 적용 범위 Python 3.14 문서
  3. The Go Authors, 「Effective Go검토일 2026-08-28 · 적용 범위 Go 공식 문서
  4. The Rust Project, 「What Is Ownership?검토일 2026-08-28 · 적용 범위 The Rust Programming Language

CHAPTER 2 / 8

Host·client·server 신뢰 경계

Host는 사용자 경험과 정책을 소유하고 client 연결을 관리하며 server는 제한된 capability를 제공합니다.

이 개념이 필요해진 배경

Host는 사용자의 요청, model, 승인 UI와 여러 client를 조정합니다. 각 client는 특정 server와 session을 유지하고 capability negotiation과 message transport를 담당합니다.

Server가 local process인지 remote service인지에 따라 network와 credential 위험이 달라집니다. Server가 보낸 설명과 metadata는 신뢰할 수 없는 입력으로 취급하고 host policy와 사용자 의도가 최종 실행을 통제해야 합니다.

그림 4-3. Host·client·server 신뢰 경계의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

Host는 사용자 경험과 정책을 소유하고 client 연결을 관리하며 server는 제한된 capability를 제공합니다.

작동 원리

Session negotiation이 지원 기능과 protocol version을 합의하고 구조화된 message를 교환합니다.

검증 증거

각 경계에서 누가 identity, consent, timeout과 audit를 소유하는지 표시합니다.

구체적인 시스템에서 따라가기

한 desktop host가 local file server와 remote CRM server에 연결될 때 두 server는 서로 다른 신뢰 수준을 가집니다. Local process도 설치 package가 변조될 수 있고, remote server는 network와 token leakage 위험이 있습니다. Host는 server가 보낸 tool 설명을 그대로 정책으로 믿지 않고 사용자가 허용한 target과 action을 다시 대조해야 합니다.

Client는 단순 network socket 이상의 상태를 관리합니다. 초기화된 protocol version, 지원 capability, outstanding request와 취소 신호를 session에 묶어야 합니다. 연결이 끊긴 뒤 새 session을 만들 때 이전 요청이 실제로 실행됐는지 모를 수 있으므로 상태 변경 tool은 server가 발급한 operation identity로 결과를 재조회할 수 있어야 합니다.

선택 기준과 실패 경계

연결이 많아지면 lifecycle, reconnect, timeout과 credential scope가 복잡해집니다.

피해야 할 오해: Server가 tool을 광고하면 host가 자동으로 안전하게 실행해도 된다는 생각은 틀립니다.

직접 검증하기

각 경계에서 누가 identity, consent, timeout과 audit를 소유하는지 표시합니다.

판정할 핵심Session negotiation이 지원 기능과 protocol version을 합의하고 구조화된 message를 교환합니다.

이 장을 정리하면

Host는 사용자 경험과 정책을 소유하고 client 연결을 관리하며 server는 제한된 capability를 제공합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Architecture검토일 2026-08-28 · 적용 범위 MCP 2025-06-18

CHAPTER 3 / 8

Tools·resources·prompts

Primitive는 model 편의를 위한 이름이 아니라 읽기와 실행, 제공 주체의 책임을 분리하는 계약입니다.

이 개념이 필요해진 배경

Resource는 문서나 schema처럼 application이 읽어 context로 선택할 내용을 URI와 metadata로 제공합니다. Prompt는 사용자가 명시적으로 선택할 수 있는 대화 template이고 tool은 model이 호출을 제안할 수 있는 executable capability입니다.

Tool input schema는 parameter를 제한하지만 의미 권한을 보장하지 않습니다. deleteRecord의 record ID가 schema에 맞아도 현재 사용자가 지울 권한이 있는지는 server와 upstream system이 다시 확인해야 합니다.

그림 4-4. Tools·resources·prompts의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

Primitive는 model 편의를 위한 이름이 아니라 읽기와 실행, 제공 주체의 책임을 분리하는 계약입니다.

작동 원리

서로 다른 primitive가 discovery와 invocation, 사용자 제어 방식을 분리합니다.

검증 증거

각 capability를 읽기·계산·상태 변경으로 분류하고 state 변경에는 preview와 승인 정보를 추가합니다.

구체적인 시스템에서 따라가기

사내 규정 문서는 resource로 제공해 host가 필요한 부분을 선택하도록 할 수 있고, “주간 보고서 작성” 형식은 사용자가 고르는 prompt가 될 수 있습니다. 실제 ticket 생성은 tool입니다. 세 가지를 구분하면 읽을 정보와 실행할 행동, 사용자가 명시적으로 시작하는 template을 서로 다른 동의와 UI로 표현할 수 있습니다.

이름만으로 분류하면 위험합니다. `previewInvoice`가 호출 시 view counter나 임시 row를 만든다면 side effect가 있는 tool로 취급해야 합니다. Resource URI도 현재 사용자의 tenant와 permission을 확인해야 하고 prompt 안의 지시는 신뢰할 수 없는 외부 text를 포함할 수 있습니다. 각 primitive의 data source와 실행 효과를 contract test로 확인해야 합니다.

선택 기준과 실패 경계

잘못 분류하면 읽기처럼 보이는 기능이 side effect를 만들거나 prompt가 암묵적으로 실행됩니다.

피해야 할 오해: JSON schema가 유효하면 업무 authorization도 유효하다는 생각은 틀립니다.

직접 검증하기

각 capability를 읽기·계산·상태 변경으로 분류하고 state 변경에는 preview와 승인 정보를 추가합니다.

판정할 핵심서로 다른 primitive가 discovery와 invocation, 사용자 제어 방식을 분리합니다.

이 장을 정리하면

Primitive는 model 편의를 위한 이름이 아니라 읽기와 실행, 제공 주체의 책임을 분리하는 계약입니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Architecture검토일 2026-08-28 · 적용 범위 MCP 2025-06-18
  2. Model Context Protocol, 「Server Features검토일 2026-08-28 · 적용 범위 MCP 2025-06-18

CHAPTER 4 / 8

Lifecycle·오류·재시도

Protocol 연결 성공과 업무 행동 성공은 다른 상태이며 오류는 재시도 가능성을 명시해야 합니다.

이 개념이 필요해진 배경

Initialization에서 version과 capability를 합의한 뒤 request ID로 응답을 연결합니다. Transport disconnect, protocol error, tool domain error를 구분해야 host가 reconnect할지 입력을 고칠지 사용자에게 물을지 결정할 수 있습니다.

상태 변경 tool을 timeout 뒤 무조건 재호출하면 첫 요청이 성공했지만 응답만 유실된 경우 중복 실행됩니다. Idempotency key, operation status query와 명확한 timeout budget이 복구 contract에 포함돼야 합니다.

그림 4-5. Lifecycle·오류·재시도의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

Protocol 연결 성공과 업무 행동 성공은 다른 상태이며 오류는 재시도 가능성을 명시해야 합니다.

작동 원리

Correlation ID와 구조화된 error가 transport와 domain failure를 분리합니다.

검증 증거

응답 유실을 주입하고 같은 operation ID 조회로 중복 없이 결과를 복구합니다.

구체적인 시스템에서 따라가기

오류는 transport가 끊긴 것인지, JSON message가 유효하지 않은지, tool input이 업무 규칙을 위반했는지에 따라 다음 행동이 달라집니다. 첫 경우에는 같은 session을 복구하거나 결과를 조회할 수 있고, 두 번째는 client와 server version을 확인해야 하며, 세 번째는 사용자가 입력을 고쳐야 합니다. 하나의 “실패” 문자열은 이 결정을 model의 추측에 맡깁니다.

특히 결제나 삭제처럼 상태를 바꾸는 요청은 timeout을 실패로 단정하면 안 됩니다. Server가 변경을 commit한 뒤 응답만 유실될 수 있기 때문입니다. Client가 만든 idempotency key를 같은 업무 operation에 재사용하고 status endpoint로 최종 결과를 확인하면 중복 실행 없이 불확실성을 해소할 수 있습니다.

선택 기준과 실패 경계

재시도와 reconnect가 숨은 중복 행동 또는 오래된 session state를 만들 수 있습니다.

피해야 할 오해: Timeout은 실행 실패를 의미하므로 같은 요청을 새로 보내면 된다는 생각은 틀립니다.

직접 검증하기

응답 유실을 주입하고 같은 operation ID 조회로 중복 없이 결과를 복구합니다.

판정할 핵심Correlation ID와 구조화된 error가 transport와 domain failure를 분리합니다.

이 장을 정리하면

Protocol 연결 성공과 업무 행동 성공은 다른 상태이며 오류는 재시도 가능성을 명시해야 합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Architecture검토일 2026-08-28 · 적용 범위 MCP 2025-06-18
  2. Model Context Protocol, 「Server Features검토일 2026-08-28 · 적용 범위 MCP 2025-06-18

CHAPTER 5 / 8

인증·인가·동의·감사

AI 연결의 보안은 login 한 번이 아니라 사용자와 client, resource server 사이의 token audience와 행동별 권한을 제한하는 일입니다.

이 개념이 필요해진 배경

Remote MCP authorization은 보호 자원 metadata와 authorization server를 발견하고 적절한 token을 얻는 흐름을 정의합니다. Token은 대상 server와 scope에 묶여야 하며 다른 downstream 서비스로 그대로 전달하는 token passthrough를 피해야 합니다.

사용자 동의 화면에는 tool 이름보다 실제 대상, 바뀌는 state와 데이터 전송 범위를 보여줘야 합니다. Server는 매 호출에서 subject와 scope를 확인하고 누가 어떤 revision의 tool을 어떤 입력으로 실행했는지 민감값을 마스킹해 audit합니다.

그림 4-6. 인증·인가·동의·감사의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

AI 연결의 보안은 login 한 번이 아니라 사용자와 client, resource server 사이의 token audience와 행동별 권한을 제한하는 일입니다.

작동 원리

OAuth 기반 token과 per-call policy가 identity를 제한된 capability로 연결합니다.

검증 증거

다른 audience의 token, 만료 token과 scope 없는 호출이 거부되는지 contract test합니다.

구체적인 시스템에서 따라가기

Token은 사용자의 모든 권한을 복사한 만능 열쇠가 아니라 특정 audience와 scope, 만료 시간을 가진 위임 증거여야 합니다. MCP server가 받은 token을 다른 service에 그대로 전달하면 원래 의도하지 않은 resource에서도 사용할 수 있습니다. Server는 필요한 downstream용 token을 별도 교환하고 각 호출에서 subject와 resource 관계를 다시 확인해야 합니다.

감사 기록에는 prompt 전체를 무조건 저장하기보다 누가, 어떤 client와 tool revision으로, 어느 대상에, 어떤 승인과 policy 결과를 거쳐, 어떤 상태 변화를 만들었는지 남깁니다. 민감한 입력은 hash나 비식별 식별자로 연결하고 원문 접근은 별도 통제합니다. 이 구조가 있어야 사고 때 행위를 재구성하면서 개인정보 보존 범위도 제한할 수 있습니다.

선택 기준과 실패 경계

동의 피로, token leakage와 과도한 scope가 새 위험이 됩니다.

피해야 할 오해: 인증된 client는 모든 tool을 실행해도 된다는 생각은 틀립니다.

직접 검증하기

다른 audience의 token, 만료 token과 scope 없는 호출이 거부되는지 contract test합니다.

판정할 핵심OAuth 기반 token과 per-call policy가 identity를 제한된 capability로 연결합니다.

이 장을 정리하면

AI 연결의 보안은 login 한 번이 아니라 사용자와 client, resource server 사이의 token audience와 행동별 권한을 제한하는 일입니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Authorization검토일 2026-08-28 · 적용 범위 MCP 2025-11-25

CHAPTER 6 / 8

연결 성공 뒤 capability 변경을 검증하기

연결 상태와 업무에 필요한 tool 계약의 호환성은 별도로 확인합니다.

이 개념이 필요해진 배경

MCP 연결이 열려 있어도 필요한 tool이 없거나 입력 schema가 달라졌으면 업무는 실행되지 않습니다. Host는 연결 성공을 전체 기능 승인으로 바꾸지 않고 발견한 capability와 업무가 요구하는 항목을 대조합니다.

Client와 server가 어떤 protocol revision을 사용하는지 기록하고 그 revision의 lifecycle과 capability 규칙을 적용합니다. 서로 다른 시점의 문서 예제를 섞으면 지원하지 않는 기능을 호출하거나 필요한 초기화를 생략할 수 있습니다.

Tool 이름이 같아도 인자 단위와 필수값, 반환 형식이 바뀌면 소비자의 계약은 달라집니다. 이름 목록만 비교하지 말고 실제 request fixture와 기대 response로 호환성을 확인합니다.

지원하지 않는 capability는 model이 비슷한 이름의 tool을 추측하게 하지 않습니다. Host는 해당 작업을 보류하거나 사전에 검증한 대체 경로로 보내고 어떤 기능이 빠졌는지 사용자에게 명시합니다.

그림 4-7. 연결 성공 뒤 capability 변경을 검증하기의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

연결 상태와 업무에 필요한 tool 계약의 호환성은 별도로 확인합니다.

작동 원리

발견한 capability를 version이 고정된 실제 요청·응답 계약에 대조합니다.

검증 증거

필수 인자 변경·필수 출력 누락 fixture로 host가 잘못된 다음 단계를 막는지 검사합니다.

구체적인 시스템에서 따라가기

가상의 재고 server는 조회 tool의 필수 인자를 productId에서 sku로 바꿨습니다. 연결과 목록 조회는 성공하지만 기존 client의 호출은 새 schema와 맞지 않습니다. 기존 client가 오래된 schema를 cache한 상태도 별도 조건으로 둡니다. Server의 목록만 최신이라고 해서 이미 시작한 실행이 새 계약을 알고 있다는 보장은 없습니다.

회귀 fixture는 이전 요청을 그대로 보내는 경우와 새 인자로 변환한 경우를 나눕니다. 변환이 필요하면 누가 어떤 규칙으로 ID를 매핑하는지 기록하고 단순 이름 치환으로 의미가 같다고 가정하지 않습니다. 상품 ID와 SKU가 일대일인지, variant별로 여러 값이 생기는지를 작은 표로 확인합니다. 변환이 불가능한 입력은 추측하지 않고 명시적 오류로 남겨 잘못된 상품 조회를 막습니다.

반환값에서 재고 수량이 빠졌을 때 빈 문자열이나 0으로 자동 대체하면 품절로 오판할 수 있습니다. 필수 field 누락을 contract failure로 보고 구매 결정 단계까지 전달하지 않습니다. 수량 0을 정상 반환하는 fixture도 함께 둡니다. 필드가 있는 0과 필드 자체의 부재를 구분해야 실제 품절과 계약 파손을 서로 다른 후속 행동으로 연결할 수 있습니다.

승인 기록에는 protocol revision, 발견한 tool schema, 변환기 version과 실제 fixture 결과를 함께 둡니다. Server 업데이트 뒤 이 묶음을 다시 실행해야 연결 여부만으로는 보이지 않는 파손을 찾습니다. 승인한 schema와 현재 발견한 schema가 다르면 재검토 이유를 남깁니다. 바뀐 항목이 선택적 추가인지 필수 의미 변경인지 대조해야 불필요한 전체 중단을 피할 수 있습니다.

선택 기준과 실패 경계

Schema 변환에는 의미 매핑과 유지보수 비용이 있으며 이름 일치만으로 승인할 수 없습니다.

피해야 할 오해: MCP 연결이 성공하면 모든 tool 사용도 호환된다는 생각은 틀립니다.

직접 검증하기

필수 인자 변경·필수 출력 누락 fixture로 host가 잘못된 다음 단계를 막는지 검사합니다.

판정할 핵심발견한 capability를 version이 고정된 실제 요청·응답 계약에 대조합니다.

이 장을 정리하면

연결 상태와 업무에 필요한 tool 계약의 호환성은 별도로 확인합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Architecture검토일 2026-08-28 · 적용 범위 MCP 2025-06-18
  2. Model Context Protocol, 「Server Features검토일 2026-08-28 · 적용 범위 MCP 2025-06-18

CHAPTER 7 / 8

다른 자원용 token을 전달하지 않기

인증된 사용자라도 제시한 token이 현재 server용인지 별도로 검증해야 합니다.

이 개념이 필요해진 배경

원격 MCP server가 받은 access token은 누구에게 발급됐는지뿐 아니라 어느 자원에 쓰도록 발급됐는지가 중요합니다. 다른 API용 token을 받아들이면 인증된 사용자라는 사실이 의도하지 않은 서비스 접근으로 확대됩니다.

MCP 2025-11-25 authorization 규격은 server가 자신을 위한 token인지 검증하도록 요구합니다. Client가 보내는 resource 식별과 server의 수신 대상 검증을 함께 확인하고 token 문자열을 그대로 로그에 남기지 않습니다.

MCP server가 뒤쪽 업무 API를 호출할 때 받은 token을 그대로 전달하는 방식은 피해야 합니다. 현재 규격은 token passthrough를 금지하며 뒤쪽 API에는 그 자원을 위해 별도로 발급된 credential 계약이 필요합니다.

Token의 대상이 맞아도 업무 권한은 아직 남습니다. 주문 조회 scope가 있는 사용자가 다른 tenant의 주문을 읽을 수 있는지는 업무 API와 정책이 판단해야 하며 OAuth 성공만으로 모든 row 접근이 허용되지 않습니다.

그림 4-8. 다른 자원용 token을 전달하지 않기의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

인증된 사용자라도 제시한 token이 현재 server용인지 별도로 검증해야 합니다.

작동 원리

Token 수신 대상 검증과 업무 객체 권한 검사를 서로 다른 경계에서 수행합니다.

검증 증거

잘못된 audience와 다른 tenant 객체를 각각 테스트하고 upstream에 원본 token이 전달되지 않는지 확인합니다.

구체적인 시스템에서 따라가기

교육용 fixture는 같은 사용자와 유효한 서명을 갖지만 다른 자원을 대상으로 한 token을 제공합니다. MCP server는 tool 실행 전에 이 token을 거절해야 하며 사용자 이름이 같다는 이유로 통과시키면 안 됩니다. 거절 뒤 원래 tool 함수가 호출되지 않았는지 확인합니다. 오류 status가 맞더라도 내부 조회를 먼저 수행했다면 접근 차단의 시점은 이미 늦었습니다.

다음 fixture는 올바른 자원용 token으로 다른 tenant의 주문 ID를 조회합니다. 첫 검사는 token 대상, 두 번째 검사는 업무 객체 소유권을 확인하므로 둘 중 하나만 통과해서는 조회 결과를 반환하지 않습니다. 두 fixture를 분리해야 audience 검사 하나로 모든 권한을 보장했다는 오판을 막습니다. 사용자, scope와 객체 소유권의 어느 값이 달라졌는지 증거에 표시합니다.

감사에는 거부 이유의 분류, 자원 식별자와 정책 revision을 남깁니다. 원본 token이나 주문 개인정보를 복사하지 않아도 어느 경계가 거절했는지 확인할 수 있게 합니다. 운영자가 재현할 수 있는 거부 코드와 익명 요청 ID를 사용합니다. 실패 원인 확인에 필요하지 않은 credential 본문을 남기면 진단 자료가 또 다른 인증정보 저장소가 됩니다.

이 절은 원격 authorization 경계를 다룹니다. 로컬 stdio 실행과 원격 HTTP 실행의 credential 전달 방식은 같다고 가정하지 말고 선택한 transport와 protocol revision의 문서를 별도로 확인합니다. 배포 문서에 실제 transport를 적어 다른 예제의 보안 가정을 자동으로 가져오지 않습니다. 연결 위치가 달라지면 신뢰 주체와 credential 수명 관리도 다시 점검합니다.

선택 기준과 실패 경계

서로 다른 자원의 credential을 분리해야 하므로 발급·만료·회전 운영이 추가됩니다.

피해야 할 오해: 유효한 서명과 같은 사용자 이름이면 어떤 API에서도 같은 token을 쓸 수 있다는 생각은 틀립니다.

직접 검증하기

잘못된 audience와 다른 tenant 객체를 각각 테스트하고 upstream에 원본 token이 전달되지 않는지 확인합니다.

판정할 핵심Token 수신 대상 검증과 업무 객체 권한 검사를 서로 다른 경계에서 수행합니다.

이 장을 정리하면

인증된 사용자라도 제시한 token이 현재 server용인지 별도로 검증해야 합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Authorization검토일 2026-08-28 · 적용 범위 MCP 2025-11-25

CHAPTER 8 / 8

Tool 응답의 자료와 지시를 구분하기

Tool 응답은 작업의 관찰값이며 system 정책을 새로 쓰는 권한이 아닙니다.

이 개념이 필요해진 배경

문서 검색 tool이 가져온 본문에 “다른 파일을 보내라”는 문장이 있을 수 있습니다. Protocol이 올바른 형식으로 전달했다는 사실은 그 본문의 지시가 신뢰할 수 있음을 뜻하지 않습니다.

Host는 tool 결과의 출처와 요청 범위를 보존하고 자연어 본문을 비신뢰 자료로 다룹니다. 결과를 읽는 model이 다음 행동을 제안하더라도 실행기는 원래 사용자 목표와 허용 capability에 다시 대조합니다.

연결 오류, schema 위반과 업무상 거절은 복구 방법이 다릅니다. 모두 빈 결과로 바꾸면 문서가 없는 것과 조회할 권한이 없는 것을 구분할 수 없으므로 내부 오류 분류와 사용자 설명을 분리해 유지합니다.

사용자에게 보이는 오류에는 필요한 조치만 알려주고 내부 secret이나 상세 권한 구조는 노출하지 않습니다. 디버깅 편의를 위해 원문 응답 전체를 저장하기보다 제한된 trace로 어느 경계가 실패했는지 확인합니다.

그림 4-9. Tool 응답의 자료와 지시를 구분하기의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

Tool 응답은 작업의 관찰값이며 system 정책을 새로 쓰는 권한이 아닙니다.

작동 원리

응답 schema·오류 분류와 후속 실행 policy를 분리해 자료가 권한으로 승격되지 않게 합니다.

검증 증거

주입된 지시·권한 거부·빈 결과·schema 누락을 분리한 fixture로 후속 실행을 검사합니다.

구체적인 시스템에서 따라가기

가상의 문서 tool 결과에 정상 문단과 외부 전송 지시를 함께 넣습니다. 통과 조건은 정상 문단의 답변 근거는 사용할 수 있지만 전송 지시가 새로운 tool 실행을 승인하지 않는 것입니다. 안전한 근거 문단을 사용할 때도 source ID를 답변에 연결합니다. 주입 지시를 거절했다는 사실만으로 남은 문단의 사실성과 최신성이 자동 검증되는 것은 아닙니다.

별도 fixture는 권한 거부를 반환하고 다른 fixture는 실제 검색 결과 0건을 반환합니다. 두 상태의 사용자 안내와 재시도 정책이 다르다는 것을 검사해야 오류를 숨기는 빈 배열 변환을 잡을 수 있습니다. 권한 거부에 자동으로 더 넓은 검색을 붙이지 않는지도 확인합니다. 접근할 수 없는 자료를 다른 tool로 찾으려는 행동은 같은 사용자 목표라도 별도 권한 검토가 필요합니다.

정상 응답의 필수 field를 제거해 host 검증에서 멈추는지도 봅니다. Model이 빠진 값을 자연스럽게 추측하면 오류를 읽기 좋은 문장으로 바꿨을 뿐 업무 계약은 복구되지 않았습니다. 정상 값을 담은 응답과 빈 문자열을 담은 응답을 함께 시험합니다. 속성 이름이 있다는 이유만으로 업무에 필요한 값이 채워졌다고 인정하지 않아야 형식 성공과 의미 실패를 구분합니다.

최종 trace는 요청한 tool, 검증된 결과 유형, 거부한 후속 행동과 사용자에게 전달한 상태를 연결합니다. 이 기록으로 연결 계층의 성공과 업무 판단의 실패를 동시에 설명할 수 있습니다. 정책 변경 뒤에는 이전 공격 fixture와 정상 문서 fixture를 같이 실행합니다. 거부율만 높아지고 정상 질문에 필요한 자료도 모두 막히면 도구 통합의 기능 조건은 충족되지 않습니다.

선택 기준과 실패 경계

지나친 원문 로깅과 오류 평탄화가 각각 노출과 진단 손실을 만듭니다.

피해야 할 오해: 공식 MCP 형식으로 전달된 본문은 모두 신뢰 지시라는 생각은 틀립니다.

직접 검증하기

주입된 지시·권한 거부·빈 결과·schema 누락을 분리한 fixture로 후속 실행을 검사합니다.

판정할 핵심응답 schema·오류 분류와 후속 실행 policy를 분리해 자료가 권한으로 승격되지 않게 합니다.

이 장을 정리하면

Tool 응답은 작업의 관찰값이며 system 정책을 새로 쓰는 권한이 아닙니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. Model Context Protocol, 「Architecture검토일 2026-08-28 · 적용 범위 MCP 2025-06-18
  2. Model Context Protocol, 「Server Features검토일 2026-08-28 · 적용 범위 MCP 2025-06-18
  3. Anthropic, 「Effective Context Engineering for AI Agents검토일 2026-08-28 · 적용 범위 공식 문서 최신판

INTERACTIVE LAB 1 / 2

실습 1 · 사내 검색 MCP Server의 권한 줄이기

검색 tool 하나가 전체 문서 원문, HR 기록과 삭제 기능까지 같은 관리자 token으로 사용합니다.

검색 요구를 만족하면서 침해 범위를 줄이는 설계를 고르세요.

답 선택

정답 A

A. 읽기 검색과 관리 tool을 분리하고 사용자 문서 권한을 query 전에 적용하며 token audience·scope와 audit를 제한합니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

B. Tool 설명에 “비밀 문서를 보지 마세요”라고 씁니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

C. 모든 직원에게 같은 관리자 token을 배포합니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

D. 검색 결과를 model이 알아서 숨기게 합니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

INTERACTIVE LAB 2 / 2

실습 2 · 연결은 됐지만 token 대상이 다른 경우

재고 MCP server에 다른 업무 API용 token이 도착했습니다. 서명은 유효하고 사용자도 맞지만 수신 대상은 재고 server가 아닙니다.

Tool 실행 전 필요한 판정을 고르십시오.

답 선택

정답 A

A. Token을 거절하고 올바른 자원용 authorization 경로를 사용합니다.사용자 인증과 token의 수신 대상 검증은 서로 다른 조건입니다.

B. 사용자가 같으므로 조회를 허용합니다.같은 주체라도 token을 다른 자원에 재사용할 수 있다는 뜻은 아닙니다.

C. 받은 token을 뒤쪽 API에 그대로 전달합니다.MCP authorization 규격의 token passthrough 금지와 자원 경계를 위반합니다.

D. Model에게 token이 안전한지 물어봅니다.수신 대상은 server가 검증할 계약이며 자연어 판단으로 대체하지 않습니다.

KEY TERMS

이번 단원 핵심 용어

MCP가 등장한 연결 문제
공통 client-server protocol이 capability discovery와 invocation 형식을 재사용하게 합니다.
Host·client·server 신뢰 경계
Session negotiation이 지원 기능과 protocol version을 합의하고 구조화된 message를 교환합니다.
Tools·resources·prompts
서로 다른 primitive가 discovery와 invocation, 사용자 제어 방식을 분리합니다.
Lifecycle·오류·재시도
Correlation ID와 구조화된 error가 transport와 domain failure를 분리합니다.
인증·인가·동의·감사
OAuth 기반 token과 per-call policy가 identity를 제한된 capability로 연결합니다.
연결 성공 뒤 capability 변경을 검증하기
발견한 capability를 version이 고정된 실제 요청·응답 계약에 대조합니다.
다른 자원용 token을 전달하지 않기
Token 수신 대상 검증과 업무 객체 권한 검사를 서로 다른 경계에서 수행합니다.
Tool 응답의 자료와 지시를 구분하기
응답 schema·오류 분류와 후속 실행 policy를 분리해 자료가 권한으로 승격되지 않게 합니다.

UNIT WORKBOOK

개념을 새로운 상황에 적용하는 문제와 기록지

기본 원리 확인에서 시작해 실제 업무 판단으로 확장합니다. 답을 제출하면 정답만이 아니라 모든 선택지가 맞거나 틀린 이유를 확인할 수 있습니다.

THREE-LEVEL ASSESSMENT

기본 원리에서 운영 판단까지

답을 제출하면 정답만이 아니라 모든 선택지가 맞거나 틀린 이유를 확인할 수 있습니다.

기본 문제 1

MCP host의 핵심 책임은 무엇인가요?

답 선택

정답 D

A. 모든 database row를 직접 저장하는 것입니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

B. 모든 server 구현 언어를 같게 만드는 것입니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

C. REST API를 폐기하는 것입니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

D. 사용자 의도·model·client 연결·승인과 보안 정책을 조정하는 것입니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

적용 문제 2

상태 변경 tool의 timeout 뒤 안전한 행동은 무엇인가요?

답 선택

정답 A

A. 같은 operation ID로 결과를 조회하고 idempotency contract에 따라 재시도합니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

B. 새 ID로 무한 재시도합니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

C. 성공했다고 가정하고 audit를 지웁니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

D. Tool schema를 제거합니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

종합 문제 3

Remote MCP 최소 권한을 검증할 증거는 무엇인가요?

답 선택

정답 B

A. Model이 안전하다고 설명했는지입니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

B. 다른 audience·부족한 scope·권한 없는 resource 호출이 server에서 거부되고 audit에 남는 test입니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

C. Login 화면의 색상입니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

D. Server 이름에 secure가 포함됐는지입니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

PRIMARY SOURCES

과정 참고문헌

장별 출처를 다시 모은 목록입니다. 본문의 설명과 저자 도해는 아래 원문을 직접 검토해 작성했습니다.

PERSONAL WORKSHEET

내 환경에 옮겨 적는 학습 기록지

입력 내용은 현재 브라우저 화면에만 머물며 저장하거나 외부로 전송하지 않습니다. 민감한 실제 정보 대신 범주와 가명을 사용하십시오.

OFFICIAL SOURCES

공식 자료에서 다시 확인하기

기술·호환성·모델 정보 검토 연월: 2026년 8월

LEARNING RECORD

본문·판단 활동·모든 해설을 확인했나요?

완료 기록은 이 브라우저에만 저장됩니다.