modelcontextprotocol/python-sdk
The official Python SDK for Model Context Protocol servers and clients
What it is
MCP Python SDK – Model Context Protocol (MCP)을 구현하는 Python 라이브러리입니다. MCP는 대규모 언어 모델(LLM) 애플리케이션이 웹 API와 유사한 프로토콜을 통해 외부 서비스(도구, 리소스, 프롬프트)와 통신하는 표준화된 방식입니다.
What you can do with it
- Write MCP servers: Python 코드로 몇 줄만 작성하여 MCP 서버를 작성할 수 있습니다. 타입 어노테이션이 지정된 함수에 데코레이터를 사용하면 LLM이 호출할 수 있는 tools(callable actions) 또는 resources(templated URLs)로 노출출합니다.
- Write MCP clients: 지원되는 모든 전송 방식(stdio, Streamable HTTP, Server-Sent Events)을 통해 해당 도구/리소스에 접근하는 MCP 클라이언트를 작성할 수 있습니다. 클라이언트는 스키마 생성, 요청/응답 인코딩, 구조화된 결과 반환을 처리합니다.
- Use the bundled CLI (
mcp dev,mcp run,mcp install): 빠른 개발, 로컬 테스트 및 MCP 패키지 설치를 위해 번들링된 CLI를 사용합니다.
How it works (high-level)
- Server side –
MCPServer인스턴스를 생성하고, 함수에@mcp.tool()또는@mcp.resource()데코레이터를 사용합니다. SDK는 Python 타입 힌트를 추출하여 자동으로 JSON-Schema 설명을 생성하고, 선택한 전송 방식 عبر 전송 방식을 통해 제공합니다. - Transport layer – MCP는 세 가지 표준 전송 방식을 지원합니다:
- stdio – 서브프로세스에 서버를 임베딩하는 데 유용합니다.
- Streamable HTTP – 메시지를 스트리밍하는 경량 HTTP 엔드포인트입니다.
- SSE – Server-Sent Events를 통한 푸시 방식의 통신입니다.
- Client side –
Client객체가 서버 URL(또는 stdio 서브프로세스)에 연결하고call_tool(name, args)와 같은 메서드를 제공하여structured_content가 포함된 응답 객체를 반환합니다.
Getting started (quick example)
# server.py
from mcp.server import MCPServer
mcp = MCPServer("Demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
return f"Hello, {name}!"
로컬에서 실행:
uv run mcp dev server.py # starts a dev server (streamable-http by default)
클라이언트 측:
import asyncio
from mcp import Client
async def main():
async with Client("http://localhost:8000/mcp") as client:
res = await client.call_tool("add", {"a": 1,
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트