test-my-mcpserver

  • Linux
  • Apple

Integrations

  • Enables querying a vector database for RAG (Retrieval Augmented Generation) responses, allowing the LLM to retrieve information from stored knowledge base documents.

  • Implements tools for executing code and performing calculations, allowing the LLM to run Python functions to retrieve or process information.

MCP 서버와 LLM 상호 작용 표준화

모델 컨텍스트 프로토콜(MCP)은 애플리케이션이 LLM에 컨텍스트를 제공하는 방식을 표준화하는 개방형 프로토콜 입니다. 즉, LLM 기반 애플리케이션이 데이터 소스에 연결하고, 컨텍스트를 가져오고, 도구를 사용하고, 표준 프롬프트를 실행할 수 있는 통합 프레임워크를 제공합니다.

MCP 생태계는 세 가지 특정 구성 요소를 설명합니다.

  • MCP 서버는 다음을 처리합니다. 도구 가용성(사용 가능한 기능 공개), 도구 실행(요청 시 해당 기능 실행), 리소스로서의 정적 콘텐츠(참조 가능한 데이터 제공), 사전 설정 프롬프트(일반 작업을 위한 표준화된 템플릿)
  • 클라이언트 관리: 서버 연결, LLM 통합, 구성 요소 간 메시지 전달
  • 호스트는 프런트엔드 인터페이스, 사용자에게 MCP 기능 제공, 전체 생태계를 위한 통합 지점을 제공합니다.

이 아키텍처는 상호 운용성을 유지하면서 다양한 구성 요소를 독립적으로 개발할 수 있는 모듈식 시스템을 구축합니다. 이를 통해 사용자는 다양한 LLM 관련 기능을 위한 MCP 서버를 구축하고 다양한 지원 애플리케이션에서 플러그 앤 플레이 방식으로 사용할 수 있습니다. 일반적으로 서비스 API 및 도구를 통합하거나 사용자 컴퓨터의 로컬 데이터 소스에 연결하는 데 사용됩니다.

MCP 서버 구성 요소

MCP 서버는 명확하게 정의된 인터페이스를 통해 표준화된 기능을 제공함으로써 프로토콜의 기반을 형성합니다. 호스트와 클라이언트는 프로토콜 표준을 사용하여 이러한 서버에 연결할 수 있지만, 이러한 기능이 사용자에게 제공되는 방식은 개발자에게 유연하고 개방적입니다. 즉, 명령줄 인터페이스, 그래픽 애플리케이션 또는 대규모 시스템에 내장된 방식 등 실제 구현 및 사용자 경험은 전적으로 개발자에게 달려 있습니다.

이 가이드에서는 핵심 기능을 갖춘 MCP 서버 예시와 간단한 클라이언트 구현을 통해 상호작용 패턴을 보여주는 데 중점을 두겠습니다. 먼저 MCP 서버의 주요 구성 요소를 살펴보겠습니다.

도구

도구는 LLM이 작업을 수행하거나 정보를 검색하기 위해 호출할 수 있는 함수입니다. 각 도구는 다음과 같이 정의됩니다.

지엑스피1

도구를 사용하면 LLM이 외부 시스템과 상호 작용하고, 코드를 실행하고, 데이터베이스를 쿼리하고, 계산을 수행할 수 있습니다. 도구는 영향을 미치는 작업을 나타내거나 새로운 정보를 계산합니다.

자원

리소스는 클라이언트 애플리케이션에서 액세스할 수 있는 데이터 소스를 나타냅니다. 리소스는 URI로 식별되며 다음을 포함할 수 있습니다.

{ uri: string; // Unique identifier for the resource name: string; // Human-readable name description?: string; // Optional description mimeType?: string; // Optional MIME type }

리소스는 정적(구성 파일처럼)이거나 동적(데이터베이스 레코드나 API 응답처럼)일 수 있습니다. 함수 호출 없이도 LLM에 컨텍스트를 제공합니다.

프롬프트

프롬프트는 특정 상호작용 패턴을 정의하는 재사용 가능한 템플릿입니다. 이를 통해 서버는 표준화된 대화 흐름을 제공할 수 있습니다.

{ name: string; // Unique identifier for the prompt description?: string; // Human-readable description arguments?: [ // Optional list of arguments { name: string; // Argument identifier description?: string; // Argument description required?: boolean; // Whether argument is required } ] }

프롬프트는 일반적인 작업에 대해 일관되고 목적에 맞는 상호작용을 만드는 데 도움이 되며, 사용자는 슬래시 명령과 같은 UI 요소를 통해 이를 호출할 수 있습니다.

참고: 도구는 LLM 상호작용(함수 호출과 유사)을 위해 특별히 설계되었지만, 프롬프트와 리소스는 MCP 생태계에서 서로 다른 용도로 사용됩니다. 프롬프트는 일반적으로 슬래시 명령과 같은 UI 요소를 통해 직접 호출할 수 있는 사용자 제어 템플릿이고, 리소스는 LLM 컨텍스트에 포함되기 전에 사용자에게 선택되도록 표시될 수 있는 애플리케이션 제어 데이터 소스입니다.

더 자세한 내용과 추가 기능은 MCP 공식 문서 에서 확인할 수 있습니다.


예제 설정

MCP 서버는 도구, 리소스, 프롬프트를 강조합니다. 핵심 개념은 다음과 같은 기능을 갖춘 간단한 지식 기반 챗봇 흐름을 만드는 것입니다.

  1. LLM이 도구를 사용하여 RAG 응답에 대한 벡터 데이터베이스를 쿼리하도록 합니다.
  2. 사용자가 기존 리소스를 선택하여 컨텍스트를 제공하도록 합니다.
  3. 사용자가 보다 복잡한 분석 워크플로에 대한 표준 프롬프트를 실행하도록 합니다.

위의 다이어그램은 mcp_server.py 에 구현되어 있으며, 이에 상응하는 간단한 CLI 클라이언트는 client.py 에 있습니다.

유용한 자료로, 공식 통합 및 커뮤니티에서 만든 서버를 알아보려면 MCP 서버 목록을 확인하세요.


설정 및 설치

  1. 저장소 복제
git clone https://github.com/ALucek/quick-mcp-example.git cd quick-mcp-example
  1. ChromaDB 데이터베이스 생성

MCP_setup.ipynb 의 지침에 따라 벡터 데이터베이스를 만들고 PDF를 삽입합니다.

  1. 가상 환경 생성 및 패키지 설치
# Using uv (recommended) uv venv source .venv/bin/activate # On macOS/Linux # OR .venv\Scripts\activate # On Windows # Install dependencies uv sync
  1. 클라이언트 및 서버 실행
python client.py mcp_server.py
-
security - not tested
F
license - not found
-
quality - not tested

시험

  1. MCP Server Components
    1. Tools
    2. Resources
    3. Prompts
  2. Setting Up Our Example
    1. Setup and Installation
      ID: gjpoubbada