View a markdown version of this page

MCP란 무엇입니까? - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

MCP란 무엇입니까?

LLMs 훈련 데이터를 기반으로 프롬프트에 대한 응답을 예측하여 작동합니다. 즉, LLM은 이미 본 데이터 및 이벤트에 대한 답변만 제공할 수 있습니다. Retrieval Augmented Generation(RAG) 및 지식 기반과 같은 방법을 사용하면 컨텍스트 데이터를 포함할 수 있습니다. 그러나 LLM에 내일의 일기 예보가 무엇인지 또는 데이터베이스에 몇 명의 고객이 있는지 묻는 경우 LLM의 사전 훈련된 지식을 벗어나기 때문에 할루시나 답변을 제공할 수 없을 가능성이 높습니다. 이러한 종류의 질문에 답하려면 에이전트가 LLM의 기본 컨텍스트 외부의 외부 기능, 데이터 및 APIs에 액세스해야 합니다.

도구 이해

도구를 통해 LLM에 추가 시스템 및 컨텍스트에 대한 액세스 권한을 부여할 수 있습니다. 도구는 명확한 목표를 달성하기 위해 LLM에 제공되는 함수입니다. 도구는 API를 호출하고, 데이터베이스를 쿼리하고, 계산기 작업을 수행하고, 코드 샌드박스를 운영하고, 웹 검색을 수행하고, 심지어 다른 AI 시스템 또는 agent-as-a-tool 호출할 수 있습니다. 각 도구에는 LLM에 도구의 기능, 사용 시기 및 수락하는 파라미터를 알려주는 설명이 포함되어야 합니다. 이를 통해 LLM은 사용자의 입력을 기반으로 호출할 도구 또는 도구 조합에 대해 미묘한 결정을 내릴 수 있습니다. 에이전트가 사용할 수 있는 도구에 대해 LLM에 알려주므로 에이전트가 도구를 호출하도록 지시하는 응답을 생성할 수 있습니다. 예를 들어 LLM에 데이터베이스에 몇 명의 고객이 있는지 묻는 경우 LLM은 특정 입력 파라미터로 query_database 도구를 실행하도록 요청하는 응답을 에이전트에게 다시 보냅니다. LLM은 호출할 도구와 도구 호출에 대한 입력을 결정합니다. 그런 다음 에이전트는 도구를 실행하여 자연어 입력을 구문적으로 올바른 함수 호출로 변환하고 쿼리를 실행합니다. 에이전트는 LLM의 지침에 따라 도구 또는 도구를 호출하고 해당 결과는 LLM으로 다시 전달됩니다. 이렇게 하면 텍스트 기반 입력을 추론하고 작업에 적합한 도구를 선택하는 LLM의 기능을 활용할 수 있습니다.

다음 이미지는 각 에이전트가 각 대상에 대한 자체 도구 세트를 관리하는 방법을 보여줍니다.

각 에이전트는 각 대상에 대해 자체 도구 세트를 관리합니다.

크기 조정 도구 액세스는 에이전트 AI 솔루션에 다음과 같은 문제를 일으킬 수 있습니다.

  • 모든 개발자가 동일한 외부 기능을 위한 자체 도구를 생성하는 경우 중복된 작업과 이러한 외부 기능과 상호 작용하는 비표준화된 방법이 많이 있습니다. 이렇게 하면 에이전트 간에 일관되지 않은 구현이 생성됩니다. 라이브러리에서 표준 도구를 개발하고 배포하여이 문제를 해결할 수 있지만 중앙 집중식 거버넌스가 부족합니다. 따라서 보안 정책을 적용하거나, 도구 사용량을 추적하거나, 팀 간 버전 관리를 관리하거나, 조직 표준을 준수하기가 어렵습니다. 또한 에이전트와 직접 도구를 임베드할 때는 새 도구가 생성되거나 기존 도구가 업데이트될 때마다 에이전트를 재배포해야 합니다.

  • LLM에 도구를 제공하면 컨텍스트 창이 사용됩니다. 컨텍스트 기간은 모델이 한 번에 고려할 수 있는 토큰 수(LLMs 처리하는 텍스트 단위 - 일반적으로 단어, 단어의 일부 또는 구두점을 나타냄)입니다. LLMs에는 컨텍스트 창 제한이 있습니다. 도구 및 설명서는 시스템 프롬프트 및 사용자 프롬프트와 함께이 유한 컨텍스트 창을 사용합니다. 컨텍스트 창이 채워지면 LLMs 관련 정보를 식별하는 데 어려움, 처리 복잡성 증가, 추론 용량 감소 등 여러 요인으로 인해 성능이 저하될 수 있습니다. 챌린지는 도구 정의, 시스템 프롬프트 및 대화 기록이 각 LLM 간접 호출에 제공되므로 제한된 컨텍스트 창 공간을 놓고 경쟁할 때 복잡해집니다.

따라서 도구 수와 문서화 방법은 응답 시간 및 정확도와 같은 LLM의 성능에 직접적인 영향을 미칩니다.

MCP는 에이전트를 외부 기능에 연결하기 위한 범용 표준을 설정합니다. 일반적으로 “AI 애플리케이션용 USB-C”라고 합니다. MCP 서버는 에이전트에 직접 도구를 등록하는 대신 JSON-RPC 2.0을 통해 검색 및 호출되는 호스팅 도구를 위한 중개자 역할을 합니다. MCP를 사용하면 에이전트에 수십 또는 수백 개의 다양한 도구를 추가하고 시간이 지남에 따라 유지 관리하는 대신 에이전트가 액세스할 수 있는 도구를 캡슐화하는 MCP 서버를 등록할 수 있습니다. 이 접근 방식은 도구를 패키징, 제공 및 호출하는 방법을 표준화합니다. 이를 통해 에이전트 내에서 도구 사용의 규모 및 거버넌스 문제를 해결할 수 있습니다. 또한 에이전트 개발 및 작업을 외부 기능에 사용하는 도구에서 분리합니다.

다음 그림은 MCP를 사용하여 외부 리소스에 액세스하는 에이전트를 보여줍니다.

모델 컨텍스트 프로토콜을 사용하여 외부 리소스에 액세스합니다.

그러나 MCP 표준이 모든 조정 및 거버넌스 문제를 해결하는 것은 아닙니다. MCP 서버의 구현은 효과적인 도구 설계, 호스팅 및 엔터프라이즈 거버넌스 전략과 결합되어야 합니다. 이 가이드는 에이전트 AI 솔루션의 일부로 MCP를 구축하고 사용하는 데 도움이 되는 각 전략의 모범 사례를 제공합니다.

MCP를 사용해야 하는 경우

MCP는 에이전트 AI 이니셔티브를 확장하기 위한 전략적 인프라를 제공합니다. MCP 서버는 도구 관리 및 거버넌스를 중앙 집중화하여 여러 에이전트에서 사용자 지정 통합을 구축하고 유지 관리하는 데 드는 누적 비용을 줄입니다. 이렇게 하면 에이전트 에코시스템이 확장됨에 따라 수익이 증가합니다.

다음과 같은 경우 MCP가 전략의 일부가 될 수 있습니다.

  • 에이전트가 데이터베이스, APIs, 내부 도구 및 타사 통합과 같은 엔터프라이즈 시스템 및 서비스에 액세스하는 방법에 대한 중앙 집중식 거버넌스가 필요합니다.

  • 개발자는 구현 간에 일관되지 않은 사용자 지정 통합을 작성하는 데 너무 많은 시간을 소비합니다.

  • 공통 기능을 제공할 수 있는 중복 도구가 있습니다.

  • 표준화된 관리형 MCP 인터페이스를 통해 외부 소비자 또는 타사 에이전트 시스템에 독점 도구 또는 데이터를 제공하여 보안 및 제어를 유지하면서 새로운 수익 스트림을 확보하려고 합니다.

MCP 서버가 전략의 일부가 될 것이라고 결정한 후 기존 오픈 소스 MCP 서버 구현이 요구 사항을 충족하는지, 개선이 필요한지 또는 사용자 지정 서버를 빌드해야 하는지 평가합니다. 사전 구축된 많은 MCP 서버 구현은 퍼블릭 리포지토리에서 사용할 수 있으며 파일 시스템 액세스, 웹 브라우징, 코드 샌드박스, 데이터베이스 액세스 및 API 통합과 같은 일반적인 기능을 다룹니다.

대부분의 경우 기존 MCP 서버면 충분합니다. 예를 들어AWS MCP 서버,는 AI 어시스턴트와 에이전트에게 자연어 상호 작용을 AWS 서비스 통해에 대한 안전하고 인증된 액세스를 제공하는 관리형 원격 MCP 서버인를 AWS 제공합니다. AWS MCP 서버 를 사용하면 AWS 설명서에 대한 실시간 액세스, 구문적으로 올바른 API 호출, 모범 사례를 따르는 AWS 에이전트 SOPs라는 사전 구축된 워크플로를 결합하여 복잡한 다단계 AWS 작업을 수행할 수 있습니다.는 고객 에이전트가 AWS MCP 서버 를 성공적으로 사용할 수 있도록 AWS 지속적으로 테스트합니다.

에이전트와 함께 이러한 기존 MCP 서버를 테스트하여 에이전트가 사용 사례를 충족하는지 확인해야 합니다. 에이전트가 워크플로를 완료하지 못하거나, 잘못되거나 최적화되지 않은 응답을 생성하거나, 복잡한 다단계 프로세스를 탐색하지 못하거나, 중요한 도메인별 모범 사례 또는 보안 고려 사항을 놓치는 경우 여러 차원의 개선 사항을 고려해야 합니다.

기존 MCP 서버가 요구 사항을 완전히 충족하지 못하고 기존 도구를 올바르게 사용하거나 정확한 응답을 생성하는 데 어려움을 겪는 경우 사용자 지정 서버를 구축하기 전에 다음 개선 접근 방식을 고려하세요.

  • 에이전트 컨텍스트 강화 - 에이전트가 기존 MCP 서버의 도구를 올바르게 또는 효율적으로 사용하는 데 어려움을 겪는 경우 해당 도구 정의를 추가 설명서 또는 예제로 보완하는 것이 좋습니다. 이렇게 하면 LLM에 추가 컨텍스트를 제공할 수 있습니다.

  • 보완 도구 추가 - 에이전트가 워크플로를 성공적으로 완료하는 데 필요한 추가 조직 데이터 또는 컨텍스트에 액세스하는 도구를 사용하여 기존 MCP 서버를 확장합니다.

  • 기본 APIs 개선 - 서비스 APIs 간소화하여 파라미터 복잡성을 줄이고, 더 명확한 오류 메시지를 제공하고, 에이전트가 사용할 수 있는 합리적인 기본값을 제공하여 LLM 친화적으로 만듭니다.

기존 MCP 서버 구현을 사용하면 일반적인 기능의 개발이 가속화되지만 사용 사례에 특수 기능이 필요한 경우 사용자 지정 MCP 서버를 구축하는 것이 필요합니다. 사용자 지정 MCP 서버를 사용하면 도메인 전문 지식을 캡슐화하고, 조직 표준을 적용하고, 복잡한 워크플로에 대한 에이전트 신뢰성을 개선하고, 보안 요구 사항 준수를 지원할 수 있습니다. 다음과 같은 상황에서는 사용자 지정 MCP 서버를 구축하는 것이 좋습니다.

  • 도메인별 워크플로 - 필요한 지식이 API 설명서에 캡처되지 않은 경우 도메인 전문 지식이 필요한 다단계 워크플로를 사용자 지정 MCP 도구에 캡슐화해야 합니다. 예를 들어 에이전트가 HIPAA(Health Insurance Portability and Accountability Act) 규정 준수를 검증하고 PII를 익명화하며 HL7 FHIR 형식으로 변환해야 하는 복잡한 의료 데이터 파이프라인을 오케스트레이션하도록 하는 대신 도메인 전문 지식을 직접 포함하는 process_patient_data 도구를 제공합니다. 이렇게 하면 LLM에 대한 종속성이 제거되어 워크플로 단계를 올바르게 오케스트레이션하고 실행할 수 있으므로 일관성과 규정 준수가 향상됩니다.

  • 골든 경로 추상화 - 에이전트는 조직 컨텍스트가 부족하고 기본적으로 조직 모범 사례가 아닌 기본 패턴이기 때문에 최적의 접근 방식을 구현하는 데 어려움을 겪을 수 있습니다. 이러한 시나리오에서는 사용자 지정 MCP 도구에서 이러한 골든 경로를 캡슐화하여 비용, 성능 또는 보안에 대한 규범적 표준을 적용할 수 있습니다. 예를 들어 에이전트가 안전하지 않거나 비효율적일 수 있는 기본 설정으로 인프라를 배포하도록 하는 대신 조직의 표준을 직접 포함하는 도구를 제공합니다 deploy_secure_infrastructure.

  • 복잡한 다중 서비스 오케스트레이션 - 각 단계에서 사용할 올바른 시퀀스와 서비스 세트를 추론하여 에이전트가 복잡한 워크플로를 오케스트레이션하도록 하는 대신 MCP 도구 내에서 해당 로직을 결정적으로 구축할 수 있습니다. 에이전트가 인식하지 못할 수 있는 최적의 서비스 통합 패턴에 대한 전문 지식을 제공할 수도 있습니다. 이렇게 하면 에이전트의 정확성과 효율성도 향상될 수 있습니다.

  • 서비스별 모범 사례 - 이는 에이전트가 에이전트 도구를 통해 액세스하는 서비스와 관련된 암호화 정책, 액세스 제어 및 규정 준수 패턴을 구현하는 데 도움이 되는 보안 중심 도구에 일반적으로 적용됩니다. 또한 명확하지 않은 서비스별 운영 모범 사례가 있는 경우 MCP 서버를 사용하면 MCP 서버를 구현하고 에이전트가 추론하지 않도록 하는 데 도움이 될 수 있습니다.