(Кликнете върху изображението по-горе, за да гледате видеото на този урок)
Генеративните AI приложения са голяма крачка напред, тъй като често позволяват на потребителя да взаимодейства с приложението чрез естествени езикови команди. Въпреки това, когато се влагат повече време и ресурси в такива приложения, е важно да се уверите, че можете лесно да интегрирате функционалности и ресурси по начин, който позволява лесно разширяване, обслужване на повече от един модел и управление на различни специфики на моделите. Накратко, изграждането на Gen AI приложения е лесно в началото, но с тяхното развитие и усложняване трябва да започнете да дефинирате архитектура и вероятно да разчитате на стандарт, който гарантира, че приложенията ви са изградени по последователен начин. Тук MCP влиза в действие, за да организира нещата и да предостави стандарт.
Протоколът за Контекст на Модела (MCP) е отворен, стандартизиран интерфейс, който позволява на Големите Езикови Модели (LLMs) да взаимодействат безпроблемно с външни инструменти, API-та и източници на данни. Той предоставя последователна архитектура за разширяване на функционалността на AI моделите отвъд техните обучителни данни, позволявайки създаването на по-умни, мащабируеми и по-отзивчиви AI системи.
С развитието на генеративните AI приложения е от съществено значение да се приемат стандарти, които гарантират мащабируемост, разширяемост, поддръжка и избягване на зависимост от конкретен доставчик. MCP отговаря на тези нужди чрез:
- Обединяване на интеграциите между модели и инструменти
- Намаляване на крехките, еднократни персонализирани решения
- Позволяване на множество модели от различни доставчици да съществуват в една екосистема
Note: Въпреки че MCP се представя като отворен стандарт, няма планове за стандартизация на MCP чрез съществуващи стандартизационни организации като IEEE, IETF, W3C, ISO или други.
До края на тази статия ще можете:
- Да дефинирате Протокол за Контекст на Модела (MCP) и неговите приложения
- Да разберете как MCP стандартизира комуникацията между модели и инструменти
- Да идентифицирате основните компоненти на архитектурата на MCP
- Да изследвате реални приложения на MCP в корпоративни и развойни контексти
Преди MCP, интегрирането на модели с инструменти изискваше:
- Персонализиран код за всяка двойка инструмент-модел
- Нестандартизирани API-та за всеки доставчик
- Чести прекъсвания поради актуализации
- Лоша мащабируемост с повече инструменти
| Полза | Описание |
|---|---|
| Интероперативност | LLMs работят безпроблемно с инструменти от различни доставчици |
| Последователност | Унифицирано поведение между платформи и инструменти |
| Повторна употреба | Инструменти, създадени веднъж, могат да се използват в различни проекти |
| Ускорено развитие | Намаляване на времето за разработка чрез стандартизирани интерфейси |
MCP следва клиент-сървър модел, където:
- MCP Hosts изпълняват AI моделите
- MCP Clients инициират заявки
- MCP Servers предоставят контекст, инструменти и възможности
- Ресурси – Статични или динамични данни за модели
- Команди – Предварително дефинирани работни потоци за насочено генериране
- Инструменти – Изпълними функции като търсене, изчисления
- Избор на проби – Агентско поведение чрез рекурсивни взаимодействия
MCP сървърите функционират по следния начин:
- Поток на заявката:
- Заявка се инициира от краен потребител или софтуер, действащ от негово име.
- MCP Client изпраща заявката към MCP Host, който управлява изпълнението на AI модела.
- AI моделът получава командата на потребителя и може да поиска достъп до външни инструменти или данни чрез една или повече заявки към инструменти.
- MCP Host, а не моделът директно, комуникира с подходящите MCP Server(s), използвайки стандартизирания протокол.
- Функционалност на MCP Host:
- Регистър на инструменти: Поддържа каталог на наличните инструменти и техните възможности.
- Автентикация: Проверява разрешенията за достъп до инструменти.
- Обработчик на заявки: Обработва входящите заявки за инструменти от модела.
- Форматиране на отговори: Структурира изходите от инструменти във формат, който моделът може да разбере.
- Изпълнение на MCP Server:
- MCP Host насочва заявките към инструменти към един или повече MCP Servers, всеки от които предоставя специализирани функции (например търсене, изчисления, заявки към база данни).
- MCP Servers изпълняват съответните операции и връщат резултати към MCP Host в последователен формат.
- MCP Host форматира и предава тези резултати към AI модела.
- Завършване на отговора:
- AI моделът включва изходите от инструменти в окончателния отговор.
- MCP Host изпраща този отговор обратно към MCP Client, който го доставя на крайния потребител или софтуера, който го е поискал.
---
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
MCP сървърите ви позволяват да разширите възможностите на LLM чрез предоставяне на данни и функционалности.
Готови ли сте да опитате? Ето SDK-та за различни езици и/или платформи с примери за създаване на прости 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 позволява широк спектър от приложения чрез разширяване на AI възможностите:
| Приложение | Описание |
|---|---|
| Интеграция на корпоративни данни | Свързване на LLMs с бази данни, CRM системи или вътрешни инструменти |
| Агентски AI системи | Позволяване на автономни агенти с достъп до инструменти и работни потоци за вземане на решения |
| Мултимодални приложения | Комбиниране на текст, изображения и аудио инструменти в едно унифицирано AI приложение |
| Интеграция на данни в реално време | Включване на актуални данни в AI взаимодействия за по-точни и актуални резултати |
Протоколът за Контекст на Модела (MCP) действа като универсален стандарт за AI взаимодействия, подобно на начина, по който USB-C стандартизира физическите връзки за устройства. В света на AI, MCP предоставя последователен интерфейс, позволявайки моделите (клиенти) да се интегрират безпроблемно с външни инструменти и доставчици на данни (сървъри). Това елиминира нуждата от разнообразни, персонализирани протоколи за всеки API или източник на данни.
Под MCP, MCP-съвместим инструмент (наричан MCP сървър) следва унифициран стандарт. Тези сървъри могат да изброяват инструментите или действията, които предлагат, и да изпълняват тези действия, когато бъдат поискани от AI агент. Платформи за AI агенти, които поддържат MCP, са способни да откриват наличните инструменти от сървърите и да ги извикват чрез този стандартен протокол.
Освен предоставянето на инструменти, MCP улеснява достъпа до знания. Той позволява приложенията да предоставят контекст на големите езикови модели (LLMs), като ги свързват с различни източници на данни. Например, MCP сървър може да представлява хранилище на документи на компания, позволявайки на агентите да извличат релевантна информация при поискване. Друг сървър може да обработва специфични действия като изпращане на имейли или актуализиране на записи. От гледна точка на агента, това са просто инструменти, които може да използва—някои инструменти връщат данни (контекст на знания), докато други изпълняват действия. MCP ефективно управлява и двете.
Агент, който се свързва с MCP сървър, автоматично научава наличните възможности и достъпните данни на сървъра чрез стандартен формат. Тази стандартизация позволява динамична наличност на инструменти. Например, добавянето на нов MCP сървър към системата на агента прави неговите функции незабавно използваеми, без да е необходима допълнителна персонализация на инструкциите на агента.
Тази опростена интеграция съответства на потока, показан в следната диаграма, където сървърите предоставят както инструменти, така и знания, осигурявайки безпроблемно сътрудничество между системите.
---
title: Scalable Agent Solution with MCP
description: A diagram illustrating how a user interacts with an LLM that connects to multiple MCP servers, with each server providing both knowledge and tools, creating a scalable AI system architecture
---
graph TD
User -->|Prompt| LLM
LLM -->|Response| User
LLM -->|MCP| ServerA
LLM -->|MCP| ServerB
ServerA -->|Universal connector| ServerB
ServerA --> KnowledgeA
ServerA --> ToolsA
ServerB --> KnowledgeB
ServerB --> ToolsB
subgraph Server A
KnowledgeA[Knowledge]
ToolsA[Tools]
end
subgraph Server B
KnowledgeB[Knowledge]
ToolsB[Tools]
end
Освен основната архитектура на MCP, съществуват разширени сценарии, при които както клиентът, така и сървърът съдържат LLMs, позволявайки по-сложни взаимодействия. В следната диаграма Client App може да бъде IDE с множество MCP инструменти, достъпни за използване от LLM:
---
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:
- Актуалност: Моделите могат да получават актуална информация отвъд обучителните си данни
- Разширяване на възможностите: Моделите могат да използват специализирани инструменти за задачи, за които не са обучени
- Намалени халюцинации: Външните източници на данни предоставят фактическа основа
- Поверителност: Чувствителните данни могат да останат в защитени среди, вместо да бъдат включени в команди
Следните са основни изводи за използването на MCP:
- MCP стандартизира начина, по който AI моделите взаимодействат с инструменти и данни
- Насърчава разширяемост, последователност и интероперативност
- MCP помага за намаляване на времето за разработка, подобряване на надеждността и разширяване на възможностите на моделите
- Клиент-сървър архитектурата позволява гъвкави, разширяеми AI приложения
Помислете за AI приложение, което искате да изградите.
- Кои външни инструменти или данни биха подобрили неговите възможности?
- Как MCP би направил интеграцията по-лесна и надеждна?
Следва: Глава 1: Основни концепции
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
