← 개발 일지로

Claude 2026 기능 전면 해석: API, Tool Use, MCP, Structured Output와 AI Agent

AI Agent & Claude API · 2026.08.18 · 약 16분

Claude API, Tool Use, MCP, Structured Output Agent 스택

많은 팀이 2026 Claude 변경 로그를 「모델이 더 똑똑해졌다」는 보도자료로만 본다: Messages API, Tool Use, MCP, Structured Output, Agent 루프——이름만 늘고 코드는 여전히 prompt, tools, JSON 기대를 한 번의 messages.create에 넣는 형태. 프로덕션에서 터지는 건 문장 품질이 아니라 스키마에 안 맞는 tool args, 너무 넓은 MCP 권한 표면, 정규식으로 JSON을 긁는 하류다. 아래 질문: 이 다섯은 한 레이어인가? 비대칭 결론: 분기점은 모델명이 아니라 스키마 제약과 실행 경계다.

프로덕션에 Claude를 붙이는 개발자용: Claude API, Tool Use, MCP 커넥터, Structured Output, Agent 루프를 진입·실행·컨텍스트로 분류하고, 언제 자체 tool을 갖고 언제 원격 MCP를 붙이고 언제 strict가 필수인지 고른다. 프로토콜 기초: MCP란 무엇인가(USB 비유). IDE 레이어링: Claude Skills vs Cursor Rules. 이 페이지는 API 쪽을 운영 가능한 Agent로 만드는 방법만 다룬다.

1. 기능 목록이 길수록 프로덕션은 더 잘 깨진다

2025년 말부터 2026년에 Anthropic은 「tool 호출」「MCP 연결」「JSON Schema 출력」을 Messages 주 경로로 옮겼다: output_config.format이 beta output_format을 대체; tool 정의에 strict: true로 문법 제약 샘플링이 인자를 유효하게 유지; 원격 MCP는 mcp_serverstype: "mcp_toolset"으로 같은 요청에 실린다. 문서는 명확하다. 그런데 엔지니어링에서는 세 가지 일이 한 덩어리로 무너진다:

  • 사람이 읽는 prose와 기계가 ingest하는 JSON을 스키마 없는 텍스트 blob에 한꺼번에;
  • 로컬 스크립트, SaaS, 쓰기 가능 MCP tool을 하나의 tools 배열에 평탄화해 모델이 고르게;
  • Agent를 「같은 user 턴을 20번 반복」으로만 정의하고 max step·tool_use 감사 없이.

데모는 된다; 티켓에는 JSONDecodeError, 잘못된 enum, MCP 서버를 만능 shell로 쓰는 사례가 쌓인다. Claude API가 「기능이 부족」한 게 아니다. 진입·실행·컨텍스트가 갈라지지 않았다. Agent가 xcodebuild를 돌려야 하면 실행은 실제 Mac 하드웨어에 닿는다——셀프호스트 GitHub Actions macOS runner와 같은 운영 문제이지 프롬프트 문제가 아니다.

2. 각 레이어가 무엇인가(What)

2.1 Claude API — 대화 진입점, Agent 제품이 아님

Claude API(Messages)는 모델, 메시지, system prompt, cache, 과금을 시스템에 붙이는 진입점이다. tool을 실행해 주지 않고 json.loads도 보장하지 않다. 채팅 완성으로 쓰는 것은 정당하다. 하류가 DB를 쓰고 티켓을 열고 CI를 트리거하는 순간 뒤 레이어를 쌓는다. 먼저 묻는다: 이 호출의 소비자는 사람인가 파서인가?

2.2 Tool Use — 자신이 소유하는 실행면

Tool Use는 모델이 tool_use 블록을 내고 서버가 실행한 뒤 tool_result를 돌려준다. 자체 구현용: 재고, 티켓, repo 스크립트. 2026 프로덕션에서는 정의에 strict tool use를 붙인다: strict: trueinput_schema가 Structured Output과 같은 문법 파이프라인을 써 「문자열 2를 숫자로」 같은 크래시를 줄인다. 대가: 스키마가 Anthropic이 지원하는 JSON Schema 부분집합에 맞아야 한다.

2.3 MCP 커넥터 — 원격 tool 면, 또 하나의 SDK가 아님

Messages MCP 커넥터는 원격 서버(URL, OAuth)와 mcp_toolset(전체, allowlist, denylist)을 선언한다. 발견과 전송을 해결한다: SaaS마다 Anthropic tool JSON을 손으로 쓰지 않는다. 자동으로 안전하지 않다——파일시스템·shell MCP는 게이트웨이나 allowlist가 필요하다. 프로토콜 「왜 USB」와 이 페이지의 「API에 서버를 매는 방법」은 보완 관계이지 중복 기사가 아니다.

2.4 Structured Output — 파서용 컨텍스트, 독자용 문체가 아님

Structured Outputoutput_config.formatjson_schema로 모델 텍스트 블록을 유효 JSON으로 만든다. 필드 추출, 리포트 객체, 다음 서비스 계약용. Tool Use와 직교한다: JSON만, strict tool만, 둘 다. tool 호출 대체가 아니다——예쁜 JSON도 HTTP를 쏘지 않는다.

2.5 AI Agent — 루프 정책, 다섯 번째 API 제품이 아님

여기서 AI Agent는: 모델이 tool 고름 → 실행 → 결과 반환 → 멈출 때까지. 멈춤 조건은 자신이 쓴다: max round, 금지 tool 이름, 예산, 사람 확인. 루프는 Tool Use만 또는 MCP 혼합. Structured Output은 최종 인도에 맞다. 루프 상한 없는 「완전 자동」은 무한 재시도다.

한 줄로 기억
Claude API는 진입; Tool Use / MCP는 실행(자체 vs 원격 발견); Structured Output은 기계 계약; Agent는 자신이 쓰는 루프와 red line.

3. 핵심 비교(How Compare)

Claude API 다섯 레이어: 진입, 실행, 컨텍스트, 용도
능력 진입 실행 컨텍스트 적합
Claude API Messages / SDK messages.create 텍스트·멀티모달 이해; 외부 side effect 없음 messages + system + cache blocks 채팅, 초안, 사람이 읽는 요약
Tool Use 요청 소유 tools[] 백엔드가 함수 실행; 선택 strict: true tool schema + tool_result 왕복 내부 API·호출 단위 감사가 있는 팀
MCP 커넥터 mcp_servers + mcp_toolset 원격 MCP tool; 멀티 서버, OAuth 발견된 tool 목록(줄여야 함) 손으로 JSON 안 쓰고 기존 MCP 쓰는 통합 담당
Structured Output output_config.format = json_schema tool 실행 안 함; 파싱 가능 JSON 텍스트 보장 스키마가 샘플링 제약에 들어감 ETL, 티켓 필드, 타입 있는 하류 서비스
AI Agent 루프 자체 오케스트레이터(while / queue / workflow) 멈출 때까지 Tool Use 또는 MCP 반복 누적 tool_result; 윈도우 비대화 주의 명시적 예산의 다단계 상태 변경
자체 Tool Use vs MCP 커넥터
차원 자체 Tool Use 함수는 자신이 작성 MCP 커넥터 원격 발견
소유권구현, 로그, rate limit은 자 repotool 의미는 MCP 서버 소유
변경 속도스키마 변경은 Agent와 함께 배포새 서버 tool이 발견에 나타남—allowlist 필수
strict args공식 strict가 스키마와 깔끔히 맞음API 전용 필드를 일반 MCP 클라이언트 schema에 넣지 말 것
적합코어 쓰기 경로, 컴플라이언스 감사읽기 전용 SaaS, 표준화 검색, tool buffet

4. 선택 방법(Decision)

소비자와 side effect를 먼저 고정한 뒤 레이어를 고른다. 매트릭스는 외부 상태를 바꾸는지로 갈린다.

시나리오 매트릭스
시나리오 선호 피할 것
운영 주간 메모 Claude API plain text 「고급」처럼 보이게 JSON Schema
이메일 필드를 CRM에 추출 Structured Output + 서버 검증 쓰지 않는 가짜 「추출 tool」
Jira 생성 / 알림 종료 자체 Tool Use + strict: true + idempotency key 쓰기 가능 MCP pack을 요청에 덤프
읽기 전용 문서 / 캘린더 MCP 커넥터 + tool allowlist 「혹시 필요할까」 전 tool 활성화
다단계 repo 수정 + 테스트 Agent 루프 + 자체 git/test tool + max step 무한 while-true; 노트북에서 밤샘 xcodebuild
하류 API 최종 계약 마지막 턴 Structured Output(또는 별도 parse 호출) 섞인 tool_use 텍스트에서 JSON 정규식 채굴
Red line
파일시스템, 프로덕션 DB, 결제, 발신 이메일은 기본적으로 「발견 MCP, 전 tool ON」에서 제외. MCP를 쓰면 allowlist + 인증 + 감사 로그를 요구하고, 고위험 단계는 사람 확인.

5. 권장 스택

기능을 쌓는다. 단일 제품명을 찾지 말 것.

  • 개인 스크립트 / 내부 봇: Claude API + 자체 tool 2–5개 + strict. secret 표면이 worth할 때까지 MCP 생략.
  • 성장 중 SaaS 지원 Agent: 자체 쓰기 tool(티켓) + 읽기 전용 MCP 지식 + 끝에서 Structured Output으로 QA.
  • 플랫폼 / 멀티 팀: 인증·rate limit용 MCP 게이트웨이; step·예산용 오케스트레이터; 과금 쓰기는 자체 Tool Use 유지.
  • macOS / iOS 빌드 Agent: 「지정 runner에 job enqueue」만 노출; 실제 xcodebuild는 안정적인 cloud Mac에서, 모델 주도 ad-hoc SSH 아님.

IDE Skills 대비: API Agent는 시스템 side effect 루프를 갖고; Claude Code Skills는 repo 내 개발자 SOP를 갖는다. 둘 다 MCP를 말할 수 있지만 쓰기 권한 credential 테이블은 공유하지 말 것.

6. 흔한 실수

  • 「MCP면 Tool Use를 버릴 수 있다」 → 쓰기 경로, 컴플라이언스, idempotency는 자체 소유·감사 유지.
  • 「Structured Output이 Agent다」 → 텍스트 JSON만 제약; side effect 없음.
  • 「strict는 아무 nested JSON Schema에서나 된다」 → 문서화된 부분집합 안에 머물기; 깊은 oneOf / 동적 key는 실패.
  • 레거시 beta output_formatoutput_config를 두 제품으로 취급 → 전환 호환만; 새 코드는 output_config.format.
  • 「더 강한 모델은 max step 불필요」 → step은 돈과 blast radius 문제, IQ 아님.
  • 모든 MCP 클라이언트 schema에 strict 복붙 → 일반 MCP 채널에서는 API 전용 필드 제거.

7. 일곱 단계 도입

  1. side effect 목록: 읽기 query, 내부 쓰기, CI 트리거, 프로덕션. 클래스당 tool 테이블 하나.
  2. 자체 tool 하나 배포: 최소 input_schema + strict: true; tool_use → 실행 → tool_result 검증.
  3. 사람 vs 기계 전달 분리: 기계 계약은 Structured Output 또는 전용 parse 호출.
  4. 읽기 전용 MCP 연결: mcp_servers + allowlist; 쓰기는 자체 유지.
  5. 루프 감싸기: max N step, timeout, token 예산, 미선언 tool 이름 거부.
  6. 관측: tool 이름, arg hash, latency, schema 실패 기록—최종 assistant 텍스트만 아님.
  7. 무거운 실행 고정: macOS job은 cloud Mac / 셀프호스트 runner; Agent는 job id만 내고 노트북 shell 아님.
스케치: strict tool + 구조화 최종 payload(비밀은 env)
# Pseudocode — use the official SDK in production
POST /v1/messages
{
  "model": "claude-opus-4-6",
  "max_tokens": 2048,
  "tools": [{
    "name": "create_ticket",
    "strict": true,
    "input_schema": {
      "type": "object",
      "properties": {
        "title": {"type": "string"},
        "severity": {"type": "string", "enum": ["low","high"]}
      },
      "required": ["title","severity"],
      "additionalProperties": false
    }
  }],
  "output_config": {
    "format": {
      "type": "json_schema",
      "schema": {
        "type": "object",
        "properties": {
          "ticket_id": {"type": "string"},
          "next_action": {"type": "string"}
        },
        "required": ["ticket_id","next_action"],
        "additionalProperties": false
      }
    }
  },
  "messages": [{"role": "user", "content": "높은 심각도 티켓 열기: 빌드 타임아웃"}]
}

모델 ID는 콘솔과 Tool Use 개요에 맞춘다. 프로덕션 전 output_configstrict가 SDK 버전에서 leftover beta 헤더에 의존하지 않는지 확인.

8. 결론

Claude API는 모델을 시스템에 붙이는 방법.Tool Use는 자체 실행과 보장된 인자.MCP는 원격 발견과 trimming.Structured Output은 파서 계약.AI Agent는 루프가 멈추는 시점과 blast radius. 다섯은 병렬 「새 기능」 헤드라인이 아니다. 하나의 진입, 두 실행면, 하나의 전달 형식, 자신이 쓰는 오케스트레이션. side effect 경계를 먼저 그리고 MCP와 루프를 켜서 데모가 프로덕션을 버틴다.

더 읽기: Structured outputs · Strict tool use · MCP connector · MCP 프로토콜 입문

FAQ

Tool Use와 MCP를 같은 요청에서 쓸 수 있나?
가능. 흔한 분리는 쓰기는 자체 Tool Use, 읽기는 MCP toolset. 둘 다 tool 목록에 나오므로 이름 prefix와 allowlist로 모델이 실수로 쓰기 tool을 고르지 않게 한다.
Structured Output이 strict tool을 대체하나?
아니오. Structured Output은 assistant 텍스트 JSON을 제약; strict는 tool_use name과 input을 제약. 함수를 실행하면 tool schema가 필요—prose에 legal args가 「우연히」 나오길 바라지 말 것.
beta 헤더가 여전히 필요한가?
현재 Anthropic 문서를 따른다: structured output은 output_config.format으로 옮겼고, 구 파라미터는 전환 기간 동안만. 새 통합은 structured-outputs beta 헤더에 의존하지 말 것. MCP 커넥터가 anthropic-beta를 여전히 요구하는지는 MCP connector 페이지를 배포 전 확인.
Agent 루프 max_tokens는 얼마나?
「혹시 모를」 모델 최대가 아니라 한 tool-call step에 맞춘다. step × max_tokens가 청구액. 컨텍스트가 불면 윈도우를 무한히 늘리지 말고 tool_result를 요약.
사이트 MCP 설명 글과 무엇이 다른가?
그 글은 프로토콜이 무엇이고 USB 비유가 왜 맞는지. 이 글은 Claude Messages MCP 커넥터를 Tool Use, Structured Output, 운영 가능 Agent 루프와 어떻게 조합하는지, 시나리오 분기 포함.
빌드 Agent에 cloud Mac이 왜 필요한가?
codesign과 xcodebuild는 네이티브 macOS가 필요. Agent는 단계를 설명; 실행에는 24/7 SSH 가능 노드가 필요. cloud Mac mini는 대기 전력이 낮고 환경이 재현 가능해 서명 인증서와 밤샘 컴파일을 노트북에 묶지 않는다.

tool만 되면 빌드를 돌릴 곳도 필요하다

Claude Tool Use와 MCP는 의도를 호출로 바꾼다. 실제 xcodebuild, Fastlane, 서명은 macOS에서 일어난다. Hashvps cloud Mac mini M4는 SSH/VNC, 전용 IPv4, 재현 가능한 Homebrew 트리——repo 읽기 전용 MCP, 쓰기 job은 지정 runner에, 불안정한 노트북 shell을 모델이 건드리지 않게.

Claude API Agent를 iOS/macOS 파이프라인에 붙이는 중이면, Hashvps cloud Mac은 가치 높은 실행 노드—— 요금제 보기, 루프를 예산 안에서 원격 완주.

Hashvps · Mac 클라우드

Agent 도구 실행에는 안정적인 노드가 필요

Cloud Mac mini M4, 네이티브 macOS·SSH. MCP 도구와 xcodebuild를 같은 재현 가능한 호스트에.

홈으로
한정 혜택