(Kliknij obrazek powyżej, aby obejrzeć wideo z tej lekcji)
Generatywne aplikacje AI to ogromny krok naprzód, ponieważ często pozwalają użytkownikowi na interakcję z aplikacją za pomocą naturalnych językowych poleceń. Jednakże, gdy inwestujesz więcej czasu i zasobów w takie aplikacje, chcesz mieć pewność, że możesz łatwo integrować funkcjonalności i zasoby w sposób umożliwiający ich łatwe rozszerzanie, obsługę więcej niż jednego modelu oraz zarządzanie różnymi niuansami modeli. Krótko mówiąc, budowanie aplikacji Gen AI jest łatwe na początku, ale w miarę ich rozwoju i wzrostu złożoności, konieczne staje się zdefiniowanie architektury, a prawdopodobnie także oparcie się na standardzie, aby zapewnić spójność budowy aplikacji. W tym miejscu pojawia się MCP, które organizuje procesy i dostarcza standard.
Model Context Protocol (MCP) to otwarty, ustandaryzowany interfejs, który umożliwia bezproblemową interakcję dużych modeli językowych (LLM) z zewnętrznymi narzędziami, API i źródłami danych. Zapewnia spójną architekturę, która rozszerza funkcjonalność modeli AI poza ich dane treningowe, umożliwiając tworzenie inteligentniejszych, skalowalnych i bardziej responsywnych systemów AI.
W miarę jak aplikacje generatywne AI stają się coraz bardziej złożone, kluczowe jest przyjęcie standardów, które zapewnią skalowalność, rozszerzalność, łatwość utrzymania oraz uniknięcie uzależnienia od jednego dostawcy. MCP odpowiada na te potrzeby poprzez:
- Ujednolicenie integracji modeli z narzędziami
- Redukcję kruchych, jednorazowych rozwiązań
- Umożliwienie współistnienia wielu modeli od różnych dostawców w jednym ekosystemie
Note: Chociaż MCP przedstawia się jako otwarty standard, nie ma planów jego standaryzacji przez istniejące organizacje, takie jak IEEE, IETF, W3C, ISO czy inne.
Po przeczytaniu tego artykułu będziesz w stanie:
- Zdefiniować Model Context Protocol (MCP) i jego przypadki użycia
- Zrozumieć, jak MCP standaryzuje komunikację między modelami a narzędziami
- Zidentyfikować kluczowe komponenty architektury MCP
- Zbadać rzeczywiste zastosowania MCP w kontekstach biznesowych i deweloperskich
Przed MCP integracja modeli z narzędziami wymagała:
- Pisania niestandardowego kodu dla każdej pary narzędzie-model
- Korzystania z niestandardowych API dla każdego dostawcy
- Częstych awarii spowodowanych aktualizacjami
- Słabej skalowalności przy dodawaniu kolejnych narzędzi
| Korzyść | Opis |
|---|---|
| Interoperacyjność | LLM współpracują bezproblemowo z narzędziami różnych dostawców |
| Spójność | Jednolite zachowanie na różnych platformach i narzędziach |
| Reużywalność | Narzędzia stworzone raz mogą być używane w różnych projektach i systemach |
| Przyspieszenie rozwoju | Skrócenie czasu tworzenia dzięki standaryzowanym, gotowym interfejsom |
MCP opiera się na modelu klient-serwer, gdzie:
- Hosty MCP uruchamiają modele AI
- Klienci MCP inicjują żądania
- Serwery MCP dostarczają kontekst, narzędzia i możliwości
- Zasoby – Statyczne lub dynamiczne dane dla modeli
- Prompty – Zdefiniowane wcześniej przepływy pracy dla ukierunkowanego generowania
- Narzędzia – Wykonywalne funkcje, takie jak wyszukiwanie, obliczenia
- Sampling – Zachowanie agentów poprzez rekurencyjne interakcje
Serwery MCP działają w następujący sposób:
- Przepływ żądania:
- Żądanie jest inicjowane przez użytkownika końcowego lub oprogramowanie działające w jego imieniu.
- Klient MCP wysyła żądanie do Hosta MCP, który zarządza środowiskiem uruchomieniowym modelu AI.
- Model AI otrzymuje prompt użytkownika i może zażądać dostępu do zewnętrznych narzędzi lub danych za pomocą jednego lub więcej wywołań narzędzi.
- Host MCP, a nie sam model, komunikuje się z odpowiednim Serwerem MCP za pomocą ustandaryzowanego protokołu.
- Funkcjonalność Hosta MCP:
- Rejestr narzędzi: Utrzymuje katalog dostępnych narzędzi i ich możliwości.
- Autoryzacja: Weryfikuje uprawnienia do dostępu do narzędzi.
- Obsługa żądań: Przetwarza przychodzące żądania narzędzi od modelu.
- Formatowanie odpowiedzi: Strukturyzuje wyniki narzędzi w formacie zrozumiałym dla modelu.
- Wykonanie na serwerze MCP:
- Host MCP kieruje wywołania narzędzi do jednego lub więcej Serwerów MCP, z których każdy udostępnia wyspecjalizowane funkcje (np. wyszukiwanie, obliczenia, zapytania do bazy danych).
- Serwery MCP wykonują swoje operacje i zwracają wyniki do Hosta MCP w spójnym formacie.
- Host MCP formatuje i przekazuje te wyniki do Modelu AI.
- Zakończenie odpowiedzi:
- Model AI włącza wyniki narzędzi do ostatecznej odpowiedzi.
- Host MCP wysyła tę odpowiedź z powrotem do Klienta MCP, który dostarcza ją użytkownikowi końcowemu lub wywołującemu oprogramowaniu.
---
title: MCP Architecture and Component Interactions
description: A diagram showing the flows of the components in MCP.
---
graph TD
Client[MCP Client/Application] -->|Sends Request| H[MCP Host]
H -->|Invokes| A[AI Model]
A -->|Tool Call Request| H
H -->|MCP Protocol| T1[MCP Server Tool 01: Web Search]
H -->|MCP Protocol| T2[MCP Server Tool 02: Calculator tool]
H -->|MCP Protocol| T3[MCP Server Tool 03: Database Access tool]
H -->|MCP Protocol| T4[MCP Server Tool 04: File System tool]
H -->|Sends Response| Client
subgraph "MCP Host Components"
H
G[Tool Registry]
I[Authentication]
J[Request Handler]
K[Response Formatter]
end
H <--> G
H <--> I
H <--> J
H <--> K
style A fill:#f9d5e5,stroke:#333,stroke-width:2px
style H fill:#eeeeee,stroke:#333,stroke-width:2px
style Client fill:#d5e8f9,stroke:#333,stroke-width:2px
style G fill:#fffbe6,stroke:#333,stroke-width:1px
style I fill:#fffbe6,stroke:#333,stroke-width:1px
style J fill:#fffbe6,stroke:#333,stroke-width:1px
style K fill:#fffbe6,stroke:#333,stroke-width:1px
style T1 fill:#c2f0c2,stroke:#333,stroke-width:1px
style T2 fill:#c2f0c2,stroke:#333,stroke-width:1px
style T3 fill:#c2f0c2,stroke:#333,stroke-width:1px
style T4 fill:#c2f0c2,stroke:#333,stroke-width:1px
Serwery MCP pozwalają na rozszerzenie możliwości LLM poprzez dostarczanie danych i funkcjonalności.
Gotowy, by spróbować? Oto SDK dla różnych języków/stosów z przykładami tworzenia prostych serwerów MCP:
-
Python SDK: https://github.com/modelcontextprotocol/python-sdk
-
TypeScript SDK: https://github.com/modelcontextprotocol/typescript-sdk
-
C#/.NET SDK: https://github.com/modelcontextprotocol/csharp-sdk
MCP umożliwia szeroki zakres zastosowań, rozszerzając możliwości AI:
| Zastosowanie | Opis |
|---|---|
| Integracja danych w firmie | Połączenie LLM z bazami danych, CRM lub wewnętrznymi narzędziami |
| Systemy agentowe AI | Umożliwienie autonomicznym agentom dostępu do narzędzi i przepływów decyzyjnych |
| Aplikacje multimodalne | Łączenie tekstu, obrazów i dźwięku w jednej aplikacji AI |
| Integracja danych w czasie rzeczywistym | Wprowadzanie aktualnych danych do interakcji AI dla bardziej precyzyjnych wyników |
Model Context Protocol (MCP) działa jak uniwersalny standard dla interakcji AI, podobnie jak USB-C ustandaryzował fizyczne połączenia urządzeń. W świecie AI MCP zapewnia spójny interfejs, umożliwiając modelom (klientom) bezproblemową integrację z zewnętrznymi narzędziami i dostawcami danych (serwerami). Eliminuje to potrzebę tworzenia różnorodnych, niestandardowych protokołów dla każdego API czy źródła danych.
---
title: Advanced MCP Scenarios with Client-Server LLM Integration
description: A sequence diagram showing the detailed interaction flow between user, client application, client LLM, multiple MCP servers, and server LLM, illustrating tool discovery, user interaction, direct tool calling, and feature negotiation phases
---
sequenceDiagram
autonumber
actor User as 👤 User
participant ClientApp as 🖥️ Client App
participant ClientLLM as 🧠 Client LLM
participant Server1 as 🔧 MCP Server 1
participant Server2 as 📚 MCP Server 2
participant ServerLLM as 🤖 Server LLM
%% Discovery Phase
rect rgb(220, 240, 255)
Note over ClientApp, Server2: TOOL DISCOVERY PHASE
ClientApp->>+Server1: Request available tools/resources
Server1-->>-ClientApp: Return tool list (JSON)
ClientApp->>+Server2: Request available tools/resources
Server2-->>-ClientApp: Return tool list (JSON)
Note right of ClientApp: Store combined tool<br/>catalog locally
end
%% User Interaction
rect rgb(255, 240, 220)
Note over User, ClientLLM: USER INTERACTION PHASE
User->>+ClientApp: Enter natural language prompt
ClientApp->>+ClientLLM: Forward prompt + tool catalog
ClientLLM->>-ClientLLM: Analyze prompt & select tools
end
%% Scenario A: Direct Tool Calling
alt Direct Tool Calling
rect rgb(220, 255, 220)
Note over ClientApp, Server1: SCENARIO A: DIRECT TOOL CALLING
ClientLLM->>+ClientApp: Request tool execution
ClientApp->>+Server1: Execute specific tool
Server1-->>-ClientApp: Return results
ClientApp->>+ClientLLM: Process results
ClientLLM-->>-ClientApp: Generate response
ClientApp-->>-User: Display final answer
end
%% Scenario B: Feature Negotiation (VS Code style)
else Feature Negotiation (VS Code style)
rect rgb(255, 220, 220)
Note over ClientApp, ServerLLM: SCENARIO B: FEATURE NEGOTIATION
ClientLLM->>+ClientApp: Identify needed capabilities
ClientApp->>+Server2: Negotiate features/capabilities
Server2->>+ServerLLM: Request additional context
ServerLLM-->>-Server2: Provide context
Server2-->>-ClientApp: Return available features
ClientApp->>+Server2: Call negotiated tools
Server2-->>-ClientApp: Return results
ClientApp->>+ClientLLM: Process results
ClientLLM-->>-ClientApp: Generate response
ClientApp-->>-User: Display final answer
end
end
- MCP standaryzuje sposób, w jaki modele AI współpracują z narzędziami i danymi
- Promuje rozszerzalność, spójność i interoperacyjność
- MCP pomaga skrócić czas rozwoju, poprawić niezawodność i rozszerzyć możliwości modeli
- Architektura klient-serwer umożliwia elastyczne, skalowalne aplikacje AI
Pomyśl o aplikacji AI, którą chciałbyś zbudować.
- Jakie zewnętrzne narzędzia lub dane mogłyby zwiększyć jej możliwości?
- W jaki sposób MCP może uprościć i uczynić integrację bardziej niezawodną?
Następny krok: Rozdział 1: Podstawowe pojęcia
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić poprawność tłumaczenia, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za autorytatywne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.
