Як об’єднати агентів LLM з чим завгодно: подорож у світ Model Context Protocol
Автор: Ліла Гарт
У світі, де штучний інтелект стає все більш інтегрованим у наше повсякденне життя, надзвичайно важливо розуміти, як ці технології взаємодіють одна з одною. Зокрема, як великі мовні моделі (LLM) можуть спілкуватися з інструментами, необхідними для виконання завдань, щось на зразок. У цьому контексті, Model Context Protocol (MCP) від Anthropic, представлений у листопаді 2024. Року, відкриває захопливі можливості для створення більш взаємодіючих та ефективних агентів штучного інтелекту.
Щоб розібратися в цьому, припустимо, я вирушила у віртуальну подорож з одним з ентузіастів. Який взявся за сміливе завдання – побудувати власний MCP сервер всього за десять хвилин. Його ентузіазм, підбадьорений великою мискою вуглеводів, і відмова від штучних помічників (курсор, Stack Overflow) обіцяла цікаве занурення.
Навіщо взагалі потрібен MCP? Уявіть собі світ, де агенти ШІ мають безліч інструментів. Справа в тому, що – від доступу до баз даних до взаємодії з веб-сервісами. Кожен фреймворк, додаток або клієнт використовує свій спосіб оголошення цих інструментів. До речі, це може перетворитися на справжній біль у. Голові – постійне створення інтеграцій для використання можливостей ШІ. MCP вирішує цю проблему, стандартизуючи спосіб спілкування LLM з інструментами. Чесно кажучи, визначаючи ваш сервер інструментів один раз, ви можете використовувати його скрізь.
Етап 1: Створення сервера
Звучить серйозно, але наш герой довів, що це можливо. Отже, час пішов!
Інструменти та етап: підготовка до роботи
- .
- Ініціалізація проекту: Все починається з команди
uv init employee-project
. Тут розумієте, створюється основна структура папок для майбутнього сервера. - Virtual environment: для ізоляції проекту було використано virtual environment, що дозволяє незалежно керувати залежностями. Команда
uv venv
створює віртуальне оточення, аuv activate
– активує його. - Встановлення залежностей: Тут настає ключовий момент:
uv add mcp-cli requests
. Більше того, встановлюються необхідні пакети: бібліотека MCP CLI та пакетrequests
, необхідний для взаємодії з API.
Основа: початок роботи над сервером
- , якось так.
- Створення файлу сервера: Найважливіший крок –
touch server. Py
. Фактично, створюється файл, який стане серцем всього процесу. - Імпортування залежностей: Зрозуміло, без них нікуди:
from mcp. Server. Fastmcp import FastMCP
та інші модулі для роботи з JSON та мережевими запитами. - Запуск сервера: ну, Створення об’єкта
FastMCP
з назвоюchurn-and-burn
. Звичайно, це власне і є початок роботи над сервером. - Визначення інструмента: Все стає цікавіше. Використовується декоратор
@mcp. Tool
, що визначає функціюpredict_churn
, яка буде взаємодіяти з вашим API. Щоб було ясно, - Документація: Дуже важливо пояснити агенту, що саме робить цей інструмент, щось на зразок. Написано докладний опис, який описує вхідні та вихідні дані.
- Реалізація логіки: Витягування даних з вхідних параметрів, створення запиту
POST
до API, обробка відповіді і, нарешті, повернення прогнозу. - Запуск сервера: Команда наприклад,
if __name__ == "__main__":
забезпечує запуск сервера при виконанні скрипта. Очевидно,
Результат: подих від полегшення і віра в успіх
Здавалося б, 10 хвилин – це принизливо мало, але герой чудово впорався з завданням. Стримуюча пауза і погляд на секундомір, який показав. 2 хвилини 47 секунд, надихнули на подальші відкриття.
Етап 2: Тестування сервера
Без тестування немає впевненості. Як перевірити, чи працює наш сервер?
Дії:
- Запуск dev-сервера: За допомогою команди
uv run mcp dev server. Py
запускається dev-сервер, який надає нам доступ до MCP інспектора – інструменту для тестування інструментів. Насправді, - Доступ слухайте, до інспектора: Відкривається браузер і вставляється URL.
- Підключення: У інтерфейсі інспектора обирається
STDIО
, оскільки ми працюємо локально. - Вибір інструмента: В інспекторі обираємо наш інструмент
predict_churn
. - Ввід розумієте, даних: Насипаємо JSON з тестовими даними.
- Запуск інструмента: Натискаємо кнопку та чекаємо на результат. Дивно, дивно,
Результат:
Інформація із API з’явилася в інспекторі. Підтвердження того, що наш сервер в принципі, працює успішно проте ми отримали прогноз на основі введених даних, якось так.
Етап 3: Інтеграція з агентом
Останній етап – інтеграція з агентом. Як використовувати все це з живою моделлю?
Кроки:
- Використання слухайте, існуючого приблизно, агента: Зроблено все просто, щоб не витрачати час на зайве. Ну,
- Налаштування параметрів: Вказуємо шлях до нашого серверного файлу, тобто вказуємо шлях до нашого сценарію.
- Запуск агента: Запуск відбувається в терміналі, з використанням усіх необхідних параметрів.
Результат:
Через використання Ollama та моделі Granite 3. Щоб було ясно, дивно, 1, агент зміг зробити свій висновок щодо ймовірності відтоку співробітника, з використанням MCP сервера. Агент зрозумів, що уявіть собі, для відповіді на запитання потрібно використовувати інструмент predict churn
. Насправді,
Спостереження та дивіться, інтероперабельність
Наш дивіться, герой не забув і про важливе – про спостереження. Найпростіший спосіб – імпортувати logging
та додати один рядок в код сервера. Очевидно, всі виклики інструментів будуть відображатися в журналах сервера.
Для демонстрації інтероперабельності, розумієте, наш сервер успішно інтегрували з Cursor. Це доводить, що MCP працює та може використовуватися будь-де.
Підсумок:
Цей швидкий екскурс демонструє, як легко можна почати роботу з MCP та об’єднати агенти LLM з інструментами. Від створення простого сервера до його інтеграції з агентом – все можливо.