(Кликнете върху изображението по-горе, за да гледате видео на този урок)
Приложенията с генеративен AI представляват голяма стъпка напред, тъй като често позволяват на потребителя да взаимодейства с приложението чрез естествени езикови подкани. Въпреки това, с нарастването на времето и ресурсите, които се влагат в такива приложения, искате да сте сигурни, че можете лесно да интегрирате функционалности и ресурси по начин, който е лесен за разширяване, че вашето приложение може да поддържа използването на повече от един модел и да се справя с различни особености на моделите. Накратко, създаването на приложения за генеративен AI е лесно за начало, но с развитието им и ставането им по-сложни, трябва да започнете да дефинирате архитектура и вероятно ще трябва да разчитате на стандарт, който да гарантира, че вашите приложения са изградени по единен начин. Тук идва ролята на MCP, за да организира нещата и да предостави стандарт.
Протоколът за контекст на модела (MCP) е отворен, стандартизиран интерфейс, който позволява на големите езикови модели (LLMs) да взаимодействат безпроблемно с външни инструменти, API и източници на данни. Той предоставя последователна архитектура за разширяване на функционалността на AI моделите отвъд техните тренировъчни данни, позволявайки по-умни, мащабируеми и по-отзивчиви AI системи.
С нарастването на сложността на генеративните AI приложения е от съществено значение да се приемат стандарти, които осигуряват мащабируемост, разширяемост, поддържане и избягване на зависимост от конкретен доставчик. MCP отговаря на тези нужди чрез:
- Унифициране на интеграциите между модели и инструменти
- Намаляване на крехки, еднократни специални решения
- Позволяване на множество модели от различни доставчици да съществуват в една екосистема
Забележка: Въпреки че MCP се представя като отворен стандарт, няма планове да се стандартизира MCP чрез някой от съществуващите стандартни органи като IEEE, IETF, W3C, ISO или друг стандартен орган.
В края на тази статия ще можете да:
- Определите протокола за контекст на модела (MCP) и неговите случаи на използване
- Разберете как MCP стандартизира комуникацията между модел и инструмент
- Идентифицирате основните компоненти на архитектурата на MCP
- Изследвате реални приложения на MCP в корпоративен и разработващ контекст
Преди MCP, интеграцията на модели с инструменти изискваше:
- Персонализиран код за всяка двойка инструмент-модел
- Нестандартизирани API за всеки доставчик
- Чести прекъсвания поради обновявания
- Лоша мащабируемост при добавяне на повече инструменти
| Полза | Описание |
|---|---|
| Съвместимост | LLMs работят безпроблемно с инструменти от различни доставчици |
| Последователност | Униформено поведение по платформи и инструменти |
| Преизползваемост | Инструментите, създадени веднъж, могат да се използват в различни проекти и системи |
| Ускорено разработване | Намаляване на времето за разработка с използване на стандартизирани, plug-and-play интерфейси |
MCP следва клиент-сървър модел, където:
- MCP хостове стартират AI моделите
- MCP клиенти инициират заявки
- MCP сървъри предоставят контекст, инструменти и възможности
- Ресурси – Статични или динамични данни за моделите
- Подпомагания (Prompts) – Предопределени работни потоци за насочено генериране
- Инструменти – Изпълними функции като търсене, изчисления
- Семплиране – Агентно поведение чрез рекурсивни взаимодействия
- Извличане – Заявки инициирани от сървъра за въвеждане от потребителя
- Корени (Roots) – Граници на файловата система за контрол на достъпа на сървъра
MCP използва двуслойна архитектура:
- Слой данни: Комуникация базирана на JSON-RPC 2.0 с управление на жизнения цикъл и примитиви
- Транспортен слой: STDIO (локален) и Streamable HTTP със SSE (отдалечен) комуникационни канали
MCP сървърите работят по следния начин:
- Поток на заявките:
- Заявка се инициира от краен потребител или софтуер, действащ от негово име.
- MCP клиент изпраща заявката към MCP хост, който управлява изпълнението на AI модела.
- AI моделът получава потребителската подкана и може да поиска достъп до външни инструменти или данни чрез един или повече т.нар. tool calls.
- MCP хостът, а не директно моделът, комуникира с подходящите MCP сървъри, използвайки стандартизирания протокол.
- Функционалност на MCP хоста:
- Регистър на инструменти: Поддържа каталог на наличните инструменти и техните възможности.
- Автентикация: Проверява разрешенията за достъп до инструментите.
- Обработващ заявките компонент: Обработва входящите заявки за инструменти от модела.
- Форматиращ отговорите компонент: Структурира изхода от инструментите в формат, който моделът може да разбере.
- Изпълнение на MCP сървъра:
- MCP хостът насочва повикванията към един или повече MCP сървъри, всеки от които предлага специализирани функции (например търсене, изчисления, заявки към база данни).
- MCP сървърите изпълняват съответните операции и връщат резултати на MCP хоста в стандартизиран формат.
- MCP хостът форматира и препраща тези резултати към AI модела.
- Завършване на отговора:
- AI моделът включва изходните данни от инструментите в крайния отговор.
- MCP хостът изпраща този отговор обратно към MCP клиента, който го предоставя на крайния потребител или извикващия софтуер.
---
title: Архитектура на MCP и взаимодействия между компонентите
description: Диаграма, показваща потоците на компонентите в MCP.
---
graph TD
Client[MCP Клиент/Приложение] -->|Изпраща заявка| H[MCP Хост]
H -->|Извиква| A[AI Модел]
A -->|Заявка за извикване на инструмент| H
H -->|MCP Протокол| T1[MCP Сървърен инструмент 01: Уеб търсене]
H -->|MCP Протокол| T2[MCP Сървърен инструмент 02: Калькулатор инструмент]
H -->|MCP Протокол| T3[MCP Сървърен инструмент 03: Инструмент за достъп до база данни]
H -->|MCP Протокол| T4[MCP Сървърен инструмент 04: Инструмент за файловата система]
H -->|Изпраща отговор| Client
subgraph "Компоненти на MCP Хост"
H
G[Регистър на инструментите]
I[Удостоверяване]
J[Обработчик на заявки]
K[Форматиране на отговор]
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 възможностите:
| Приложение | Описание |
|---|---|
| Интеграция на корпоративни данни | Свързване на LLM с бази данни, CRM системи или вътрешни инструменти |
| Агентни AI системи | Позволяване на автономни агенти с достъп до инструменти и работни процеси за вземане на решения |
| Мултимодални приложения | Комбиниране на текстови, изображенчески и аудио инструменти в едно единно AI приложение |
| Интеграция на данни в реално време | Въвеждане на живи данни в AI взаимодействия за по-точни, актуални резултати |
Протоколът за контекст на модела (MCP) действа като универсален стандарт за AI взаимодействия, подобно на това как USB-C стандартизира физическите връзки за устройства. В света на AI, MCP осигурява последователен интерфейс, позволявайки на моделите (клиентите) да се интегрират безпроблемно с външни инструменти и доставчици на данни (сървъри). Това премахва нуждата от разнообразни, персонализирани протоколи за всеки API или източник на данни.
Под MCP, инструмент, съвместим с MCP (наричан MCP сървър), следва единен стандарт. Тези сървъри могат да изброяват предлаганите инструменти или действия и да изпълняват тези действия, когато бъдат поискани от AI агент. Платформите за AI агенти, които поддържат MCP, могат да откриват налични инструменти на сървърите и да ги извикват чрез този стандартен протокол.
Освен че предлага инструменти, MCP улеснява и достъпа до знания. Той позволява приложенията да предоставят контекст на големите езикови модели (LLMs), като ги свързва с различни източници на данни. Например, MCP сървър може да представлява хранилище от документи на дадена компания, позволявайки на агентите да извличат релевантна информация при поискване. Друг сървър може да обработва специфични действия като изпращане на имейли или актуализиране на записи. От гледна точка на агента, това са просто инструменти, които може да използва – някои инструменти връщат данни (знание), докато други изпълняват действия. MCP ефективно управлява и двете.
Агент, свързващ се с MCP сървър, автоматично научава наличните възможности и достъпните данни на сървъра чрез стандартен формат. Тази стандартизация позволява динамична наличност на инструментите. Например, добавянето на нов MCP сървър в системата на агента прави неговите функции веднага достъпни без необходимост от допълнително персонализиране на инструкциите на агента.
Тази оптимизирана интеграция отговаря на потока, изобразен на следната схема, където сървърите предоставят както инструменти, така и знания, осигурявайки безпроблемно взаимодействие между системите.
---
title: Разширяема агенска система с MCP
description: Диаграма, илюстрираща как потребител взаимодейства с LLM, който се свързва с множество MCP сървъри, като всеки сървър предоставя както знания, така и инструменти, създавайки мащабируема архитектура на AI система
---
graph TD
User -->|Подсказка| LLM
LLM -->|Отговор| User
LLM -->|MCP| ServerA
LLM -->|MCP| ServerB
ServerA -->|Универсален конектор| ServerB
ServerA --> KnowledgeA
ServerA --> ToolsA
ServerB --> KnowledgeB
ServerB --> ToolsB
subgraph Server A
KnowledgeA[Знания]
ToolsA[Инструменти]
end
subgraph Server B
KnowledgeB[Знания]
ToolsB[Инструменти]
end
```Универсалният конектор позволява MCP сървърите да комуникират и споделят възможности помежду си, позволявайки на ServerA да делегира задачи на ServerB или да достъпва неговите инструменти и знания. Това федерализира инструментите и данните между сървърите, поддържайки мащабируеми и модулни агентни архитектури. Тъй като MCP стандартизира излагането на инструменти, агентите могат динамично да откриват и маршрутизират заявките между сървърите без твърдо кодираните интеграции.
Федерализация на инструменти и знания: Инструменти и данни могат да се достъпват между сървъри, позволявайки по-мащабируеми и модулни агентни архитектури.
### 🔄 Разширени сценарии на MCP с интеграция на LLM от страна на клиента
Отвъд базовата архитектура на MCP има разширени сценарии, в които както клиентът, така и сървърът съдържат LLM, позволявайки по-сложни взаимодействия. В следната схема, **Клиентското приложение** може да бъде IDE с налични MCP инструменти за използване от LLM:
```mermaid
---
title: Разширени MCP сценарии с интеграция на клиент-сървър LLM
description: Диаграма на последователността, показваща детайлния поток на взаимодействие между потребител, клиентско приложение, клиентски LLM, множество MCP сървъри и сървър LLM, илюстрираща откриване на инструменти, взаимодействие с потребителя, директно извикване на инструменти и етапи на договаряне на функции
---
sequenceDiagram
autonumber
actor User as 👤 Потребител
participant ClientApp as 🖥️ Клиентско приложение
participant ClientLLM as 🧠 Клиентски LLM
participant Server1 as 🔧 MCP сървър 1
participant Server2 as 📚 MCP сървър 2
participant ServerLLM as 🤖 Сървър LLM
%% Discovery Phase
rect rgb(220, 240, 255)
Note over ClientApp, Server2: ЕТАП НА ОТКРИВАНЕ НА ИНСТРУМЕНТИ
ClientApp->>+Server1: Искане за налични инструменти/ресурси
Server1-->>-ClientApp: Връща списък с инструменти (JSON)
ClientApp->>+Server2: Искане за налични инструменти/ресурси
Server2-->>-ClientApp: Връща списък с инструменти (JSON)
Note right of ClientApp: Локално съхранение на<br/>комбиниран каталог с инструменти
end
%% User Interaction
rect rgb(255, 240, 220)
Note over User, ClientLLM: ЕТАП НА ВЗАИМОДЕЙСТВИЕ С ПОТРЕБИТЕЛЯ
User->>+ClientApp: Въвеждане на естествен езиков въпрос
ClientApp->>+ClientLLM: Препращане на въпроса + каталог с инструменти
ClientLLM->>-ClientLLM: Анализиране на въпроса и избор на инструменти
end
%% Scenario A: Direct Tool Calling
alt Директно извикване на инструменти
rect rgb(220, 255, 220)
Note over ClientApp, Server1: СЦЕНАРИЙ A: ДИРЕКТНО ИЗВИКВАНЕ НА ИНСТРУМЕНТИ
ClientLLM->>+ClientApp: Искане за изпълнение на инструмент
ClientApp->>+Server1: Изпълнение на конкретен инструмент
Server1-->>-ClientApp: Връща резултати
ClientApp->>+ClientLLM: Обработва резултатите
ClientLLM-->>-ClientApp: Генерира отговор
ClientApp-->>-User: Показва окончателен отговор
end
%% Scenario B: Feature Negotiation (VS Code style)
else Договаряне на функции (стил VS Code)
rect rgb(255, 220, 220)
Note over ClientApp, ServerLLM: СЦЕНАРИЙ B: ДОГОВАРЯНЕ НА ФУНКЦИИТЕ
ClientLLM->>+ClientApp: Определяне на нужните възможности
ClientApp->>+Server2: Договаряне на функции/възможности
Server2->>+ServerLLM: Искане за допълнителен контекст
ServerLLM-->>-Server2: Предоставя контекст
Server2-->>-ClientApp: Връща налични функции
ClientApp->>+Server2: Извикване на договорени инструменти
Server2-->>-ClientApp: Връща резултати
ClientApp->>+ClientLLM: Обработва резултатите
ClientLLM-->>-ClientApp: Генерира отговор
ClientApp-->>-User: Показва окончателен отговор
end
end
Ето практическите ползи от използването на MCP:
- Свежест: Моделите могат да получават достъп до актуална информация, извън техните тренировъчни данни
- Разширяване на възможностите: Моделите могат да използват специализирани инструменти за задачи, за които не са били обучавани
- Намаление на халюцинации: Външните източници на данни осигуряват фактологична обосновка
- Поверителност: Чувствителните данни могат да останат в защитена среда, вместо да се вграждат в подкани
Следните са основните изводи при използване на MCP:
- MCP стандартизира как AI моделите взаимодействат с инструменти и данни
- Насърчава разширяемост, последователност и съвместимост
- MCP помага за намаляване на времето за разработка, повишаване на надеждността и разширяване на възможностите на моделите
- Архитектурата клиент-сървър позволява гъвкави, разширяеми AI приложения
Помислете за AI приложение, което бихте искали да създадете.
- Кои външни инструменти или данни биха подобрили неговите възможности?
- Как MCP би направил интеграцията по-проста и по-надеждна?
Следва: Глава 1: Основни концепции
Отказ от отговорност:
Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки усилията ни за точност, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или неправилни тълкувания, произтичащи от използването на този превод.
