Перейти к содержимому
ПереводыHugging Face

MCP Course, юнит 1 (часть 2): SDK, клиенты, сервер Hugging Face и Gradio

Перевод второй половины юнита 1 курса Hugging Face о MCP: сервер на официальном SDK и отладчик MCP Inspector, настройка клиентов через mcp.json, tiny agents, MCP-сервер Hugging Face и превращение приложения Gradio в MCP-сервер.

Это перевод второй половины юнита 1 курса MCP Course. Начало юнита — понятия, архитектура и протокол, продолжение курса — юнит 2: приложение на MCP от начала до конца. Путеводитель по курсу — здесь.

У Model Context Protocol есть официальные SDK для JavaScript, Python и других языков. С ними легко реализовать MCP-клиенты и серверы в своих приложениях. SDK берут на себя низкоуровневые детали протокола, и вы можете сосредоточиться на возможностях своего приложения.

Оба SDK дают похожую базовую функциональность и следуют спецификации протокола MCP, которую мы обсуждали раньше. Они берут на себя:

  • обмен данными на уровне протокола;
  • регистрацию и обнаружение возможностей;
  • сериализацию и десериализацию сообщений;
  • управление соединениями;
  • обработку ошибок.

Посмотрим, как реализовать каждый из базовых примитивов (инструменты, ресурсы и промпты) в обоих SDK.

В оригинале здесь встроено видео (YouTube, id exzrb5QNUis).

from mcp.server.fastmcp import FastMCP
# Создаём MCP-сервер
mcp = FastMCP("Weather Service")
# Реализация инструмента
@mcp.tool()
def get_weather(location: str) -> str:
"""Get the current weather for a specified location."""
return f"Weather in {location}: Sunny, 72°F"
# Реализация ресурса
@mcp.resource("weather://{location}")
def weather_resource(location: str) -> str:
"""Provide weather data as a resource."""
return f"Weather data for {location}: Sunny, 72°F"
# Реализация промпта
@mcp.prompt()
def weather_report(location: str) -> str:
"""Create a weather report prompt."""
return f"""You are a weather reporter. Weather report for {location}?"""
# Запускаем сервер
if __name__ == "__main__":
mcp.run()

Реализовав сервер, вы можете запустить его скриптом сервера.

Окно терминала
mcp dev server.py

Эта команда запустит сервер для разработки с файлом server.py и выведет в лог:

Окно терминала
Starting MCP inspector...
⚙️ Proxy server listening on port 6277
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Set up MCP proxy
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀

Теперь можно открыть MCP Inspector по адресу http://127.0.0.1:6274, посмотреть возможности сервера и поработать с ними.

Вы увидите возможности сервера и сможете вызывать их через интерфейс.

(В оригинале — скриншот MCP Inspector: слева настройки подключения, сверху вкладки Resources, Prompts, Tools, в центре список инструментов и форма вызова. Ссылка на рисунок.)

MCP не зависит от языка программирования, и для нескольких популярных языков есть официальные SDK:

ЯзыкРепозиторийКто поддерживаетСтатус
TypeScriptgithub.com/modelcontextprotocol/typescript-sdkAnthropicактивен
Pythongithub.com/modelcontextprotocol/python-sdkAnthropicактивен
Javagithub.com/modelcontextprotocol/java-sdkSpring AI (VMware)активен
Kotlingithub.com/modelcontextprotocol/kotlin-sdkJetBrainsактивен
C#github.com/modelcontextprotocol/csharp-sdkMicrosoftактивен (предварительная версия)
Swiftgithub.com/modelcontextprotocol/swift-sdkloopwork-aiактивен
Rustgithub.com/modelcontextprotocol/rust-sdkAnthropic и сообществоактивен
Dartgithub.com/leehack/mcp_dartсообщество Flutterактивен

(Примечание переводчика: таблица — на момент написания курса. Список официальных SDK с тех пор пополнился, актуальный — в организации modelcontextprotocol на GitHub.)

Эти SDK дают удобные для каждого языка абстракции и упрощают работу с протоколом MCP: вы занимаетесь основной логикой своих серверов и клиентов, а не низкоуровневыми деталями протокола.

Мы лишь прикоснулись к возможностям MCP, но у вас уже работает простой сервер. Более того, вы уже подключились к нему MCP-клиентом в браузере.

В следующем разделе мы посмотрим, как подключиться к серверу из LLM.

Проверьте, как вы поняли MCP SDK и их возможности.

Тест 2: MCP SDK5 вопросов
1 Какова главная задача MCP SDK?
2 Что из перечисленного обычно берут на себя MCP SDK?
3 Какая компания, согласно тексту курса, поддерживает официальный Python SDK для MCP?
4 Какой командой запускают MCP-сервер для разработки из файла server.py?
5 Какую роль в MCP играет JSON-RPC 2.0?

Поздравляем с прохождением теста 🥳! Если нужно что-то повторить, вернитесь к разделам выше.

Теперь, когда мы в общих чертах понимаем Model Context Protocol, можно разобрать важнейшую роль MCP-клиентов в экосистеме MCP.

В этой части юнита 1 вы:

  • поймёте, что такое MCP-клиенты и какова их роль в архитектуре MCP;
  • узнаете главные обязанности MCP-клиентов;
  • познакомитесь с основными реализациями MCP-клиентов;
  • узнаете, как подключиться к MCP-серверу Hugging Face и его встроенным инструментам;
  • увидите практические примеры использования MCP-клиентов.

MCP-клиенты — важнейшие компоненты, которые служат мостом между приложениями ИИ (хостами) и внешними возможностями, которые предоставляют MCP-серверы. Представьте хост как основное приложение (например, ИИ-ассистент или IDE), а клиент — как специальный модуль внутри хоста, который отвечает за обмен данными по MCP.

Начнём с клиентов с пользовательским интерфейсом, которые уже поддерживают MCP.

  • Claude Desktop (Anthropic)
  • расширения VS Code с поддержкой MCP (например, Continue);
  • Cursor IDE (встроенный MCP-клиент);
  • редактор Zed.

Эти клиенты умеют подключаться к нескольким MCP-серверам и вызывать инструменты в реальном времени.

Hugging Face предоставляет размещённый у себя MCP-сервер со встроенными инструментами для поиска моделей, датасетов, Spaces и статей.

  1. Войдите в аккаунт и откройте https://huggingface.co/settings/mcp.
  2. Выберите свой MCP-совместимый клиент (например, VS Code, Cursor, Zed, Claude Desktop).
  3. Скопируйте сгенерированный фрагмент конфигурации в настройки MCP своего клиента.
  4. Перезапустите или перезагрузите клиент. Вы должны увидеть, что «Hugging Face» подключён.

Совет: используйте сгенерированный фрагмент, а не пишите конфигурацию руками — он подогнан под конкретный клиент.

Разобравшись с ядром протокола MCP, посмотрим, как настраивать MCP-серверы и клиенты.

Чтобы MCP-серверы и клиенты хорошо работали, их нужно правильно настроить.

MCP-хосты управляют подключениями к серверам через конфигурационные файлы. В них описано, какие серверы доступны и как к ним подключаться.

К счастью, эти файлы очень простые, понятные и единообразные у основных MCP-хостов.

Стандартный конфигурационный файл MCP называется mcp.json. Вот его базовая структура.

Такую структуру mcp.json можно передать приложениям вроде Claude Desktop, Cursor или VS Code.

{
"servers": [
{
"name": "Server Name",
"transport": {
"type": "stdio|sse",
// Настройки, специфичные для транспорта
}
}
]
}

В этом примере один сервер с именем и типом транспорта. Тип транспорта — stdio или sse.

Для локальных серверов с транспортом stdio в конфигурации указывают команду и аргументы для запуска процесса сервера:

{
"servers": [
{
"name": "File Explorer",
"transport": {
"type": "stdio",
"command": "python",
"args": ["/path/to/file_explorer_server.py"] // Это пример, настоящий сервер будет в следующем юните
}
}
]
}

Здесь сервер с именем «File Explorer» («Проводник») — это локальный скрипт.

Для удалённых серверов с транспортом HTTP+SSE в конфигурации указывают URL сервера:

{
"servers": [
{
"name": "Remote API Server",
"transport": {
"type": "sse",
"url": "https://example.com/mcp-server"
}
}
]
}

Переменные окружения можно передать процессу сервера через поле env. Вот как прочитать их в коде сервера:

В Python переменные окружения читают через модуль os:

import os
# Читаем переменные окружения
github_token = os.environ.get("GITHUB_TOKEN")
if not github_token:
raise ValueError("GITHUB_TOKEN environment variable is required")
# Используем токен в коде сервера
def make_github_request():
headers = {"Authorization": f"Bearer {github_token}"}
# ... остальной код

(Сообщение об ошибке: «нужна переменная окружения GITHUB_TOKEN».)

Соответствующая конфигурация в mcp.json выглядела бы так:

{
"servers": [
{
"name": "GitHub API",
"transport": {
"type": "stdio",
"command": "python",
"args": ["/path/to/github_server.py"], // Это пример, настоящий сервер будет в следующем юните
"env": {
"GITHUB_TOKEN": "your_github_token"
}
}
}
]
}

(Примечание переводчика: не публикуйте конфигурацию с настоящим токеном — например, не коммитьте её в git. your_github_token — заглушка.)

Посмотрим на несколько реальных сценариев настройки.

В этом сценарии у нас локальный сервер — скрипт на Python, например проводник по файлам или редактор кода.

{
"servers": [
{
"name": "File Explorer",
"transport": {
"type": "stdio",
"command": "python",
"args": ["/path/to/file_explorer_server.py"] // Это пример, настоящий сервер будет в следующем юните
}
}
]
}

В этом сценарии у нас удалённый сервер — API погоды.

{
"servers": [
{
"name": "Weather API",
"transport": {
"type": "sse",
"url": "https://example.com/mcp-server" // Это пример, настоящий сервер будет в следующем юните
}
}
]
}

Правильная настройка необходима, чтобы интеграции через MCP успешно работали. Понимая эти аспекты, вы сможете создавать надёжные подключения между приложениями ИИ и внешними возможностями.

В следующем разделе мы посмотрим на экосистему MCP-серверов на Hugging Face Hub и на то, как публиковать там свои серверы.

Теперь посмотрим, как использовать MCP-клиенты из кода.

В роли MCP-клиентов можно использовать и tiny agents («крошечные агенты»), чтобы подключаться к MCP-серверам прямо из своего кода. Tiny agents — простой способ создать агента ИИ, который пользуется инструментами MCP-серверов.

Tiny agent может запускать MCP-серверы как программы командной строки. Для этого понадобится установить npm и запускать сервер через npx. Это нужно и для Python, и для JavaScript.

Установим npx через npm. Если npm у вас не установлен, посмотрите документацию npm.

Сначала установим npx, если его ещё нет. Это можно сделать такой командой:

Окно терминала
# устанавливаем npx
npm install -g npx

(Примечание переводчика: обычно этот шаг не нужен — npx входит в состав npm, начиная с версии 5.2, и устанавливается вместе с Node.js. Проверьте командой npx --version.)

Затем установим пакет huggingface_hub с поддержкой MCP. Это позволит запускать MCP-серверы и клиенты.

Окно терминала
pip install "huggingface_hub[mcp]>=0.32.0"

Затем нужно войти в Hugging Face Hub, чтобы получить доступ к MCP-серверам. Это делается через командную строку Hugging Face. Понадобится токен для входа.

Окно терминала
# Входим через новую командную строку
hf auth login

Примечание. Команда huggingface-cli устарела, её заменила hf. Если видите ошибку «command not found», убедитесь, что у вас свежая версия huggingface_hub.

Создав токен доступа Hugging Face и войдя в аккаунт, нужно убедиться, что у токена есть права на работу с провайдерами инференса (inference providers).

  1. Откройте страницу токенов доступа Hugging Face.
  2. Найдите свой токен для MCP и нажмите три точки (⋮) рядом с ним.
  3. Выберите «Edit permissions» («Изменить права»).
  4. В разделе Inference отметьте пункт «Make calls to Inference Providers» («Делать вызовы к провайдерам инференса»).
  5. Сохраните изменения.

Это право нужно, потому что tiny agents вызывают через API размещённые модели вроде Qwen/Qwen2.5-72B-Instruct через провайдеров вроде Novita.

Теперь создадим файл конфигурации агента agent.json.

{
"name": "playwright-agent",
"description": "Agent with Playwright MCP server",
"model": "Qwen/Qwen2.5-72B-Instruct",
"provider": "novita",
"servers": [
{
"type": "stdio",
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
]
}

В этой конфигурации используется MCP-сервер @playwright/mcp. Это MCP-сервер, который управляет браузером через Playwright.

Теперь можно запустить агента:

Окно терминала
tiny-agents run agent.json

В видео ниже мы запускаем агента и просим его открыть новую вкладку в браузере.

Пример ниже — агент для веб-браузинга: он использует модель Qwen/Qwen2.5-72B-Instruct через провайдера инференса Novita и подключён к MCP-серверу Playwright, который позволяет ему пользоваться веб-браузером! Конфигурация агента загружается по пути в датасете tiny-agents/tiny-agents на Hugging Face.

(В оригинале — видео: агент запускается, печатает список найденных инструментов Playwright и по запросу управляет браузером. Ссылка на видео.)

Когда вы запускаете агента, он загружается и выводит список инструментов, найденных у подключённых MCP-серверов. После этого он готов к вашим запросам!

Промпт из этой демонстрации:

do a Web Search for HF inference providers on Brave Search and open the first result and then give me the list of the inference providers supported on Hugging Face

(Перевод: «поищи в Brave Search провайдеров инференса HF, открой первый результат и дай мне список провайдеров инференса, которых поддерживает Hugging Face».)

Теперь, когда вы понимаете MCP-клиенты, вы готовы:

  • изучить конкретные реализации MCP-серверов;
  • научиться создавать свои MCP-клиенты;
  • погрузиться в продвинутые схемы интеграции через MCP.

Продолжим путешествие в мир Model Context Protocol!

MCP-сервер Hugging Face подключает ваш MCP-совместимый ИИ-ассистент (например, VS Code, Cursor, Zed или Claude Desktop) прямо к Hugging Face Hub. После подключения ассистент может искать и изучать ресурсы Hub и пользоваться инструментами сообщества — прямо из редактора, чата или командной строки.

  • Искать и изучать ресурсы Hub: модели, датасеты, Spaces и статьи.
  • Запускать инструменты сообщества через MCP-совместимые приложения Gradio, размещённые в Spaces.
  • Возвращать результаты в ассистента вместе с метаданными, ссылками и контекстом.

Сервер предоставляет подобранные инструменты, которые работают во всех поддерживаемых клиентах:

  • поиск и изучение моделей (фильтры по задаче, библиотеке, числу скачиваний, лайкам);
  • поиск и изучение датасетов (фильтры по тегам, размеру, модальности);
  • семантический поиск по Spaces (поиск приложений по возможностям, например TTS, ASR, OCR);
  • семантический поиск по статьям (поиск релевантных исследований на Hub).

(TTS — синтез речи, ASR — распознавание речи, OCR — распознавание текста на изображениях.)

  1. Откройте настройки MCP: войдите в аккаунт и зайдите на https://huggingface.co/settings/mcp.

  2. Выберите клиент: укажите свой MCP-совместимый клиент (например, VS Code, Cursor, Zed, Claude Desktop). На странице появятся инструкции для этого клиента и готовый к копированию фрагмент конфигурации.

  3. Вставьте и перезапустите: скопируйте фрагмент в конфигурацию MCP своего клиента, сохраните и перезапустите или перезагрузите клиент. Вы должны увидеть «Hugging Face» (или похожее название) в списке подключённых MCP-серверов.

(В оригинале — скриншот страницы настроек MCP на Hugging Face. Ссылка на рисунок.)

После подключения просите ассистента воспользоваться инструментами Hugging Face. Примеры запросов:

  • «Найди на Hugging Face квантованные версии Qwen 3».
  • «Найди Space, который умеет расшифровывать аудиофайлы».
  • «Покажи датасеты с временными рядами погоды».
  • «Создай изображение кота в стиле Ghibli размером 1024 × 1024».

Ассистент вызовет MCP-инструменты, которые предоставляет MCP-сервер Hugging Face (включая Spaces), и вернёт результаты (названия, авторов, число скачиваний, ссылки и так далее). Дальше можно открыть ресурс на Hub или продолжить работу в том же чате.

(В оригинале — скриншот VS Code, где ассистент вызывает инструменты сервера Hugging Face и Spaces. Ссылка на рисунок.)

Свою конфигурацию можно расширить MCP-совместимыми Gradio Spaces, созданными сообществом:

  • Найдите Spaces с поддержкой MCP здесь.
  • Добавьте нужный Space в настройках MCP на Hugging Face здесь.

MCP-приложения Gradio предоставляют свои функции как инструменты (с аргументами и описаниями), и ассистент может вызывать их напрямую. Перезапустите или обновите клиент, чтобы он подхватил новые инструменты.

Мы разобрали основные понятия протокола MCP и то, как реализовать MCP-серверы и клиенты. В этом разделе мы немного упростим себе жизнь и создадим MCP-сервер с помощью Gradio!

Gradio позволяет сделать интерфейс к модели несколькими строками кода на Python. Особенно удобно это для:

  • демонстраций и прототипов;
  • показа моделей людям без технической подготовки;
  • проверки и отладки поведения модели.

С появлением поддержки MCP Gradio даёт простой способ открыть возможности модели ИИ через стандартный протокол MCP.

Сочетание Gradio и MCP позволяет минимумом кода сделать и удобный для людей интерфейс, и доступные для ИИ инструменты. А лучше всего то, что Gradio уже широко используется сообществом ИИ, так что через него удобно делиться своими MCP-серверами.

Чтобы пользоваться Gradio с поддержкой MCP, установите Gradio с дополнением MCP:

Окно терминала
uv pip install "gradio[mcp]"

Ещё понадобится приложение с LLM, которое поддерживает вызов инструментов по протоколу MCP, например Cursor (такие приложения называют «MCP-хостами»).

(Примечание переводчика: uv pip — команда быстрого менеджера пакетов uv; с обычным pip пишите pip install "gradio[mcp]".)

Разберём простой пример MCP-сервера на Gradio:

import gradio as gr
def letter_counter(word: str, letter: str) -> int:
"""
Count the number of occurrences of a letter in a word or text.
Args:
word (str): The input text to search through
letter (str): The letter to search for
Returns:
int: The number of times the letter appears in the text
"""
word = word.lower() # приводим текст к нижнему регистру
letter = letter.lower() # и букву тоже, чтобы «А» и «а» считались одинаково
count = word.count(letter)
return count
# Создаём обычный интерфейс Gradio
demo = gr.Interface(
fn=letter_counter,
inputs=["textbox", "textbox"],
outputs="number",
title="Letter Counter",
description="Enter text and a letter to count how many times the letter appears in the text."
)
# Запускаем и веб-интерфейс Gradio, и MCP-сервер
if __name__ == "__main__":
demo.launch(mcp_server=True)

(Докстринг оставлен на английском — из него Gradio делает описание инструмента для модели. Перевод: «Посчитать, сколько раз буква встречается в слове или тексте. Аргументы: word — текст, в котором ищем; letter — искомая буква. Возвращает: сколько раз буква встречается в тексте». Описание интерфейса: «Введите текст и букву, чтобы узнать, сколько раз буква встречается в тексте».)

После этого функция подсчёта букв доступна:

  1. через обычный веб-интерфейс Gradio — для людей;
  2. через MCP-сервер, к которому могут подключиться совместимые клиенты.

MCP-сервер будет доступен по адресу:

http://your-server:port/gradio_api/mcp/sse

Само приложение по-прежнему доступно и выглядит так:

(В оригинале — скриншот: два текстовых поля, кнопка и поле с числом. Ссылка на рисунок.)

Когда вы ставите mcp_server=True в launch(), происходит следующее:

  1. Функции Gradio автоматически превращаются в инструменты MCP.
  2. Компоненты ввода отображаются в схему аргументов инструмента.
  3. Компоненты вывода определяют формат ответа.
  4. Сервер Gradio начинает слушать и сообщения протокола MCP.
  5. Для обмена между клиентом и сервером настраивается JSON-RPC поверх HTTP+SSE.
  1. Превращение в инструменты. Каждый эндпоинт API вашего приложения Gradio автоматически превращается в инструмент MCP с соответствующим именем, описанием и схемой входа. Чтобы посмотреть инструменты и схемы, откройте http://your-server:port/gradio_api/mcp/schema или нажмите ссылку «View API» внизу приложения Gradio, а затем «MCP».

  2. Поддержка переменных окружения. Включить MCP-сервер можно двумя способами:

    • параметром mcp_server в launch():
      demo.launch(mcp_server=True)
    • переменной окружения:
      Окно терминала
      export GRADIO_MCP_SERVER=True
  3. Работа с файлами. Сервер сам преобразует файловые данные:

    • превращает строки в base64 в файлы;
    • обрабатывает изображения и возвращает их в правильном формате;
    • управляет временным хранилищем файлов.

    Настоятельно рекомендуется передавать изображения и файлы на вход полными URL («http://…» или «https://…»): MCP-клиенты не всегда правильно работают с локальными файлами.

  4. MCP-серверы на 🤗 Spaces. Приложение Gradio можно бесплатно опубликовать в Hugging Face Spaces — и получить бесплатный размещённый MCP-сервер. Пример такого Space: https://huggingface.co/spaces/abidlabs/mcp-tools

Подключайте MCP-совместимые Spaces к своему клиенту

Заголовок раздела «Подключайте MCP-совместимые Spaces к своему клиенту»

Любой MCP-совместимый Space можно подключить к ассистенту через настройки MCP на Hugging Face:

  1. Найдите MCP-совместимые Spaces: https://huggingface.co/spaces?search=mcp
  2. Откройте https://huggingface.co/settings/mcp (войдя в аккаунт) и добавьте Space.
  3. Перезапустите или обновите MCP-клиент, чтобы он обнаружил новые инструменты.

Эти Spaces предоставляют свои функции как инструменты с аргументами и описаниями, и ассистент может вызывать их напрямую.

  1. Аннотации типов и докстринги. Обязательно указывайте аннотации типов и правильные докстринги у функций. В докстринге должен быть блок «Args:» с именами параметров с отступом.

  2. Строковые входы. Если сомневаетесь, принимайте аргументы как str и преобразуйте в нужный тип внутри функции.

  3. Поддержка SSE. Некоторые MCP-хосты не поддерживают MCP-серверы на SSE. Тогда можно использовать mcp-remote:

    {
    "mcpServers": {
    "gradio": {
    "command": "npx",
    "args": [
    "mcp-remote",
    "http://your-server:port/gradio_api/mcp/sse"
    ]
    }
    }
    }
  4. Перезапуск. Если возникают проблемы с подключением, перезапустите и MCP-клиент, и MCP-сервер.

(Примечание переводчика: mcp-remote — небольшая программа-посредник: хост запускает её как обычный локальный stdio-сервер, а она пересылает сообщения удалённому серверу по HTTP. Точный адрес MCP-сервера Gradio печатает в консоли при запуске приложения — сверяйтесь с ним: в новых версиях Gradio есть и адрес для Streamable HTTP.)

Своим MCP-сервером можно поделиться, опубликовав приложение Gradio в Hugging Face Spaces. В видео ниже показано, как создать Space.

(В оригинале — видео на YouTube, id 3bSVKNKb_PY.)

Теперь вы можете делиться MCP-сервером с другими, просто давая ссылку на свой Space.

Интеграция Gradio с MCP — доступная точка входа в экосистему MCP. Сочетая простоту Gradio и стандартизацию MCP, разработчики минимумом кода быстро создают и удобные для людей интерфейсы, и доступные для ИИ инструменты.

Дальше в курсе мы разберём более сложные реализации MCP, но Gradio — отличная отправная точка, чтобы понять протокол и поэкспериментировать с ним.

В следующем юните мы глубже погрузимся в создание MCP-приложений: настроим среду разработки, изучим SDK и реализуем более продвинутые MCP-серверы и клиенты.

MCP — стандартный протокол для подключения моделей ИИ к внешним инструментам, источникам данных и средам. Он снимает ограничения нынешних систем ИИ, обеспечивая совместимость и доступ к информации в реальном времени.

MCP построен по клиент-серверной модели: клиенты ведут обмен данными между пользователями и серверами. Такая архитектура модульна: новые серверы легко добавлять без изменений в существующих хостах.

Хост — приложение ИИ, с которым работает пользователь, его интерфейс для конечных пользователей.

Клиент — компонент внутри хост-приложения, который ведёт обмен данными с конкретным MCP-сервером. Клиенты держат соединения один-к-одному с серверами и берут на себя детали протокола.

Сервер — внешняя программа или сервис, которая даёт доступ к инструментам, источникам данных или сервисам по протоколу MCP. Серверы — лёгкие обёртки вокруг существующей функциональности.

Инструменты — исполняемые функции, которые выполняют действия (например, отправляют сообщения, делают запросы к API). Инструментами обычно управляет модель, и из-за возможных побочных эффектов на их вызов нужно согласие пользователя.

Ресурсы — источники данных только для чтения, которые дают контекст без сложных вычислений. Ресурсами управляет приложение; они похожи на GET-эндпоинты в REST API.

Промпты — заранее заданные шаблоны или сценарии, которые направляют взаимодействие пользователей, моделей ИИ и доступных возможностей. Промптами управляет пользователь, они задают контекст взаимодействия.

Сэмплирование — запросы на обработку в LLM, которые инициирует сервер. Оно позволяет серверу вести агентное поведение и, возможно, рекурсивные или многошаговые взаимодействия. Обычно на него нужно согласие пользователя.

Протокол MCP использует JSON-RPC 2.0 как формат сообщений между клиентами и серверами. Поддерживаются два основных транспортных механизма: stdio (для локального обмена) и HTTP+SSE (для удалённого). Сообщения бывают трёх видов: запросы, ответы и уведомления.

MCP позволяет клиентам динамически узнавать доступные инструменты, ресурсы и промпты через методы-списки (например, tools/list). Благодаря этому клиенты подстраиваются под возможности каждого сервера без заранее «зашитого» знания о его функциях.

Официальные SDK есть для многих языков программирования. Они берут на себя обмен данными на уровне протокола, регистрацию возможностей и обработку ошибок, упрощая разработку.

Gradio позволяет легко создавать веб-интерфейсы, которые открывают возможности по протоколу MCP, так что ими могут пользоваться и люди, и модели ИИ. Минимум кода — и у вас удобный интерфейс для людей вместе с доступными для ИИ инструментами.

  • Размещённый MCP-сервер теперь работает с большим числом клиентов (VS Code, Cursor, Zed, Claude Desktop).
  • Подобранные встроенные инструменты для поиска моделей, датасетов, Spaces и статей.
  • Готовые фрагменты конфигурации в один клик на https://huggingface.co/settings/mcp.
  • MCP-совместимые Gradio Spaces можно добавить в настройках и пользоваться ими прямо из ассистента.

Отлично! Вы прошли первый юнит курса по MCP. Теперь пора сдать экзамен и получить сертификат.

В оригинале здесь встроен тест по юниту — Space mcp-course/unit_1_quiz на Hugging Face Hub. Если найдёте ошибки, сообщите о них во вкладке Community этого Space.

EnglishРусский
SDK (software development kit)набор средств разработки
MCP Inspectorотладчик MCP-серверов в браузере
configuration file, mcp.jsonконфигурационный файл
environment variableпеременная окружения
access token, permissionsтокен доступа, права
inference providerпровайдер инференса (облачный сервис, который запускает модель)
tiny agents«крошечные агенты» Hugging Face — агент из файла конфигурации
hosted serverразмещённый (облачный) сервер
SpaceSpace — приложение, размещённое на Hugging Face
type hints, docstringаннотации типов, докстринг