CCAR-P 개념 카드

■ MCP connector

한계 4가지3.7 본편

표시가 없는 문장은 공식 문서에서 확인한 내용이에요. 다른 표시는 읽는 법

왜 배우나 — 시험이 요구하는 것

시험 목표 3.7 연결 방식 고르기 · D3 연결 19%
Evaluate connection protocols and select the appropriate integration mechanism (MCP, API/CLI, agent-to-agent)

이 개념으로 푸는 판단 (할 수 있어야 하는 것)

  • 3.7① ZDR 계약 고객용 에이전트에 사내 원격 MCP 서버의 도구·prompts 를 Messages API 로 바로 붙이려 한다 — MCP connector 로 되나? — MCP connector vs 우리 쪽 클라이언트가 MCP 를 맡는 구현
  • 3.2① 같은 머신의 stdio MCP 서버와 원격 HTTP MCP 서버를 함께 붙인다 — 자격증명을 각각 어떻게 주나? — 전송 방식별 인증 고르기

한눈에

Messages API 요청에 mcp_servers 를 넣으면 API 가 원격 MCP 서버에 붙어 도구를 부른다. 그래서 우리가 MCP 클라이언트를 안 짜도 된다. 베타 기능이다(헤더 mcp-client-2025-11-20)

MCP 서버의 요소는 셋이다. connector 는 그중 첫째만 쓴다 (Skilljar)

  • tools : 모델이 부른다
  • resources : 앱이 가져온다
  • prompts : 사용자가 누른다

비유 GitHub-hosted runner 와 같다. 관리형이라 편하지만 공개망만 닿고 옵션이 좁다. 사내망이나 규정 요구가 있으면 self-hosted runner(= 우리 쪽 클라이언트)를 쓴다

MCP connector 는 요청에 mcp_servers 를 넣으면 API 가 원격 MCP 서버에 붙어 클라이언트를 안 짜도 된다. 우리 쪽은 MCP SDK 로 직접 연결. connector 는 tools 만.
그림으로 보기 (AI 생성 · Codex · 누르면 크게)

ELI5

택배 회사가 "집 앞까지 가져다줄게요" 하는데, 큰길가 집만 가요.

  • 큰길가(공개 인터넷) 집이면 제일 편해요.
  • 골목 안(사내망·내 컴퓨터) 집은 직접 가지러 가야 해요.
  • 물건 중 "상자"만 날라 주고 "편지·사진"은 안 날라요.
  • 택배 기록을 지워 주는 약속(ZDR)도 안 돼요.

개념 설명

영상 — 요청에 서버 주소만 적으면 될까? (약 43초 · 소리 없음 · 자막). 'Anthropic 쪽 기록' 칸은 표준 보존을 그린 그림 · 호출 1번은 그림용 가정 작은 화면에서는 전체화면(⛶)으로 보세요.

원리

누가 MCP 클라이언트인가

  • connector 에서는 Anthropic API 쪽이 MCP 클라이언트 역할을 한다. 우리는 요청에 서버 URL 만 적는다. 그래서 코드가 가장 적다.
  • 그래서 API 가 닿을 수 있는 곳만 된다. 그곳은 공개 HTTPS 다. 우리 머신의 stdio 프로세스와 방화벽 안 서버에는 못 닿는다.
  • 데이터가 Anthropic 을 거쳐 MCP 서버와 오간다. 그래서 도구 정의와 결과가 표준 보존 정책을 따른다. 그 결과 ZDR 대상이 아니다.

기능 범위

  • MCP 서버 요소는 셋이다. connector 는 tools 만 쓴다.
    • tools : 모델이 부른다
    • resources : 앱이 가져와 컨텍스트에 넣는다
    • prompts : 사용자가 고르는 틀이다
  • resources 와 prompts 는 앱과 사용자가 쓰는 요소다. 그래서 앱 쪽에 클라이언트가 있어야 자연스럽다.

대안은 우리 쪽 클라이언트다

  • 우리 앱이 MCP SDK 로 서버에 직접 연결한다. 그리고 SDK 도우미로 MCP 도구·프롬프트·리소스를 Claude API 형식으로 바꾼다. 로컬·사내망·prompts·resources·ZDR 을 전부 우리가 통제(control)한다.
  • 대가는 연결 코드와 운영을 우리가 맡는 것이다.

규칙과 판단

도구 호출만, 공개 HTTP 서버만, ZDR 대상 아님, Bedrock·Google Cloud 불가 — 하나라도 걸리면 우리 쪽 클라이언트, 원격 서버 + 도구만이면 mcp_servers.
그림으로 보기 (AI 생성 · Codex · 누르면 크게)

갈림길

①②⑤ connector 로 되나 [3.7①]

어떤 요구가 걸리나?하나라도 걸리면 우리 쪽 클라이언트가 맡는다
prompts·resources

우리 쪽 클라이언트

MCP 기능 중 도구 호출만 된다. resources 와 prompts 는 안 된다

로컬 stdio 서버

우리 쪽 클라이언트

로컬 stdio 서버는 직접 붙지 못한다

사내망 서버

우리 쪽 클라이언트 · tunnels

서버는 HTTP 로 공개 노출돼야 한다. 사내망에는 MCP tunnels(리서치 프리뷰, 2026-05-19)가 있다. 프리뷰라서 시험 정답 선택지로는 약하다 (추론)

ZDR 계약

우리 쪽 클라이언트

connector 는 ZDR 대상이 아니다. 도구 정의와 실행 결과까지 표준 보존 정책이 적용된다

Bedrock·Google Cloud

우리 쪽 클라이언트

Amazon Bedrock · Google Cloud 에서는 안 된다 (2026-09-28 조회)

없다 (원격 서버 + 도구만)

mcp_servers

URL 로 닿는 원격 서버이고 도구만 쓰면 mcp_servers 를 쓴다

③ 도구 세트 좁히기 [3.7①]

어떤 경우인가?기본은 모든 도구를 켠다
읽기 전용 비서

denylist

쓰기·파괴 도구를 enabled: false 로 끈다

쓸 도구가 몇 개로 정해졌다

allowlist

default_config.enabled: false 로 끄고 필요한 것만 켠다

도구가 너무 많다

defer_loading + tool search

자세한 것은 ◆ 도구 미리 싣기 vs tool search 에 있다

흐름

그림 속 이름·금액·시간·토큰 수는 예시예요. 공식 한도·동작은 카드 본문 값이 기준.

장면 글로 보기

칸 : 우리 앱 → Claude API → MCP 서버

질문 : MCP 연결은 누가 맡아야 할까?

① connector ✓

  1. 시작 : 우리 앱 — 말 : “주문 A-1024 배송 어디쯤이에요?”
  2. 요청 : 우리 앱 → Claude API : mcp_servers · mcp_toolset — 쪽지 : mcp_servers: / url: https://mcp.ship… / tools: mcp_toolset
  3. 도구 호출 : Claude API → MCP 서버 : 공개 HTTP · https:// — 쪽지 : tools/call / track_order(A-1024)
  4. 끝 : API 가 원격 MCP 서버에 붙어 도구를 부른다. 우리는 MCP 클라이언트를 안 짠다

② 로컬 stdio 서버 ≠

  1. 시작 : 우리 앱 — 말 : “사내 CRM 에서 / 이 고객 찾아 줘”
  2. 요청 : 우리 앱 → Claude API : mcp_servers — 쪽지 : mcp_servers: / 로컬 stdio 서버 crm
  3. 도구 호출 : Claude API → MCP 서버 : 로컬 stdio 에는 직접 못 닿는다 — 쪽지 : 닿지 못함 / 공개 https:// 만
  4. 끝 : 한계가 하나라도 걸리면 우리 쪽 클라이언트가 MCP 연결을 맡는다

③ 우리 쪽 클라이언트 ✓

  1. 시작 : 우리 앱 — 말 : “주문 A-1024 배송 어디쯤이에요?”
  2. 연결 : 우리 앱 → MCP 서버 : MCP SDK 로 직접 연결한다 — 쪽지 : tools/list → / track_order 외 2개
  3. 변환 : 우리 앱 : 변환 도우미 mcpTools — 쪽지 : mcpTools(목록) → / Claude tools 형식
  4. 요청 : 우리 앱 → Claude API : tool runner — 쪽지 : tools: [track_order …] / mcp_servers 없음
  5. 끝 : 로컬 서버·prompts·resources·ZDR·연결 제어가 걸리면 클라이언트 도우미로 우리가 연결한다

나머지 규칙

  1. 인증(authentication) : OAuth 흐름과 갱신은 호출 전에 우리가 처리한다. 그리고 authorization_token 에 액세스 토큰을 넣는다

    자세한 것은 ■ MCP 인증·인가 에 있다

  2. Batches API 요청에도 mcp_servers 를 넣을 수 있다. 요금은 일반 요청과 같다

    시험 뒤 변경 : 도구 목록을 고정하는 베타 헤더 mcp-client-2026-09-15 가 생겼다(2026-09-22). 서버가 대화 중 도구를 바꿔도 Claude 가 보는 목록이 안 바뀐다. 옛 헤더 mcp-client-2025-04-04 는 폐기됐다

규칙 원문 ①②③⑤ (갈림길로 그린 규칙)
  1. 한계는 4가지다. 하나라도 걸리면 우리 쪽 클라이언트가 MCP 연결을 맡는다 [3.7①]

    한계걸리는 요구
    MCP 기능 중 도구 호출만 된다 (resources·prompts 는 안 된다)prompts·resources 가 필요하다
    서버는 HTTP 로 공개 노출돼야 한다(Streamable HTTP·SSE). URL 은 https:// 다. 로컬 stdio 는 직접 붙지 못한다로컬 서버 · 사내망 서버
    ZDR 대상이 아니다 (도구 정의·실행 결과까지 표준 보존 정책이 적용된다)ZDR 계약
    플랫폼 : Claude API · Claude Platform on AWS · Microsoft Foundry 는 beta 다. Amazon Bedrock · Google Cloud 는 안 된다 (2026-09-28 조회)Bedrock·Google Cloud 로 Claude 를 쓴다
  2. 우리 쪽 클라이언트는 세 가지로 이루어진다

    • MCP SDK 로 서버에 직접 연결한다
    • Anthropic SDK 변환 도우미(mcpTools · mcpMessages · mcpResourceToContent · mcpResourceToFile)로 변환한다
    • tool runner 로 돌린다

    공식 판단 기준 : URL 로 닿는 원격 서버이고 도구만 쓰면 mcp_servers 를 쓴다. 로컬 서버·prompts·resources·연결 제어가 필요하면 클라이언트 도우미를 쓴다

  3. 설정은 서버 정의(mcp_servers : url·name·authorization_token)와 도구 세트(tools 안 mcp_toolset)로 한다. 서버마다 도구 세트는 정확히 하나다. 기본은 모든 도구를 켠다. 좁히는 방법은 셋이다

    • allowlist : default_config.enabled: false + 필요한 것만
    • denylist : 쓰기·파괴 도구 enabled: false
    • defer_loading + tool search

    자세한 것은 ■ 최소 권한 · ◆ 도구 미리 싣기 vs tool search 에 있다

  4. 사내망 서버를 connector 로 붙이는 길은 MCP tunnels(리서치 프리뷰, 2026-05-19)다. 터널은 바깥으로만 나가는 연결이다. 인바운드 포트와 공개 노출이 필요 없다. 터널은 서버 인증을 대신하지 않는다(서버 OAuth 는 따로 한다). ZDR·BAA 적격은 별도 문서에 있다

    프리뷰라서 시험 정답 선택지로는 약하다 (추론)

더 깊이 : 판단 규칙 · 상황 변수 (설명)

판단 규칙

조건답근거
공개 원격 서버이고 도구만 필요하다connector (mcp_servers)mcp-connector md 원본
prompts 또는 resources 가 필요하다우리 쪽 클라이언트 + SDK 도우미mcp-connector
로컬 stdio 서버다우리 쪽 클라이언트mcp-connector
ZDR 계약이 필요하다connector 는 안 된다. 우리 쪽 클라이언트를 쓴다mcp-connector
Amazon Bedrock · Google Cloud 로 Claude 를 쓴다connector 는 안 된다mcp-connector md 원본
Claude API · Claude Platform on AWS · Microsoft Foundry 를 쓴다connector 가 베타로 된다mcp-connector md 원본
서버 도구 중 일부만 켜야 한다mcp_toolset allowlist/denylistmcp-connector
서버가 OAuth 를 요구한다우리가 흐름을 처리하고 authorization_token 에 넣는다mcp-connector
서버가 여러 개이고 도구가 수십 개다defer_loading + tool searchmcp-connector

상황 변수

변수값답 쪽등급근거
서버 위치공개 인터넷 HTTPSconnector 를 쓸 수 있다판단 규칙 1
서버 위치사내망기본은 우리 쪽 클라이언트다. tunnels 프리뷰면 connector 도 된다(tunnels 문장) · 추론(프리뷰라 정답 선택지로는 약함)mcp-tunnels
서버 위치같은 머신 stdio우리 쪽 클라이언트mcp-connector
필요한 요소tools 만connector 를 쓸 수 있다mcp-connector
필요한 요소prompts·resources우리 쪽 클라이언트mcp-connector
데이터 보존표준 보존으로 괜찮다connector 를 쓸 수 있다mcp-connector
데이터 보존ZDR 이 꼭 있어야 한다우리 쪽 클라이언트 (Managed Agents 도 대상이 아니다)mcp-connector · managed-agents
플랫폼Bedrock·Google Cloud우리 쪽 클라이언트md 원본
호출 방식Batches APIconnector 를 쓸 수 있다. 요금은 같다mcp-connector

연습 문제

고객사가 공개 HTTPS 로 열린 배송 조회 MCP 서버공개 서버의 도구 3개만 쓰려 한다. 다만 이 고객사는 Anthropic 과 ZDR 계약을 맺고 있다ZDR 계약. 코드를 가장 적게 쓰려고 요청에 mcp_servers 를 넣자는 제안이 나왔다. 어떻게 연결해야 하나?

시험 대비

함정

  • "connector 로 로컬 stdio 서버도 연결한다" 는 함정이다. 로컬 stdio 서버는 직접 붙지 못한다. 서버는 HTTP 로 공개 노출돼야 한다
  • "connector 에서 resources·prompts 도 쓴다" 는 함정이다. MCP 기능 중 도구 호출만 된다
  • "관리형이니 ZDR 도 알아서 맞는다" 는 함정이다. connector 는 ZDR 대상이 아니다
  • 반대로 넓힌 함정도 있다. "클라우드 플랫폼에선 전부 안 된다" 는 함정이다. Foundry·Claude Platform on AWS 는 beta 다. 안 되는 것은 Bedrock·Google Cloud 다
  • "사내망 서버는 connector 로 절대 못 붙인다" 는 함정이다. tunnels 프리뷰가 있다 (단 프리뷰다)
  • "그럼 Managed Agents 로 돌리면 ZDR 이 해결된다" 는 함정이다. Managed Agents 도 ZDR·HIPAA BAA 대상이 아니다. 자세한 것은 ◆ 직접 API vs Agent SDK vs CLI vs Managed Agents 에 있다
  • "규제 고객이면 클라이언트 측" 은 공식 문장이 아니다. ① 표에서 나오는 추론이다 (목록 메모와 같다)

신호

"Of the feature set of the MCP specification, only tool calls are currently supported."

"The server must be publicly exposed through HTTP (supports both Streamable HTTP and SSE transports). Local STDIO servers cannot be connected directly."

"The MCP connector is not covered by ZDR arrangements."

"Use the client-side helpers when you need local servers, prompts, resources, or more control over the connection with the base SDK."

"Denylisting write or destructive tools is recommended when building read-only assistants"

원격 서버의 도구만 쓰면 보통 mcp_servers connector 지만, ZDR 계약이나 로컬 stdio 서버면 우리 쪽 클라이언트로 연결하고, 사내망 서버는 MCP tunnels(프리뷰)라는 그림.
그림으로 보기 (AI 생성 · Codex · 누르면 크게) — 자세한 조건은 아래 '더 깊이'에 있어요
더 깊이 : 뒤집히는 때 · 오답 재료 (설명)

뒤집히는 때

1. 사내망인데 connector 가 되는 때

  • 조건 : 사내 MCP 서버를 공개하지 않고 connector 로 쓰고 싶다.
  • 판단 : MCP tunnels(2026-05-19 리서치 프리뷰)를 쓴다. 우리 망 안의 cloudflared 가 바깥으로만 연결한다. 인바운드 포트는 열지 않는다. 터널 호스트명을 mcp_servers url 로 쓴다. 서버 OAuth 는 따로 한다.
  • 등급 : (기능) · 추론(시험은 프리뷰 기능을 정답으로 쓰기 어려움 — 지문에 tunnels 가 나오지 않으면 "사내망 = 우리 쪽 클라이언트"가 안전)
  • 근거 : mcp-tunnels · 릴리스 노트
  • 주의 : tunnels 의 ZDR·BAA 적격은 이 문서에 없다. 별도 문서를 가리킨다(미해결 1).

2. 도구만 필요한데도 connector 가 안 되는 때

  • 조건 : 공개 HTTPS 서버이고 도구만 쓴다. 그런데 고객이 ZDR 계약을 맺었다.
  • 판단 : 기능은 맞아도 ZDR 한계 하나로 빠진다. 그래서 우리 쪽 클라이언트를 쓴다. "기능만 맞으면 connector" 로 고르면 틀린다.
  • 근거 : mcp-connector

3. 한계가 하나도 안 걸리는 때

  • 조건 : 아래가 모두 맞다.
    • 공개 SaaS MCP 서버다
    • 도구만 쓴다
    • Claude API 를 직접 쓴다
    • ZDR 이 없다
  • 판단 : connector 가 가장 단순하다. 여기서 "우리가 MCP 클라이언트를 직접 짠다"는 과설계 쪽이다.
  • 등급 : (connector 가능) · 업계 일반(과설계 판단)
  • 근거 : mcp-connector · building-effective-agents "finding the simplest solution possible"

4. 대화 도중 서버 도구가 바뀌는 때

  • 조건 : 서버가 배포 중 도구 이름을 바꾼다. 그래서 긴 대화 중간에 Claude 가 보는 목록이 달라진다.
  • 판단 : mcp-client-2026-09-15 로 목록을 기록하고 고정한다. 2026-09-22 에 추가돼서 시험 범위 밖일 가능성이 있다.
  • 등급 : 시험 뒤 변경
  • 근거 : mcp-connector · 릴리스 노트

오답 재료

오답왜 끌리나왜 틀리나근거
"connector 로 로컬 stdio 서버도 연결"MCP 면 다 될 것 같다공개 HTTP 서버만 된다mcp-connector
"connector 에서 resources·prompts 도 쓴다"MCP 표준 기능이기 때문이다도구 호출만 된다mcp-connector
"관리형 기능이니 ZDR 도 된다"Anthropic 이 관리하면 규정도 맞을 것 같다ZDR 대상이 아니다mcp-connector
"Bedrock·Vertex·Foundry 전부 connector 불가"클라우드는 제한이 있을 것 같다Foundry·Claude Platform on AWS 는 beta 다md 원본
"Bedrock 에서도 connector 쓴다"같은 Claude 모델이다Bedrock·Google Cloud 는 안 된다md 원본
"Managed Agents 로 옮기면 ZDR 해결"호스팅이 다르기 때문이다Managed Agents 도 ZDR·BAA 대상이 아니다managed-agents
"서버를 붙이면 필요한 도구만 켜진다"알아서 고를 것 같다기본은 모든 도구를 켠다. 끄려면 configs 를 쓴다mcp-connector

참고

더 깊이 : 출처 · 상태 · 미해결 (참고)

출처

상태

  • 시험 뒤 변경 1곳
  • 추론 2줄

미해결

  1. MCP tunnels 의 ZDR·HIPAA BAA 적격 : overview 는 "API and data retention" 문서를 가리키기만 한다. 그 문서는 이번에 받지 않았다.
  2. 목록 3.7① 의 "Microsoft Foundry·Claude Platform on AWS 는 beta — 2026-09-27 조회값" 은 2026-09-28 md 원본 머리 표로 같은 값임을 확인했다. 이 표는 defuddle 본문에 안 나온다. 그래서 md 원본을 따로 받았다(en-mcp-connector-source.md).
  3. 목록의 "헤더 mcp-client-2025-11-20 현행 · 2025-04-04 폐기 · 새 헤더 mcp-client-2026-09-15" 는 확인했다. 단 새 헤더는 "Claude API 에서 사용 가능"이다. 다른 플랫폼에서 되는지는 미확인이다.