Skip to main content
Glama
suspicious-cow

Model Context Protocol (MCP) Server

모델 컨텍스트 프로토콜(MCP) Python 구현

이 프로젝트는 Anthropic MCP 사양에 따라 Python으로 작동하는 모델 컨텍스트 프로토콜(MCP) 서버와 클라이언트를 구현합니다. 간단한 대화형 예제를 통해 MCP 프로토콜의 주요 패턴을 보여줍니다.

MCP란 무엇인가요?

모델 컨텍스트 프로토콜(MCP)은 JSON-RPC 2.0 기반으로 구축된 개방형 표준으로, AI 모델을 외부 데이터 소스 및 도구에 연결하기 위한 것입니다. AI 애플리케이션이 하나 이상의 MCP 서버와 통신하는 클라이언트-서버 아키텍처를 정의하며, 각 서버는 다음과 같은 기능을 제공합니다.

  • 도구 : 작업을 수행하는 실행 가능한 함수

  • 리소스 : 정보를 제공하는 데이터 소스

  • 프롬프트 : 미리 정의된 템플릿 또는 워크플로

MCP는 이러한 기능이 발견되고 호출되는 방식을 표준화하여 모델이 구조화된 방식으로 외부 시스템과 상호 작용할 수 있도록 하는 "AI용 USB-C" 역할을 합니다.

Related MCP server: MCP Server Python Template

프로젝트 구조

  • server/ : MCP 서버 구현

    • server.py : MCP 요청을 처리하고 샘플 도구/리소스를 제공하는 WebSocket 서버

  • client/ : MCP 클라이언트 구현

    • client.py : 서버에 연결하고 모든 MCP 기능을 실행하는 데모 클라이언트

시연된 기능

이 구현은 핵심 MCP 프로토콜 흐름을 보여줍니다.

  1. 기능 협상 : initialize 통한 클라이언트-서버 핸드셰이크

  2. 역량 발견 : 사용 가능한 도구 및 리소스 나열

  3. 도구 호출 : 매개변수를 사용하여 add_numbers 도구 호출

  4. 리소스 액세스 : 리소스에서 텍스트 콘텐츠 읽기

설정

  1. 가상 환경 만들기:

    지엑스피1

  2. 종속성 설치:

    pip install -r requirements.txt

용법

  1. MCP 서버를 시작합니다(한 터미널에서):

    python server/server.py
  2. (다른 터미널에서) MCP 클라이언트를 실행합니다.

    python client/client.py

클라이언트는 서버에 연결하고, MCP 핸드셰이크를 수행하고, 기능을 검색하고, 도구를 호출하고, 포맷된 출력을 통해 리소스에 액세스하는 방법을 보여줍니다.

작동 원리

MCP 서버

서버:

  • WebSocket 연결을 허용합니다

  • MCP 사양에 따라 JSON-RPC 요청에 응답합니다.

  • 샘플 도구( add_numbers )를 제공합니다.

  • 샘플 리소스( example.txt )를 제공합니다.

  • MCP 핸드셰이크 및 기능 검색을 지원합니다.

MCP 클라이언트

고객:

  • WebSocket을 통해 서버에 연결합니다

  • MCP 핸드셰이크를 수행합니다.

  • 사용 가능한 도구와 리소스를 발견합니다

  • 도구 호출 및 리소스 읽기를 보여줍니다.

  • 결과를 형식화된 디스플레이로 표시합니다.

프로토콜 세부 정보

MCP는 다음과 같은 주요 방법을 구현합니다.

방법

설명

initialize

역량 확립을 위한 핸드셰이크

tools/list

사용 가능한 도구 나열

tools/call

인수를 사용하여 도구 호출

resources/list

사용 가능한 리소스 나열

resources/read

리소스 콘텐츠 읽기

prompts/list

사용 가능한 프롬프트 나열

프로젝트 확장

다음을 통해 이 구현을 확장할 수 있습니다.

  • 다양한 기능을 갖춘 도구 추가

  • 읽을 때마다 변경되는 동적 리소스 추가

  • 가이드 상호작용을 위한 프롬프트 템플릿 구현

  • 더욱 상호 작용적인 클라이언트 애플리케이션 만들기

참고문헌

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/suspicious-cow/MCP2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server