모델 컨텍스트 프로토콜(MCP) Python 구현
이 프로젝트는 Anthropic MCP 사양에 따라 Python으로 작동하는 모델 컨텍스트 프로토콜(MCP) 서버와 클라이언트를 구현합니다. 간단한 대화형 예제를 통해 MCP 프로토콜의 주요 패턴을 보여줍니다.
MCP란 무엇인가요?
모델 컨텍스트 프로토콜(MCP)은 JSON-RPC 2.0 기반으로 구축된 개방형 표준으로, AI 모델을 외부 데이터 소스 및 도구에 연결하기 위한 것입니다. AI 애플리케이션이 하나 이상의 MCP 서버와 통신하는 클라이언트-서버 아키텍처를 정의하며, 각 서버는 다음과 같은 기능을 제공합니다.
- 도구 : 작업을 수행하는 실행 가능한 함수
- 리소스 : 정보를 제공하는 데이터 소스
- 프롬프트 : 미리 정의된 템플릿 또는 워크플로
MCP는 이러한 기능이 발견되고 호출되는 방식을 표준화하여 모델이 구조화된 방식으로 외부 시스템과 상호 작용할 수 있도록 하는 "AI용 USB-C" 역할을 합니다.
프로젝트 구조
server/
: MCP 서버 구현server.py
: MCP 요청을 처리하고 샘플 도구/리소스를 제공하는 WebSocket 서버
client/
: MCP 클라이언트 구현client.py
: 서버에 연결하고 모든 MCP 기능을 실행하는 데모 클라이언트
시연된 기능
이 구현은 핵심 MCP 프로토콜 흐름을 보여줍니다.
- 기능 협상 :
initialize
통한 클라이언트-서버 핸드셰이크 - 역량 발견 : 사용 가능한 도구 및 리소스 나열
- 도구 호출 : 매개변수를 사용하여
add_numbers
도구 호출 - 리소스 액세스 : 리소스에서 텍스트 콘텐츠 읽기
설정
- 가상 환경 만들기:지엑스피1
- 종속성 설치:
용법
- MCP 서버를 시작합니다(한 터미널에서):
- (다른 터미널에서) MCP 클라이언트를 실행합니다.
클라이언트는 서버에 연결하고, 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 | 사용 가능한 프롬프트 나열 |
프로젝트 확장
다음을 통해 이 구현을 확장할 수 있습니다.
- 다양한 기능을 갖춘 도구 추가
- 읽을 때마다 변경되는 동적 리소스 추가
- 가이드 상호작용을 위한 프롬프트 템플릿 구현
- 더욱 상호 작용적인 클라이언트 애플리케이션 만들기
참고문헌
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
JSON-RPC를 통한 도구 호출 및 리소스 액세스를 지원하여 표준화된 프로토콜을 통해 AI 모델이 외부 도구 및 데이터 소스에 연결할 수 있도록 하는 MCP 서버의 Python 구현입니다.
Related MCP Servers
- -securityAlicense-qualityA Python-based MCP server that integrates OpenAPI-described REST APIs into MCP workflows, enabling dynamic exposure of API endpoints as MCP tools.Last updated -2109PythonMIT License
- -securityAlicense-qualityA streamlined foundation for building Model Context Protocol servers in Python, designed to make AI-assisted development of MCP tools easier and more efficient.Last updated -15PythonMIT License
- -securityFlicense-qualityA Python implementation of the Model Context Protocol (MCP) that connects client applications with AI models, primarily Anthropic's models, with setup instructions for local development and deployment.Last updated -Python
- -securityAlicense-qualityA dynamic MCP server that automatically discovers Python files in a directory and exposes them as tools to any MCP-compatible AI client, allowing users to easily create and deploy custom AI tools.Last updated -PythonMIT License