# Model Context Protocol (MCP) Python 구현 이 저장소에는 Model Context Protocol (MCP)의 Python 구현이 포함되어 있으며, MCP 표준을 사용하여 통신하는 서버와 클라이언트 애플리케이션을 만드는 방법을 보여줍니다. ## 개요 MCP 구현은 두 가지 주요 구성 요소로 이루어져 있습니다: 1. **MCP 서버 (`server.py`)** - 다음을 제공하는 서버: - **Tools**: 원격으로 호출할 수 있는 함수들 - **Resources**: 가져올 수 있는 데이터 - **Prompts**: 언어 모델용 프롬프트 템플릿 2. **MCP 클라이언트 (`client.py`)** - 서버에 연결하여 기능을 사용하는 클라이언트 애플리케이션 ## 기능 이 구현은 여러 주요 MCP 기능을 보여줍니다: ### Tools - `completion` - AI 모델로부터 텍스트 완성을 생성 (시뮬레이션) - `add` - 두 숫자를 더하는 간단한 계산기 ### Resources - `models://` - 사용 가능한 AI 모델에 대한 정보 반환 - `greeting://{name}` - 주어진 이름에 대한 맞춤 인사 반환 ### Prompts - `review_code` - 코드 리뷰용 프롬프트 생성 ## 설치 이 MCP 구현을 사용하려면 필요한 패키지를 설치하세요: ```powershell pip install mcp-server mcp-client ``` ## 서버 및 클라이언트 실행 ### 서버 시작 한 터미널 창에서 서버를 실행하세요: ```powershell python server.py ``` 서버는 MCP CLI를 사용하여 개발 모드로도 실행할 수 있습니다: ```powershell mcp dev server.py ``` 또는 Claude Desktop에 설치하여 실행할 수도 있습니다 (사용 가능한 경우): ```powershell mcp install server.py ``` ### 클라이언트 실행 다른 터미널 창에서 클라이언트를 실행하세요: ```powershell python client.py ``` 이렇게 하면 서버에 연결되어 모든 기능을 시연합니다. ### 클라이언트 사용법 클라이언트(`client.py`)는 MCP의 모든 기능을 보여줍니다: ```powershell python client.py ``` 서버에 연결하여 tools, resources, prompts를 포함한 모든 기능을 사용합니다. 출력 결과는 다음을 보여줍니다: 1. 계산기 도구 결과 (5 + 7 = 12) 2. "What is the meaning of life?"에 대한 completion 도구 응답 3. 사용 가능한 AI 모델 목록 4. "MCP Explorer"에 대한 맞춤 인사 5. 코드 리뷰 프롬프트 템플릿 ## 구현 세부사항 서버는 MCP 서비스를 정의하기 위한 고수준 추상화를 제공하는 `FastMCP` API를 사용하여 구현되었습니다. 다음은 도구가 정의되는 간단한 예시입니다: ```python @mcp.tool() def add(a: int, b: int) -> int: """Add two numbers together Args: a: First number b: Second number Returns: The sum of the two numbers """ logger.info(f"Adding {a} and {b}") return a + b ``` 클라이언트는 MCP 클라이언트 라이브러리를 사용하여 서버에 연결하고 호출합니다: ```python async with stdio_client(server_params) as (reader, writer): async with ClientSession(reader, writer) as session: await session.initialize() result = await session.call_tool("add", arguments={"a": 5, "b": 7}) ``` ## 더 알아보기 MCP에 대한 자세한 정보는 다음을 방문하세요: https://modelcontextprotocol.io/ **면책 조항**: 이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의해 주시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.