모델 컨텍스트 프로토콜(MCP)이란 무엇일까요?

MCP는 왜 만들어졌을까요? 표준 통합 계층의 필요성 때문입니다

모델 컨텍스트 프로토콜(MCP)은 에이전틱 AI 애플리케이션을 구축할 때 발생하는 고립된 대규모 언어 모델(LLM)을 외부 세계와 연결하는 문제를 해결하기 위해 만들어졌습니다. 기본적으로 LLM은 강력한 추론 엔진이지만, 지식이 학습 시점에 고정되어 있어 정적이며, 실시간 데이터에 액세스하거나 외부 시스템에서 동작을 실행하는 기본 기능이 부족합니다.

LLM을 외부 시스템에 연결하는 것은 전통적으로 직접 맞춤형 API 통합을 통해 이루어졌습니다. 이 접근 방식은 효과적이지만 각 애플리케이션 개발자가 모든 도구의 특정 API를 학습하고, 쿼리를 처리하고 결과를 구문 분석하는 코드를 작성해야 하며, 시간이 지나도 연결을 유지관리해야 한다는 단점이 있습니다. AI 애플리케이션과 사용 가능한 도구의 수가 증가함에 따라 보다 표준화되고 효율적인 방법이 필요합니다.

MCP는 웹 서비스용 REST와 개발자 도구를 위한 언어 서버 프로토콜(LSP)과 같은 검증된 표준에서 영감을 얻어 이 표준화된 프로토콜을 제공합니다. 모든 애플리케이션 개발자가 모든 도구의 API에 대한 전문가가 되라고 강요하는 대신, MCP는 이 연결 계층을 위한 공통 언어를 설정합니다.

이를 통해 우려 사항이 깔끔하게 분리됩니다. 플랫폼 및 도구 제공업체는 본질적으로 LLM 친화적인 재사용 가능한 단일 MCP 서버를 통해 서비스를 제공할 수 있게 됩니다. 통합 유지관리 책임은 개별 AI 애플리케이션 개발자에서 외부 시스템 소유자로 이전됩니다. 이는 모든 호환 애플리케이션이 호환 도구에 연결할 수 있는 강력하고 상호 운용 가능한 에코시스템을 조성하여 개발 및 유지관리를 획기적으로 간소화합니다.

diagram-what-is-mcp-01.png

MCP 작동 방식: 핵심 아키텍처

MCP 아키텍처

MCP는 추론 엔진(LLM)을 외부 기능 집합과 연결하기 위해 설계된 클라이언트-서버 모델을 기반으로 운영됩니다. 이 아키텍처는 LLM에서 시작하여 외부 세계와 상호작용을 할 수 있는 구성 요소를 점진적으로 공개합니다.

diagram-what-is-mcp-02.png

이 아키텍처는 세 가지 핵심 요소로 구성됩니다.

  1. 호스트는 MCP(예: Claude Desktop, IDE, AI 에이전트)를 통해 데이터에 액세스하려는 LLM 애플리케이션입니다.
  2. 서버는 MCP를 통해 각각 특정 기능을 노출하는 경량 프로그램입니다.
  3. 클라이언트는 호스트 애플리케이션 내에 있는 서버와 1:1 연결을 유지관리합니다.

MCP 클라이언트 또는 호스트

diagram-what-is-mcp-03.png

MCP 클라이언트 또는 호스트는 LLM과 하나 이상의 MCP 서버 간의 상호작용을 오케스트레이션하는 애플리케이션입니다. 클라이언트는 앱의 특정 로직을 포함하고 있으므로 매우 중요합니다. 서버는 원시 기능을 제공하지만 클라이언트는 이를 사용할 책임이 있습니다. 이를 위해 다음과 같은 기능을 수행합니다.

  • 프롬프트 조립: 다양한 서버에서 컨텍스트를 수집하여 LLM을 위한 최종적이고 효과적인 프롬프트 구성
  • 상태 관리: 여러 상호작용에 걸쳐 대화 기록과 사용자 컨텍스트 유지관리
  • 오케스트레이션: 어떤 서버에 어떤 정보를 쿼리할지 결정하고 LLM이 도구를 사용하기로 결정할 때 로직 실행

MCP 클라이언트는 표준 네트워크 요청(일반적으로 HTTPS를 통해)을 사용하여 알려진 서버 엔드포인트에 연결합니다. 이 프로토콜의 강점은 클라이언트와 서버 간의 통신 계약을 표준화한다는 점입니다. 프로토콜 자체는 JSON 기반 형식을 사용하는 언어 독립적인 프로토콜입니다. 따라서 어떤 언어로 개발되었든 모든 클라이언트는 모든 서버와 올바르게 통신할 수 있습니다.

MCP 사양의 클라이언트 예

 

MCP 서버

MCP 서버는 특정 데이터 소스 또는 도구에 대한 표준화된 래퍼 역할을 하는 백엔드 프로그램입니다. 이 프로토콜은 MCP 사양을 구현해 네트워크를 통해 실행 가능한 도구나 데이터 리소스와 같은 기능을 노출합니다. 이는 모든 MCP 클라이언트가 이해할 수 있도록 특정 서비스(예: 데이터베이스 쿼리나 타사 REST API)의 고유한 프로토콜을 MCP의 공통 언어로 변환합니다.

MCP 사양의 서버 예

실습: 첫 번째 MCP 서버를 어떻게 만들 수 있을까요?

도구를 노출하는 서버를 예를 들어 살펴보겠습니다(도구의 정의는 아래에서 더 자세히 설명합니다). 이 서버는 클라이언트의 두 가지 주요 요청을 처리해야 합니다.

  1. SDK를 설치합니다.
    # Python
    pip install mcp
    
    # Node.js
    npm install @modelcontextprotocol/sdk
    
    # Or explore the specification
    git clone https://github.com/modelcontextprotocol/specification
    
  2. 첫 번째 서버를 만듭니다.
    from mcp.server.fastmcp import FastMCP
    import asyncio
    
    mcp = FastMCP("weather-server")
    
    @mcp.tool()
    async def get_weather(city: str) -> str:
        """Get weather for a city."""
        return f"Weather in {city}: Sunny, 72°F"
    
    if __name__ == "__main__":
        mcp.run()
    
    
    
  3. Claude Desktop에 연결합니다.
    {
      "mcpServers": {
        "weather": {
          "command": "python",
          "args": ["/full/path/to/weather_server.py"],
          "env": {}
        }
      }
    }
    
    

공식 SDK 및 리소스

공식 오픈 소스 SDK를 사용하여 자체 MCP 클라이언트 및 서버를 구축할 수 있습니다.

MCP 도구

도구는 MCP 서버가 클라이언트에 노출하는 특정하고 실행 가능한 기능입니다. 파일이나 문서 같은 수동적 데이터 리소스와 달리, 도구는 이메일 전송, 프로젝트 티켓 생성, 실시간 데이터베이스 쿼리 등 LLM이 실행 여부를 결정할 수 있는 동작을 나타냅니다.

도구는 다음과 같은 방식으로 서버와 상호작용합니다. MCP 서버는 자신이 제공하는 도구를 선언합니다. 예를 들어 Elastic 서버는 `list_indices` 도구를 노출하며, 이 도구의 이름, 목적, 및 필요한 매개변수(예: `list_indices`, `get_mappings`, `get_shards`, 및 `search`)를 정의합니다.

클라이언트는 서버에 연결하여 사용 가능한 도구를 검색합니다. 또한 사용 가능한 도구를 시스템 프롬프트 또는 컨텍스트의 일부로 LLM에 제시합니다. LLM의 출력에 도구 사용 의도가 표시되면 클라이언트는 이를 구문 분석하여 지정된 매개변수로 해당 도구를 실행하도록 해당 서버에 공식 요청합니다.

MCP 사양의 도구 패턴 예

실습: 낮은 수준의 MCP 서버 구현

낮은 수준의 예제는 프로토콜의 메커니즘을 이해하는 데 유용하지만, 대부분의 개발자는 공식 SDK를 사용해 서버를 구축합니다. SDK가 메시지 구문 분석, 요청 라우팅과 같은 프로토콜의 반복 작업을 처리하므로 개발자는 도구의 핵심 로직에만 집중할 수 있습니다.

다음 예제에서는 공식 MCP Python SDK를 사용하여 get_current_time 도구를 노출하는 간단한 서버를 만듭니다. 이 접근 방식은 낮은 수준의 구현보다 훨씬 더 간결하고 선언적입니다.

import asyncio
import datetime
from typing import AsyncIterator

from mcp.server import (
    MCPServer,
    Tool,
    tool,
)

# --- 도구 구현 ---
# SDK의 @tool 데코레이터는 등록 및 스키마 생성을 처리합니다.
# 저희는 MCP 도구로 노출될 간단한 비동기 함수를 정의합니다.

@tool
async def get_current_time() -> AsyncIterator[str]:
    """
    현재 UTC 시간과 날짜를 ISO 8601 스트링으로 반환합니다.
    
    이 문서 문자열은 자동으로 LLM의 도구 설명으로 사용됩니다.
    """
    # SDK는 비동기 반복자를 기대하므로 결과를 반환합니다.
    datetime.datetime.now(datetime.timezone.utc).isoformat()을 반환합니다


# --- 서버 정의 ---
# 노출하고자 하는 도구를 전달하여 MCPServer의 인스턴스를 생성합니다.
# SDK는 @tool로 데코레이트된 모든 함수를 자동으로 탐지합니다.

SERVER = MCPServer(
    tools=[
        # SDK는 자동으로 데코레이트된 함수를 선택합니다.
        Tool.from_callable(get_current_time),
    ],
)


# --- 주 실행 블록 ---
# SDK는 서버를 실행하기 위한 주요 진입점을 제공합니다.
# 이것은 모든 기본 통신 로직(stdio, HTTP 등)을 처리합니다.

async def main() -> None:
    """Runs the simple tool server."""
    await SERVER.run()


if __name__ == "__main__":
    asyncio.run(main())



이 실습 예제는 SDK를 사용하여 MCP 서버를 구축하는 데 있어 SDK의 강력한 기능을 보여줍니다.

  1. @tool 데코레이터: 이 데코레이터는 get_current_time 함수를 MCP 도구로 자동 등록합니다. 이 기능은 함수의 시그니처와 독스트링을 분석하여 프로토콜에 필요한 스키마와 설명을 자동으로 생성하므로 이를 일일이 수동으로 작성할 필요가 없습니다.
  2. MCPServer 인스턴스: MCPServer 클래스는 SDK의 핵심입니다. 노출하려는 도구 목록을 제공하기만 하면 나머지는 자동으로 처리됩니다.
  3. SERVER.run(): 이 단일 명령은 서버를 시작하고 stdio 또는 HTTP와 같은 다양한 전송 방법을 처리하는 것을 포함하여 모든 낮은 수준 통신을 관리합니다.

보시다시피 SDK는 프로토콜의 복잡성을 거의 모두 추상화하여 단 몇 줄의 Python 코드로 강력한 도구를 정의할 수 있습니다.

3가지 핵심 기본 요소

diagram-what-is-mcp-04.png

MCP는 LLM이 외부 세계와 상호작용하는 방식을 표준화하기 위해 서버가 노출할 수 있는 세 가지 핵심 기본 요소를 정의합니다. 이러한 기본 요소는 LLM을 외부 기능에 연결하기 위한 완전한 시스템을 제공합니다.

  1. 리소스: 컨텍스트 제공
    • 기능: 데이터 액세스
    • 비유: GET 엔드포인트
    • 리소스는 LLM에 컨텍스트를 제공하는 주요 메커니즘입니다. 이는 문서, 데이터베이스 기록, 검색 쿼리 결과처럼 모델이 검색하여 응답에 활용할 수 있는 데이터 소스를 나타냅니다. 일반적으로 읽기 전용 작업입니다.
  2. 도구: 작업 활성화
    • 기능: 기능: 작업 및 연산
    • 비유: POST 또는 PUT 엔드포인트
    • 도구는 LLM이 동작을 수행하고 외부 시스템에 직접적인 영향을 미칠 수 있도록 하는 실행 가능한 기능입니다. 이 기능 덕분에 에이전트는 단순한 데이터 검색을 넘어, 이메일 전송, 프로젝트 티켓 생성, 타사 API 호출과 같은 작업까지 수행할 수 있습니다.
  3. 프롬프트: 상호작용 안내
    • 기능: 상호작용 템플릿
    • 비유: 워크플로우 레시피
    • 프롬프트는 LLM이 사용자 또는 시스템과 상호작용하는 방식을 안내하는 재사용 가능한 템플릿입니다. 이를 통해 개발자는 공통적이거나 복잡한 대화 흐름을 표준화하여 모델이 보다 일관되고 신뢰할 수 있는 동작을 하도록 할 수 있습니다.

모델 컨텍스트 프로토콜 자체

핵심 개념

MCP는 LLM 애플리케이션(호스트)이 외부 데이터 및 기능(서버)과 통합할 수 있는 표준화된 방법을 제공합니다. 이 사양은 JSON-RPC 2.0 메시지 형식을 기반으로 하며, 상태를 가진 풍부한 상호작용을 가능하게 하는 필수 및 선택 구성 요소 집합을 정의합니다.

핵심 프로토콜 및 기능

MCP의 핵심은 통신 계층을 표준화하는 것입니다. 모든 구현은 기본 프로토콜과 수명 주기 관리를 지원해야 합니다.

  • 기본 프로토콜: 모든 통신은 표준 JSON-RPC 메시지(요청, 응답, 및 알림)를 사용합니다.
  • 서버 기능: 서버는 클라이언트에 다음 기능의 조합을 제공할 수 있습니다.
    • 리소스: 사용자 또는 모델이 소비할 수 있는 컨텍스트 데이터
    • 프롬프트: 템플릿 메시지 및 워크플로우
    • 도구: LLM이 호출할 수 있는 실행 가능한 기능
  • 클라이언트 기능: 클라이언트는 서버에 다음과 같은 기능을 제공하여 더 발전된 양방향 워크플로우를 구현할 수 있습니다.
    • 샘플링: 서버가 에이전틱 동작 또는 재귀적 LLM 상호작용을 시작할 수 있도록 허용
    • 유도: 서버가 사용자에게 추가 정보 요청 가능

MCP 기본 프로토콜

MCP는 기본 프로토콜과 수명 주기 관리라는 필수적인 기반 위에 구축되었습니다. 클라이언트와 서버 간의 모든 통신은 JSON-RPC 2.0 사양을 준수해야 하며, 이 사양은 세 가지 메시지 유형을 정의합니다.

  • 요청: 전송하여 작업을 시작합니다. 추적을 위해 고유한 스트링 또는 정수 id가 필요하며, 동일한 세션 내에서 id를 재사용해서는 안 됩니다.
  • 응답: 요청에 대한 회신으로 전송됩니다. 원래의 요청 id를 포함해야 하며, 성공한 작업의 경우 result 객체를, 실패한 작업의 경우 error 객체를 포함해야 합니다.
  • 알림: 수신자로부터 응답을 요구하지 않는 ID 없이 전송되는 단방향 메시지입니다.

클라이언트 기능: 고급 워크플로우 활성화

클라이언트는 더 복잡한 양방향 통신을 위해 서버에 기능을 제공할 수도 있습니다.

  • 샘플링: 샘플링은 서버가 클라이언트를 통해 LLM에 추론을 요청할 수 있도록 합니다. 이는 도구가 작업을 완료하기 전에 더 많은 정보를 얻기 위해 LLM에 다시 질문해야 할 수 있는 다단계 에이전틱 워크플로우를 구현할 때 강력한 기능입니다.
  • 유도: 유도는 서버가 최종 사용자에게 더 많은 정보를 요청할 수 있는 공식적인 메커니즘을 제공합니다. 이는 작업을 진행하기 전에 추가 확인이나 명확화가 필요한 대화형 도구에 매우 중요합니다.

서버 기능: 기능 노출

서버는 표준화된 기능 집합을 통해 클라이언트에 기능을 노출합니다. 서버는 다음과 같은 조합을 구현할 수 있습니다.

  • 도구: 도구는 LLM이 작업을 수행할 수 있도록 하는 주요 메커니즘입니다. 서버가 외부 시스템과 상호작용할 수 있도록 노출하는 실행 가능한 기능입니다. 예를 들어 제3자 API를 호출하거나, 데이터베이스를 쿼리하거나, 파일을 수정하는 등의 작업을 수행합니다.
  • 리소스: 리소스는 LLM이 검색할 수 있는 컨텍스트 데이터의 출처를 나타냅니다. 작업 수행에 사용되는 도구와 달리, 리소스는 주로 읽기 전용 데이터 검색에 사용됩니다. LLM을 실시간 외부 정보에 연결하는 메커니즘이며 고급 RAG 파이프라인의 핵심 구성 요소입니다.
  • 프롬프트: 서버는 클라이언트가 사용할 수 있는 사전 정의된 프로프트 템플릿을 노출할 수 있습니다. 이를 통해 공통적이거나 복잡하거나 고도로 최적화된 프롬프트를 표준화하고 공유하여 일관된 상호작용을 보장할 수 있습니다.

보안 및 신뢰

이 사양은 보안에 중점을 두며, 구현자가 따라야 할 주요 원칙을 명확히 제시합니다. 프로토콜 자체가 이러한 규칙을 강제할 수 없습니다. 책임은 애플리케이션 개발자에게 있습니다.

  • 사용자 동의 및 제어: 사용자는 모든 데이터 액세스 및 도구 호출에 대해 명시적으로 동의하고 이를 제어할 수 있어야 합니다. 권한 부여를 위한 명확한 UI가 필수입니다.
  • 데이터 개인정보 보호: 호스트는 명시적 동의 없이 사용자 데이터를 서버로 전송해서는 안 되며 적절한 액세스 제어를 구현해야 합니다.
  • 도구 안전: 도구 호출은 임의 코드 실행을 의미하므로 신중하게 다루어야 합니다. 호스트는 도구를 호출하기 전에 사용자에게 명시적 동의를 얻어야 합니다.

MCP가 왜 그렇게 중요할까요?

MCP의 핵심 이점은 모델과 도구 간의 통신 및 상호작용 계층을 표준화한다는 데 있습니다. 이를 통해 개발자를 위한 예측 가능하고 안정적인 에코시스템을 구축할 수 있습니다. 표준화의 주요 영역은 다음과 같습니다.

  • 통일된 커넥터 API: 모든 외부 서비스를 연결하기 위한 일관된 단일 인터페이스
  • 표준화된 컨텍스트: 세션 기록, 임베딩, 도구 출력, 장기 기억과 같은 중요한 정보를 전달하기 위한 범용 메시지 형식
  • 도구 호출 프로토콜: 외부 도구 호출을 대한 합의된 요청 및 응답 패턴으로 예측 가능성 보장
  • 데이터 흐름 제어: 필터링, 우선순위 지정, 스트리밍, 컨텍스트 일괄 처리를 위한 기본 제공 규칙으로 신속한 구성 최적화
  • 보안 및 인증 패턴: 데이터 교환 보안을 위한 API 키 또는 OAuth 인증, 속도 제한, 암호화용 공통 후크
  • 수명 주기 및 라우팅 규칙: 컨텍스트를 가져오는 시기, 캐시 기간, 시스템 간 데이터를 라우팅하는 방법을 정의하는 규칙
  • 메타데이터 및 통합 가시성: 연결된 모든 모델과 도구에서 일관된 로깅, 메트릭 및 분산 추적을 가능하게 하는 통합 메타데이터 필드
  • 확장 포인트: 사전 및 사후 처리 단계, 맞춤형 유효성 검사 규칙, 플러그인 등록과 같은 맞춤형 로직을 추가하기 위해 정의된 후크

대규모 구현: 'M×N' 또는 승수적 확장 통합의 악몽 해결

빠르게 확장되는 AI 환경에서 개발자는 심각한 통합 문제에 직면해 있습니다. AI 애플리케이션(M)은 데이터베이스와 검색 엔진부터 API, 코드 저장소에 이르기까지 수많은 외부 데이터 소스와 도구(N)에 액세스해야 합니다. 표준화된 프로토콜이 없으면 개발자는 각 애플리케이션과 데이터 소스 쌍마다 고유한 맞춤형 통합을 구축하고 유지관리해야 하는 일명 'M×N 문제'에 직면하게 됩니다.

이 접근 방식은 몇 가지 중요한 문제를 야기합니다.

  • 중복된 개발자 노력: 새로운 AI 애플리케이션마다 팀이 동일한 통합 문제를 반복적으로 해결해야 하므로 귀중한 시간과 자원이 낭비됩니다.
  • 압도적 복잡성: 서로 다른 데이터 소스가 고유한 방식으로 유사한 기능을 처리하여 복잡하고 일관성 없는 통합 계층이 만들어집니다.
  • 과도한 유지관리: 표준화가 부족하면 맞춤형 통합으로 구성된 취약한 에코시스템이 형성됩니다. 단일 도구의 API가 사소한 업데이트나 변경으로 인해 연결이 끊어질 수 있으므로 지속적인 사후 대응 유지관리가 필요합니다.

MCP는 이 M×N 문제를 훨씬 더 간단한 M+N 방정식으로 변환합니다. 범용 표준을 수립하면 개발자가 애플리케이션용 클라이언트 M개와 도구용 서버 N개만 구축하면 되므로 복잡성과 유지관리 부담이 획기적으로 줄어듭니다.

에이전틱 접근 방식 비교

MCP는 Retrieval-Augmented Generation(RAG)과 같은 인기 있는 패턴이나 LangChain과 같은 프레임워크의 대안이 아니라 이러한 기술을 더 강력하고 모듈화되며 쉽게 유지관리할 수 있게 만드는 기초적인 연결 프로토콜입니다. 이는 통합의 최종 단계를 표준화함으로써 애플리케이션을 외부 도구와 연결하는 보편적인 문제를 해결합니다.

최신 AI 스택에 MCP를 적용하는 방법은 다음과 같습니다.

고급 RAG 기술 지원

표준 RAG는 강력하지만 정적 벡터 데이터베이스에 연결되는 경우가 많습니다. 고급 사용 사례의 경우 복잡한 실시간 시스템에서 동적 정보를 검색해야 합니다.

  • MCP 미사용: 개발자가 RAG 애플리케이션을 Elasticsearch와 같은 검색 API의 특정 쿼리 언어에 직접 연결하기 위해 맞춤형 코드를 작성해야 합니다.
  • MCP 사용: 검색 시스템이 표준 MCP 서버를 통해 기능을 노출합니다. 이제 RAG 애플리케이션이 기본 시스템의 특정 API를 알 필요 없이 간단하고 재사용 가능한 MCP 클라이언트를 사용하여 이 라이브 데이터 소스를 쿼리할 수 있습니다. 이를 통해 RAG 구현이 더 깔끔해지고, 향후 다른 데이터 소스로 교체하기도 더 쉬워집니다.

에이전틱 프레임워크(예: LangChain, LangGraph)와의 통합

에이전틱 프레임워크는 애플리케이션 로직을 구축하는 데 훌륭한 도구를 제공하지만, 여전히 외부 도구와 연결하는 방법이 필요합니다.

  • 대안
    • 맞춤형 코드: 처음부터 직접 통합을 작성해야 하므로 상당한 엔지니어링 노력과 지속적인 유지관리 필요
    • 프레임워크별 도구 세트: 미리 구축된 커넥터를 사용하거나 특정 프레임워크에 대한 맞춤형 래퍼를 작성하는 방식(이 경우 해당 프레임워크의 아키텍처에 종속되며, 그 에코시스템에 묶이게 됩니다)
  • MCP의 장점: MCP는 개방형 범용 표준을 제공합니다. 도구 제공자는 자사 제품을 위한 단일 MCP 서버를 만들 수 있습니다. 이제 LangChain, LangGraph, 또는 맞춤형 구축 솔루션 등 어떤 프레임워크든 일반 MCP 클라이언트를 통해 해당 서버와 상호작용할 수 있습니다. 이 접근 방식은 더 효율적이며 공급업체 종속을 방지합니다.

프로토콜이 모든 것을 간소화하는 이유

결국 MCP의 가치는 통합의 두 극단에 대한 개방적이고 표준화된 대안을 제공하는 데 있습니다.

  1. 맞춤형 코드를 작성하는 것은 취약하고, 유지관리 비용이 많이 듭니다.
  2. 프레임워크 전용 래퍼를 사용하면 반폐쇄적인 에코시스템과 공급업체 종속성이 생깁니다.

MCP는 통합의 소유권을 외부 시스템 소유자에게 이전하여 안정적인 단일 MCP 엔드포인트를 제공할 수 있도록 합니다. 그러면 애플리케이션 개발자는 이러한 엔드포인트를 간단히 사용할 수 있으므로 강력한 컨텍스트 인식 AI 애플리케이션을 구축, 확장 및 유지관리하는 데 필요한 작업을 대폭 간소화할 수 있습니다.

Elasticsearch MCP 서버 시작하기

Elasticsearch는 이제 호스트된 완전 관리형 MCP 서버를 제공합니다. 따라서 독립형 Docker 컨테이너 또는 로컬 Node.js 환경이 필요하지 않으며, 모든 MCP 호환 호스트에 영구적이고 안전한 게이트웨이를 제공합니다.

  1. 호스팅된 엔드포인트에 액세스

    버전 9.3 및 서버리스부터는 Search Project에 대해 MCP 서버가 기본적으로 활성화됩니다. Observability 및 Security 사용자의 경우 AI Assistant 구성을 통해 Agent Builder를 활성화하여 MCP 서버를 노출할 수 있습니다.

    전체 구현 세부 사항 및 플랫폼별 지침은 공식 Agent Builder 설명서를 참조하세요.

  2. MCP 클라이언트 구성

    활성화되면 MCP 호스트(예: Claude Desktop, VS Code 또는 Cursor)를 고유한 Elastic 엔드포인트로 가리키기만 하면 됩니다.

Claude Desktop의 구성 예시

JSON

{
  "mcpServers": {
    "elastic": {
      "command": "npx",
      "args": [
        "-y",
        "@elastic/mcp-server-elasticsearch",
        "--hosted-url",
        "https://YOUR_KIBANA_URL/api/agent_builder/mcp"
      ],
      "env": {
        "ES_API_KEY": "YOUR_ELASTIC_API_KEY"
      }
    }
  }
}

호스팅 버전을 사용하면 Elastic의 기본 보안 계층을 활용하고 컨텍스트 인식 에이전트가 로컬 프로세스 관리 없이도 데이터에 연중무휴 24시간 액세스할 수 있습니다.

MCP 및 AI에 대해 소통하세요

Elastic을 활용한 구축에 대해 더 자세히 알아보기

AI 및 지능형 검색 애플리케이션과 관련된 모든 최신 정보를 받아보세요. Elastic으로 구축하는 방법에 대해 자세히 알아보려면 리소스를 살펴보세요.

무료 실습 워크숍인 Elasticsearch MCP Server를 활용한 MCP 입문을 통해 지금 바로 구축을 시작하세요.