To repozytorium zawiera implementację Model Context Protocol (MCP) w Pythonie, pokazującą, jak stworzyć zarówno serwer, jak i klienta komunikujących się za pomocą standardu MCP.
Implementacja MCP składa się z dwóch głównych komponentów:
-
MCP Server (
server.py) – Serwer udostępniający:- Narzędzia: Funkcje, które można wywoływać zdalnie
- Zasoby: Dane, które można pobierać
- Prompty: Szablony do generowania promptów dla modeli językowych
-
MCP Client (
client.py) – Aplikacja kliencka łącząca się z serwerem i korzystająca z jego funkcji
Ta implementacja demonstruje kilka kluczowych funkcji MCP:
completion– Generuje uzupełnienia tekstu z modeli AI (symulowane)add– Prosty kalkulator dodający dwie liczby
models://– Zwraca informacje o dostępnych modelach AIgreeting://{name}– Zwraca spersonalizowane powitanie dla podanego imienia
review_code– Generuje prompt do przeglądu kodu
Aby korzystać z tej implementacji MCP, zainstaluj wymagane pakiety:
pip install mcp-server mcp-clientUruchom serwer w jednym oknie terminala:
python server.pySerwer można też uruchomić w trybie deweloperskim za pomocą MCP CLI:
mcp dev server.pyLub zainstalować w Claude Desktop (jeśli dostępne):
mcp install server.pyUruchom klienta w innym oknie terminala:
python client.pyTo połączy się z serwerem i pokaże wszystkie dostępne funkcje.
Klient (client.py) demonstruje wszystkie możliwości MCP:
python client.pyTo połączy się z serwerem i przetestuje wszystkie funkcje, w tym narzędzia, zasoby i prompty. Wynik pokaże:
- Wynik działania kalkulatora (5 + 7 = 12)
- Odpowiedź narzędzia completion na pytanie "What is the meaning of life?"
- Listę dostępnych modeli AI
- Spersonalizowane powitanie dla "MCP Explorer"
- Szablon promptu do przeglądu kodu
Serwer jest zaimplementowany przy użyciu API FastMCP, które oferuje wysokopoziomowe abstrakcje do definiowania usług MCP. Oto uproszczony przykład definiowania narzędzi:
@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 + bKlient korzysta z biblioteki MCP client, aby połączyć się i wywołać serwer:
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})Więcej informacji o MCP znajdziesz na: https://modelcontextprotocol.io/
Zastrzeżenie:
Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Mimo że dokładamy starań, aby tłumaczenie było jak najbardziej precyzyjne, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym należy traktować jako źródło wiążące. W przypadku informacji o kluczowym znaczeniu zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.