모델 컨텍스트 프로토콜 (MCP) 이란? API 중요성 완벽 분석

Ashley Innocent

Ashley Innocent

13 March 2026

모델 컨텍스트 프로토콜 (MCP) 이란? API 중요성 완벽 분석

요약 (TL;DR)

Model Context Protocol (MCP)은 AI 어시스턴트를 외부 데이터 소스 및 API에 연결하기 위한 표준입니다. 이를 통해 Claude Desktop, Cursor 및 기타 AI 도구가 사용자의 API에 안전하게 액세스할 수 있습니다. Modern PetstoreAPI는 MCP를 구현하여 AI 어시스턴트가 자연어를 통해 반려동물을 검색하고, 주문하고, 재고를 관리할 수 있도록 합니다.

서론

Claude Desktop에 “300달러 미만의 이용 가능한 고양이를 보여줘”라고 물어봅니다. Claude는 “애완동물 가게 데이터에 액세스할 수 없습니다”라고 응답합니다. 사용자는 API에서 복사/붙여넣기를 해야 하므로 워크플로가 중단됩니다.

MCP(Model Context Protocol)를 사용하면 Claude가 사용자 API에 직접 액세스할 수 있습니다. 동일한 질문을 하면 Claude가 PetstoreAPI를 쿼리하고 결과를 필터링하여 300달러 미만의 이용 가능한 고양이를 보여줍니다.

Modern PetstoreAPI는 MCP를 구현하여 AI 어시스턴트가 자연어를 통해 반려동물 가게와 상호 작용할 수 있도록 합니다.

AI 통합을 위한 API를 구축하는 경우, Apidog는 MCP 구현을 테스트하고 AI 어시스턴트 상호 작용을 검증하는 데 도움을 줍니다.

버튼

MCP란 무엇인가요?

MCP는 Anthropic이 AI 어시스턴트를 외부 리소스에 연결하기 위해 만든 프로토콜입니다.

MCP가 해결하는 문제

AI 어시스턴트는 강력하지만 고립되어 있습니다. 다음과 같은 작업을 수행할 수 없습니다:

MCP는 AI 어시스턴트가 이러한 리소스에 안전하게 연결할 수 있는 표준적인 방법을 제공합니다.

MCP 구성 요소

1. MCP 서버 - AI 어시스턴트에 리소스 및 도구 노출

2. MCP 클라이언트 - AI 어시스턴트 (Claude Desktop, Cursor 등)

3. 리소스 - AI가 읽을 수 있는 데이터 (파일, 데이터베이스 레코드, API 응답)

4. 도구 - AI가 수행할 수 있는 작업 (주문 생성, 반려동물 업데이트, 재고 검색)

MCP 아키텍처

AI Assistant (Claude Desktop)
    ↓ MCP Protocol
MCP Server (PetstoreAPI MCP Server)
    ↓ Internal APIs
PetstoreAPI Backend
    ↓
Database

MCP 작동 방식

1. 서버 등록

Claude Desktop을 MCP 서버에 연결하도록 구성합니다:

{
  "mcpServers": {
    "petstore": {
      "command": "node",
      "args": ["/path/to/petstore-mcp-server.js"],
      "env": {
        "PETSTORE_API_KEY": "your-api-key"
      }
    }
  }
}

2. 도구 검색

AI 어시스턴트가 묻습니다: "어떤 도구들을 사용할 수 있나요?"

MCP 서버가 응답합니다:

{
  "tools": [
    {
      "name": "search_pets",
      "description": "Search for pets by species, status, and price",
      "inputSchema": {
        "type": "object",
        "properties": {
          "species": {"type": "string", "enum": ["CAT", "DOG"]},
          "maxPrice": {"type": "number"},
          "status": {"type": "string", "enum": ["AVAILABLE", "ADOPTED"]}
        }
      }
    },
    {
      "name": "create_order",
      "description": "Place an order for a pet",
      "inputSchema": {
        "type": "object",
        "properties": {
          "petId": {"type": "string"},
          "userId": {"type": "string"}
        },
        "required": ["petId", "userId"]
      }
    }
  ]
}

3. 도구 실행

사용자가 묻습니다: "300달러 미만의 이용 가능한 고양이를 보여줘"

AI 어시스턴트 호출:

{
  "tool": "search_pets",
  "arguments": {
    "species": "CAT",
    "status": "AVAILABLE",
    "maxPrice": 300
  }
}

MCP 서버 실행:

async function search_pets({ species, status, maxPrice }) {
  const response = await fetch(
    `https://petstoreapi.com/v1/pets?species=${species}&status=${status}&maxPrice=${maxPrice}`
  );
  return await response.json();
}

AI에 결과를 반환하며, AI는 이를 사용자에게 맞게 포맷합니다.

MCP 대 기존 API

기능 기존 API MCP
액세스 직접 HTTP AI 어시스턴트를 통해
인터페이스 REST/GraphQL 자연어
인증 API 키, OAuth MCP 서버가 인증 처리
검색 OpenAPI 문서 도구 스키마
사용 코드/curl 대화형
오류 처리 HTTP 상태 코드 AI가 오류 해석

예시 비교

기존 API:

curl -H "Authorization: Bearer token" \
  "https://petstoreapi.com/v1/pets?species=CAT&maxPrice=300"

MCP:

사용자: "300달러 미만의 이용 가능한 고양이를 보여줘"
AI: [search_pets 도구 호출, 결과 포맷]
"다음은 300달러 미만의 이용 가능한 고양이 5마리입니다:
1. Fluffy - $250
2. Whiskers - $280
..."

Modern PetstoreAPI는 MCP를 어떻게 구현하는가

Modern PetstoreAPI는 MCP 서버를 제공합니다.

사용 가능한 도구

1. search_pets - 기준에 따라 반려동물 검색 2. get_pet - 반려동물 상세 정보 가져오기 3. create_order - 주문하기 4. get_inventory - 재고 확인 5. update_pet_status - 반려동물 이용 가능 여부 업데이트

예시: 검색 및 주문

사용자: "500달러 미만의 개를 찾아 주문해 줘"

AI 워크플로:

1. search_pets({species: "DOG", maxPrice: 500}) 호출
2. 사용자에게 결과 표시
3. 사용자 확인: "래브라도를 주문해 줘"
4. create_order({petId: "019b4132", userId: "user-456"}) 호출
5. 주문 완료 확인

MCP 서버 코드

import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = new Server({
  name: 'petstore-mcp',
  version: '1.0.0'
}, {
  capabilities: {
    tools: {}
  }
});

server.setRequestHandler('tools/list', async () => ({
  tools: [
    {
      name: 'search_pets',
      description: 'Search for pets',
      inputSchema: {
        type: 'object',
        properties: {
          species: { type: 'string' },
          maxPrice: { type: 'number' }
        }
      }
    }
  ]
}));

server.setRequestHandler('tools/call', async (request) => {
  const { name, arguments: args } = request.params;

  if (name === 'search_pets') {
    const response = await fetch(
      `https://petstoreapi.com/v1/pets?${new URLSearchParams(args)}`
    );
    return { content: [{ type: 'text', text: JSON.stringify(await response.json()) }] };
  }
});

const transport = new StdioServerTransport();
await server.connect(transport);

Apidog로 MCP 테스트하기

Apidog는 MCP 구현 테스트에 도움을 줍니다:

  1. 기본 API가 올바르게 작동하는지 테스트
  2. 도구 스키마가 API 계약과 일치하는지 검증
  3. 오류 처리 테스트
  4. 인증 흐름 확인

MCP가 중요한 이유

1. AI 네이티브 API

API가 자연어를 통해 액세스 가능해집니다. 비기술 사용자도 AI 어시스턴트를 통해 API와 상호 작용할 수 있습니다.

2. 표준화

MCP는 AI-API 통합을 위한 표준이 되고 있습니다. 한 번 지원하면 모든 MCP 클라이언트와 작동합니다.

3. 보안

MCP 서버가 인증을 처리합니다. AI 어시스턴트는 직접 API 액세스가 필요하지 않습니다.

4. 구성 가능성

AI 어시스턴트는 여러 MCP 서버를 결합하여 서비스 간 워크플로를 생성할 수 있습니다.

결론

MCP는 AI 어시스턴트와 API를 연결합니다. Modern PetstoreAPI는 MCP를 구현하여 Claude Desktop 및 기타 AI 도구가 자연어를 통해 반려동물 가게와 상호 작용할 수 있도록 합니다.

주요 내용:

FAQ

어떤 AI 어시스턴트가 MCP를 지원하나요?

Claude Desktop, Cursor 및 기타 Anthropic 기반 도구들입니다. 지원은 점점 확대되고 있습니다.

MCP는 안전한가요?

네. MCP 서버가 인증을 처리합니다. AI 어시스턴트는 API 키를 볼 수 없습니다.

기존 API와 함께 MCP를 사용할 수 있나요?

네. 기존 API를 래핑하는 MCP 서버를 구축하면 됩니다.

MCP가 REST API를 대체하나요?

아니요. MCP는 AI 어시스턴트 액세스를 위한 것입니다. REST API는 직접적인 프로그래밍 액세스를 위해 계속 사용됩니다.

MCP 도구는 어떻게 테스트하나요?

Apidog를 사용하여 기본 API를 테스트한 다음, Claude Desktop으로 MCP 도구를 테스트하세요.

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요