Hub Python Library documentation

MCP-клиент

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v2.4.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

MCP-клиент

Библиотека huggingface_hub теперь включает MCPClient, предназначенный для предоставления языковым моделям (LLM) возможности взаимодействия с внешними инструментами через Model Context Protocol (MCP). Этот клиент расширяет AsyncInferenceClient для бесшовной интеграции использования инструментов.

Класс MCPClient подключается к MCP-серверам (локальным stdio-скриптам или удалённым http/sse-сервисам), которые предоставляют инструменты. Он передаёт эти инструменты LLM (через AsyncInferenceClient). Если LLM решает использовать инструмент, MCPClient управляет запросом на выполнение на MCP-сервере и возвращает вывод инструмента обратно в LLM, часто транслируя результаты в реальном времени.

Мы также предоставляем класс Agent более высокого уровня. Этот «Tiny Agent» упрощает создание диалоговых агентов, управляя циклом чата и состоянием, выступая в роли обёртки над MCPClient.

MCP-клиент

класс huggingface_hub.MCPClient

< >

( model: typing.Optional[str] = Noneprovider: typing.Union[typing.Literal['baseten', 'cerebras', 'cohere', 'deepinfra', 'fal-ai', 'featherless-ai', 'fireworks-ai', 'groq', 'hf-inference', 'novita', 'nscale', 'openai', 'ovhcloud', 'publicai', 'replicate', 'scaleway', 'together', 'wavespeed', 'zai-org'], typing.Literal['auto'], NoneType] = Nonebase_url: typing.Optional[str] = Noneapi_key: typing.Optional[str] = None )

Параметры

  • model (str, optional) — Модель для выполнения инференса. Может быть идентификатором модели, размещённой на Hugging Face Hub, например meta-llama/Meta-Llama-3-8B-Instruct, или URL-адресом развернутого Inference Endpoint или другого локального/удалённого эндпоинта.
  • provider (str, необязательный) — Название провайдера, используемого для инференса. По умолчанию — «auto», то есть первый из доступных для модели провайдеров, отсортированных в соответствии с порядком, заданным пользователем в https://hf.co/settings/inference-providers. Если модель указана в виде URL или передан параметр base_url, то provider не используется.
  • base_url (str, необязательный) — Базовый URL для запуска инференса. По умолчанию — None.
  • api_key (str, optional) — Токен для аутентификации. Если не указан, по умолчанию используется локально сохранённый токен Hugging Face. Также можно использовать собственный ключ API провайдера для прямого взаимодействия с его сервисом.

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

Этот класс является экспериментальным и может быть изменён в будущем без предварительного уведомления.

add_mcp_server

< >

( type: typing.Literal['stdio', 'sse', 'http']**params: typing.Any )

Параметры

  • type (str) — Тип подключаемого сервера. Может быть одним из:
    • “stdio”: сервер стандартного ввода/вывода (локальный)
    • “sse”: сервер событий, отправляемых сервером (SSE)
    • “http”: сервер StreamableHTTP
  • **params (dict[str, Any]) — Параметры сервера, которые могут быть следующими:
    • Для серверов stdio:
      • command (str): команда для запуска MCP-сервера
      • args (list[str], optional): Аргументы для команды
      • env (dict[str, str], optional): Переменные окружения для команды
      • cwd (Union[str, Path, None], optional): Рабочая директория для команды
      • allowed_tools (list[str], optional): Список имён инструментов, разрешённых с этого сервера
    • Для SSE-серверов:
      • url (str): URL SSE-сервера
      • headers (dict[str, Any], optional): Заголовки для SSE-соединения
      • timeout (float, optional): Таймаут подключения
      • sse_read_timeout (float, optional): тайм-аут чтения SSE
      • allowed_tools (list[str], optional): Список имён инструментов, разрешённых с этого сервера
    • Для серверов StreamableHTTP:
      • url (str): URL сервера StreamableHTTP
      • headers (dict[str, Any], optional): Заголовки для подключения StreamableHTTP
      • timeout (timedelta, необязательно): Тайм-аут подключения
      • sse_read_timeout (timedelta, optional): тайм-аут чтения SSE
      • terminate_on_close (bool, optional): Завершать ли процесс при закрытии
      • allowed_tools (list[str], optional): Список имён инструментов, разрешённых с этого сервера

Подключение к серверу MCP

очистка

< >

( )

Освобождение ресурсов

process_single_turn_with_tools

< >

( messages: listexit_loop_tools: typing.Optional[list[huggingface_hub.inference._generated.types.chat_completion.ChatCompletionInputTool]] = Noneexit_if_first_chunk_no_tool: bool = False )

Параметры

  • messages (list[dict]) — Список объектов сообщений, представляющих историю диалога
  • exit_loop_tools (list[ChatCompletionInputTool], необязательный) — Список инструментов, вызов которых должен завершить работу генератора
  • exit_if_first_chunk_no_tool (bool, необязательный) — Завершить работу, если в первых чанках нет инструмента. По умолчанию False.

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

Агент

класс huggingface_hub.Agent

< >

( model: Optional[str] = Noneservers: Iterable[ServerConfig]provider: Optional[PROVIDER_OR_POLICY_T] = Nonebase_url: Optional[str] = Noneapi_key: Optional[str] = Noneprompt: Optional[str] = None )

Параметры

  • model (str, необязательный) — Модель, с которой выполняется инференс. Может быть идентификатором модели, размещенной на Hugging Face Hub, например meta-llama/Meta-Llama-3-8B-Instruct, или URL-адресом развернутого Inference Endpoint или другого локального или удаленного конечного пункта.
  • servers (Iterable[dict]) — MCP-серверы для подключения. Каждый сервер представляет собой словарь, содержащий ключ type и ключ config. Значением ключа type может быть "stdio" или "sse", а ключ config содержит словарь аргументов для сервера.
  • provider (str, необязательный) — Название провайдера, используемого для инференса. По умолчанию — «auto», то есть первый из доступных для модели провайдеров, отсортированных в соответствии с порядком, заданным пользователем в https://hf.co/settings/inference-providers. Если модель указана в виде URL или передан параметр base_url, то provider не используется.
  • base_url (str, необязательный) — Базовый URL для запуска инференса. По умолчанию — None.
  • api_key (str, необязательный) — Токен для аутентификации. Если не указан, по умолчанию используется локально сохранённый токен Hugging Face. Также можно использовать собственный ключ API провайдера для прямого взаимодействия с его сервисом.
  • prompt (str, необязательный) — Системный промпт, используемый для агента. По умолчанию используется системный промпт по умолчанию из constants.py.

Реализация простого агента, представляющего собой обычный цикл while, построенный непосредственно на базе MCPClient.

Этот класс является экспериментальным и может быть изменён в будущем без предварительного уведомления.

run

< >

( user_input: strabort_event: Optional[asyncio.Event] = None )

Параметры

  • user_input (str) — Входные данные пользователя для запуска агента.
  • abort_event (asyncio.Event, необязательный) — Событие, которое можно использовать для прерывания агента. Если событие установлено, агент прекратит выполнение.

Запустите агента с указанным пользовательским вводом.

Update on GitHub