(Натисніть на зображення вище, щоб переглянути відео цього уроку)
Генеративні AI-додатки є великим кроком вперед, оскільки вони часто дозволяють користувачам взаємодіяти з додатком за допомогою природних мовних запитів. Однак, коли більше часу та ресурсів вкладається в такі додатки, важливо забезпечити легку інтеграцію функціональностей і ресурсів таким чином, щоб додаток було легко розширювати, щоб він міг працювати з кількома моделями та враховувати різні особливості моделей. Іншими словами, створення генеративних AI-додатків легко почати, але з їх зростанням і ускладненням необхідно визначити архітектуру і, ймовірно, покладатися на стандарт, щоб забезпечити побудову додатків у послідовний спосіб. Тут на допомогу приходить MCP, щоб організувати процес і надати стандарт.
Протокол Контексту Моделі (MCP) — це відкритий стандартизований інтерфейс, який дозволяє великим мовним моделям (LLM) безперешкодно взаємодіяти із зовнішніми інструментами, API та джерелами даних. Він забезпечує послідовну архітектуру для розширення функціональності AI-моделей за межі їх навчальних даних, створюючи розумніші, масштабованіші та більш чутливі AI-системи.
Зі зростанням складності генеративних AI-додатків важливо впроваджувати стандарти, які забезпечують масштабованість, розширюваність, підтримуваність і уникнення залежності від одного постачальника. MCP вирішує ці завдання завдяки:
- Уніфікації інтеграції моделей з інструментами
- Зменшенню кількості нестабільних, одноразових рішень
- Можливості співіснування кількох моделей від різних постачальників в одній екосистемі
Примітка: Хоча MCP позиціонує себе як відкритий стандарт, наразі немає планів стандартизувати MCP через існуючі органи стандартизації, такі як IEEE, IETF, W3C, ISO чи будь-які інші.
До кінця цієї статті ви зможете:
- Визначити Протокол Контексту Моделі (MCP) та його випадки використання
- Зрозуміти, як MCP стандартизує комунікацію між моделями та інструментами
- Визначити основні компоненти архітектури MCP
- Дослідити реальні приклади використання MCP у корпоративному та розробницькому контекстах
До MCP інтеграція моделей з інструментами вимагала:
- Кастомного коду для кожної пари інструмент-модель
- Нестандартизованих API для кожного постачальника
- Частих збоїв через оновлення
- Поганої масштабованості з додаванням нових інструментів
| Перевага | Опис |
|---|---|
| Інтероперабельність | LLM безперешкодно працюють з інструментами різних постачальників |
| Послідовність | Уніфікована поведінка на різних платформах та інструментах |
| Повторне використання | Інструменти, створені один раз, можуть використовуватися в різних проектах |
| Прискорена розробка | Зменшення часу розробки завдяки стандартизованим інтерфейсам "підключи і працюй" |
MCP дотримується моделі клієнт-сервер, де:
- Хости MCP запускають AI-моделі
- Клієнти MCP ініціюють запити
- Сервери MCP надають контекст, інструменти та можливості
- Ресурси – Статичні або динамічні дані для моделей
- Запити – Попередньо визначені робочі процеси для керованої генерації
- Інструменти – Виконувані функції, такі як пошук, обчислення
- Вибірка – Агентна поведінка через рекурсивні взаємодії
Сервери MCP працюють наступним чином:
- Потік запиту:
- Запит ініціюється кінцевим користувачем або програмним забезпеченням, що діє від його імені.
- Клієнт MCP надсилає запит до Хоста MCP, який керує виконанням AI-моделі.
- AI-модель отримує запит користувача і може запросити доступ до зовнішніх інструментів або даних через один або кілька викликів інструментів.
- Хост MCP, а не сама модель, взаємодіє з відповідними Серверами MCP за допомогою стандартизованого протоколу.
- Функціональність Хоста MCP:
- Реєстр інструментів: Підтримує каталог доступних інструментів та їх можливостей.
- Аутентифікація: Перевіряє дозволи на доступ до інструментів.
- Обробник запитів: Обробляє вхідні запити інструментів від моделі.
- Форматувальник відповідей: Структурує вихідні дані інструментів у формат, зрозумілий моделі.
- Виконання Серверів MCP:
- Хост MCP маршрутизує виклики інструментів до одного або кількох Серверів MCP, кожен з яких надає спеціалізовані функції (наприклад, пошук, обчислення, запити до баз даних).
- Сервери MCP виконують свої відповідні операції та повертають результати до Хоста MCP у послідовному форматі.
- Хост MCP форматує та передає ці результати до AI-моделі.
- Завершення відповіді:
- AI-модель включає вихідні дані інструментів у фінальну відповідь.
- Хост MCP надсилає цю відповідь назад до Клієнта MCP, який доставляє її кінцевому користувачу або викликаючому програмному забезпеченню.
---
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:
| Застосування | Опис |
|---|---|
| Інтеграція корпоративних даних | Підключення LLM до баз даних, CRM або внутрішніх інструментів |
| Агентні AI-системи | Дозволяє автономним агентам доступ до інструментів і робочих процесів прийняття рішень |
| Мультимодальні додатки | Об'єднання текстових, графічних і аудіоінструментів в одному AI-додатку |
| Інтеграція даних у реальному часі | Додавання актуальних даних до AI-взаємодій для більш точних і сучасних результатів |
Протокол Контексту Моделі (MCP) виступає універсальним стандартом для AI-взаємодій, подібно до того, як USB-C стандартизував фізичні з'єднання для пристроїв. У світі AI MCP забезпечує послідовний інтерфейс, дозволяючи моделям (клієнтам) безперешкодно інтегруватися із зовнішніми інструментами та постачальниками даних (серверами). Це усуває необхідність у різноманітних кастомних протоколах для кожного API або джерела даних.
Окрім надання інструментів, MCP також сприяє доступу до знань. Він дозволяє додаткам надавати контекст великим мовним моделям (LLM), підключаючи їх до різних джерел даних. Наприклад, сервер 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, існують розширені сценарії, де як клієнт, так і сервер містять LLM, що дозволяє більш складні взаємодії. На наступній схемі Клієнтський додаток може бути 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: Основні концепції
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.
