본문으로 건너뛰기
黯羽轻扬매일 조금씩

MCP이란: 엔지니어링 관점에서 핵심 메커니즘, 경계 및 비용을 해체하는 것입니다.

무료2026-07-17#AI#AI

MCP은 AI 도구와 개발 환경 간의 개방형 통신 프로토콜로, AI가 파일, 데이터베이스 및 API에 안전하게 액세스할 수 있도록 해줍니다. 이 문서에서는 엔지니어링 관점에서 해당 메커니즘, 제한 사항 및 실제 고려 사항을 설명합니다.

Agent Engineering 전환 경로
이 유입의 가치는 어떤 recovery path 를 먼저 볼지 알게 될 때 생깁니다.

Agent Engineering, MCP, AI workflow 설계를 읽는 사람에게 이번 라운드에서 필요한 것은 incident recovery 순서, recovery 흐름, 다음 장애를 위해 남길 postmortem action 입니다.

또 다른 API가 아닌 의사소통을 위한 "표준 언어"입니다.

MCP(모델 컨텍스트 프로토콜)은 Anthropic에서 제안한 개방형 통신 프로토콜로, AI 모델(예: Claude)이 외부 도구, 데이터 소스 및 개발 환경과 통합된 방식으로 상호 작용할 수 있습니다. OpenAI의 함수 호출 또는 사용자 정의 플러그인을 사용한 경우 MCP은 이 기능의 표준화된 버전입니다. 이는 AI가 요청하는 방법, 도구가 응답하는 방법 및 양측이 오류를 처리하는 방법을 정의합니다.

MCP를 이해해야 하는 이유는 무엇인가요?

로컬 로그 파일을 읽고 데이터베이스를 쿼리한 다음 결과에 따라 코드를 수정하기 위해 AI이 필요한 자동화 스크립트를 작성한다고 가정해 보겠습니다. 전통적인 접근 방식은 각 작업에 대한 사용자 정의 API를 작성하는 것이지만 MCP은 AI이 이러한 기능을 직접 검색하고 호출할 수 있도록 하는 통합 프로토콜을 제공합니다. 핵심 이점은 통합 비용을 줄이는 것입니다. 도구 개발자는 MCP 서버를 한 번만 구현하면 되며 MCP를 지원하는 모든 AI 클라이언트에서 사용할 수 있습니다.

MCP 작동 중: 시작부터 응답까지

MCP는 클라이언트-서버 모델을 사용하지만 역할은 기존 웹 API와 반대입니다.

  • AI 클라이언트(예: Claude Desktop, VS Code 확장 패키지)는 사용자와 상호 작용하고 외부 도구에 요청을 보내는 MCP 클라이언트 역할을 수행합니다.
  • 도구 서비스(예: 파일 시스템, 데이터베이스 쿼리)는 MCP 서버에 패키지되어 있으며, 각 서버는 "도구" 및 "리소스" 세트를 노출합니다.

일반적인 프로세스는 다음과 같습니다.

  1. 시작 및 협상: AI 클라이언트가 시작된 후 구성된 MCP 서버에 연결합니다. 서버는 "파일을 읽을 수 있습니다", "SQL 쿼리를 실행할 수 있습니다"와 같은 기능 목록을 보냅니다.
  2. 사용자 요청: 사용자가 "어제 서버의 오류 로그를 확인하고 이유를 요약하도록 도와주세요."를 입력합니다.
  3. AI 계획: AI은 요구 사항을 구문 분석하고 호출할 MCP 도구를 결정합니다. read_file(path="/var/log/nginx/error.log")과 같은 구조화된 요청을 생성합니다.
  4. 서버 실행: MCP 서버는 요청을 받고 해당 작업을 수행(파일 읽기)한 후 결과를 다시 보냅니다.
  5. AI 응답 구성: AI은 결과를 수신하고 다른 도구(예: 데이터베이스 쿼리)를 호출한 다음 최종적으로 자연어로 사용자에게 응답합니다.

프로세스 전반에 걸쳐 MCP은 요청 및 응답 형식이 일관되고 오류 처리(예: 권한 부족, 파일 없음)도 프로토콜을 따르도록 보장합니다.

실제 시나리오: MCP을 사용하여 자동으로 디버깅

AI가 Docker 컨테이너를 직접 작동할 수 있도록 프로젝트에 MCP를 설정한 적이 있습니다. 구체적인 방법은 MCP 서버를 작성하고 exec_container(컨테이너의 명령 실행) 및 read_logs(컨테이너 로그 읽기)라는 두 가지 도구를 노출하는 것입니다. 컨테이너 충돌이 발생하면 "컨테이너 abc의 충돌 로그를 보고 메모리 사용량을 확인하세요"라고 묻기만 하면 AI이 read_logsexec_container를 차례로 호출하고 결과를 보고합니다. 이렇게 하면 수동으로 창을 전환하고 명령을 입력하는 시간이 절약됩니다.

MCP 마이그레이션 체크리스트는 실패 대안 및 구현 단계에 해당하는 단락과 함께 노트북 화면에 표시됩니다.

가장 쉬운 함정: 권한 및 보안 경계

MCP 가장 큰 위험은 AI에 너무 많은 작업 권한을 부여하는 것입니다. 프로토콜 자체는 보안 제한을 적용하지 않으므로 일반적인 실패 시나리오는 다음과 같습니다.

  • 권한 누출: MCP를 통해 AI에 파일 시스템에 대한 액세스 권한을 부여하면 모든 파일을 읽을 수 있습니다. 코드에 민감한 정보(예: API 키)가 있는 경우 실수로 노출될 수 있습니다.
  • 무한 루프: 한 도구의 출력은 다른 도구의 입력으로 사용되어 지속적으로 콜백하는 루프를 형성합니다. 예를 들어 AI은 "파일 B도 읽어주세요"가 포함된 파일을 읽으므로 B를 읽기 위해 자신을 호출하고 B는 A를 가리켜 요청이 누적됩니다.
  • 통제되지 않은 부작용: AI는 사용자 확인 없이 작성 도구(예: 프로필 수정 또는 이메일 보내기)를 호출합니다.

이를 방지하는 방법은 무엇인가요?

  • 최소 권한의 원칙: 각 MCP 서버에 필요한 권한만 부여합니다. 예를 들어 로그를 읽는 서버에는 쓰기 기능이 없어야 합니다.
  • 수동 검토 추가: 서버 측에 "승인 필요" 버퍼를 구현하여 사용자가 고위험 작업(예: 쓰기 및 삭제)을 수동으로 확인하도록 요구합니다.
  • 시간 초과 및 계산 설정: 대화에서 최대 도구 호출 수를 제한하거나 각 호출에 대해 시간 초과를 설정하여 무한 루프를 방지합니다.

터미널에서 MCP 서버를 시작하고 텍스트의 시작 및 협상 단계에 해당하는 로그 화면을 표시합니다.

실패시 대안

MCP은 모든 시나리오에 적합하지 않습니다. 다음 상황에 직면하면 대체 옵션을 고려해야 합니다.

  • 엄격한 트랜잭션 제어 필요: MCP 요청은 독립적이며 교차 요청 트랜잭션 지원이 없습니다. 도구 체인이 원자성(예: 전송 및 추론 + 알림)을 보장해야 하는 경우 기존 API 조합을 사용하는 것이 더 안정적입니다.
  • 높은 긴급성 요구 사항: MCP의 통화 지연에는 AI의 계획 시간과 네트워크 왕복이 포함되어 있어 밀리초 수준의 응답 시나리오에는 적합하지 않습니다.
  • 극단적인 도구 수: 수백 개의 도구가 동시에 노출되면 AI 계획 시 혼란스러울 수 있으며, 잘못된 도구를 선택할 확률이 높아집니다. 이때는 대신 도구를 그룹화하거나 전담 에이전트를 사용하는 것을 고려해야 합니다.

다음 단계: 이해부터 구현까지

MCP를 자신의 프로젝트로 가져오려는 경우 작은 도구로 시작할 수 있습니다.

  1. Python SDK(공식 제공)를 사용하여 간단한 파일 읽기 서버를 빠르게 생성합니다.
  2. Claude Desktop 또는 VS Code용 Cline 확장에서 서버를 구성합니다.
  3. AI가 위험도가 낮은 일부 작업(예: 프로젝트의 특정 파일 읽기)을 수행하고 동작을 관찰하도록 합니다.

기본 프로세스에 익숙해지면 데이터베이스나 클라우드 서비스에 연결하는 등 보다 복잡한 통합에 도전할 수 있습니다. 보안 경계를 지속적으로 모니터링하고 AI이 의도한 것보다 더 많은 제어권을 갖지 않도록 하십시오.

댓글

아직 댓글이 없습니다

댓글 작성