Hub Python Library documentation

Cliente MCP

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Cliente MCP

La biblioteca huggingface_hub incluye ahora un MCPClient, diseñado para dotar a los Modelos de Lenguaje Grandes (LLM) de la capacidad de interactuar con Herramientas externas a través del Model Context Protocol (MCP). Este cliente extiende un AsyncInferenceClient para integrar el uso de Herramientas de manera fluida.

El MCPClient se conecta a servidores MCP (scripts locales de stdio o servicios remotos de http/sse) que exponen herramientas. Proporciona estas herramientas a un LLM (a través de AsyncInferenceClient). Si el LLM decide utilizar una herramienta, MCPClient gestiona la solicitud de ejecución al servidor MCP y devuelve la salida de la herramienta al LLM, a menudo transmitiendo los resultados en tiempo real.

También proporcionamos una clase Agent de mayor nivel. Este ‘Tiny Agent’ simplifica la creación de agentes conversacionales al gestionar el bucle de chat y el estado, actuando como un envoltorio alrededor de MCPClient.

Cliente MCP

clase 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 )

Parámetros

  • model (str, optional) — El modelo con el que se ejecutará la inferencia. Puede ser un identificador de modelo alojado en Hugging Face Hub, por ejemplo meta-llama/Meta-Llama-3-8B-Instruct o una URL de un Inference Endpoint desplegado u otro endpoint local o remoto.
  • provider (str, opcional) — Nombre del proveedor que se usará para la inferencia. El valor predeterminado es “auto”, es decir, el primero de los proveedores disponibles para el modelo, ordenados según la preferencia del usuario en https://hf.co/settings/inference-providers. Si el modelo es una URL o se pasa base_url, entonces provider no se utiliza.
  • base_url (str, opcional) — La URL base para ejecutar la inferencia. El valor predeterminado es None.
  • api_key (str, optional) — Token para la autenticación. Si no se proporciona, se usará el token de Hugging Face guardado localmente. También puede usar su propia clave de API del proveedor para interactuar directamente con el servicio del proveedor.

Cliente para conectarse a uno o más servidores MCP y procesar completados de chat con herramientas.

Esta clase es experimental y podría estar sujeta a cambios que rompan la compatibilidad en el futuro sin previo aviso.

add_mcp_server

< >

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

Parámetros

  • type (str) — Tipo de servidor al que conectarse. Puede ser uno de los siguientes:
    • “stdio”: servidor de entrada/salida estándar (local)
    • “sse”: servidor de eventos enviados por el servidor (SSE)
    • “http”: servidor StreamableHTTP
  • **params (dict[str, Any]) — Parámetros del servidor que pueden ser:
    • Para servidores stdio:
      • command (str): El comando para ejecutar el servidor MCP
      • args (list[str], opcional): Argumentos para el comando
      • env (dict[str, str], opcional): Variables de entorno para el comando
      • cwd (Union[str, Path, None], opcional): Directorio de trabajo para el comando
      • allowed_tools (list[str], opcional): Lista de nombres de herramientas permitidas desde este servidor
    • Para servidores SSE:
      • url (str): La URL del servidor SSE
      • headers (dict[str, Any], opcional): Encabezados para la conexión SSE
      • timeout (float, opcional): Tiempo de espera de la conexión
      • sse_read_timeout (float, opcional): tiempo de espera de lectura SSE
      • allowed_tools (list[str], opcional): Lista de nombres de herramientas permitidas desde este servidor
    • Para servidores StreamableHTTP:
      • url (str): La URL del servidor StreamableHTTP
      • headers (dict[str, Any], opcional): Encabezados para la conexión StreamableHTTP
      • timeout (timedelta, opcional): Tiempo de espera de la conexión
      • sse_read_timeout (timedelta, opcional): tiempo de espera de lectura de SSE
      • terminate_on_close (bool, opcional): Si se debe terminar al cerrar
      • allowed_tools (list[str], opcional): Lista de nombres de herramientas permitidas desde este servidor

Conectar a un servidor MCP

limpieza

< >

( )

Liberar recursos

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 )

Parámetros

  • messages (list[dict]) — Lista de objetos de mensaje que representan el historial de la conversación
  • exit_loop_tools (list[ChatCompletionInputTool], opcional) — Lista de herramientas que deben hacer que el generador termine cuando se llamen
  • exit_if_first_chunk_no_tool (bool, opcional) — Sale si no hay ninguna herramienta en los primeros fragmentos. El valor predeterminado es False.

Procesa una consulta usando self.model y las herramientas disponibles, generando fragmentos y salidas de herramientas.

Agente

clase 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 )

Parámetros

  • model (str, opcional) — El modelo con el que se ejecutará la inferencia. Puede ser un identificador de modelo alojado en Hugging Face Hub, por ejemplo meta-llama/Meta-Llama-3-8B-Instruct o una URL de un Inference Endpoint desplegado u otro endpoint local o remoto.
  • servers (Iterable[dict]) — Servidores MCP a los que conectarse. Cada servidor es un diccionario que contiene una clave type y una clave config. La clave type puede ser "stdio" o "sse", y la clave config es un diccionario de argumentos para el servidor.
  • provider (str, opcional) — Nombre del proveedor que se usará para la inferencia. El valor predeterminado es “auto”, es decir, el primero de los proveedores disponibles para el modelo, ordenados según la preferencia del usuario en https://hf.co/settings/inference-providers. Si el modelo es una URL o se pasa base_url, entonces provider no se utiliza.
  • base_url (str, opcional) — La URL base para ejecutar la inferencia. El valor predeterminado es None.
  • api_key (str, opcional) — Token que se usará para la autenticación. Si no se proporciona, se usará por defecto el token de Hugging Face guardado localmente. También puede usar su propia clave de API de proveedor para interactuar directamente con el servicio del proveedor.
  • prompt (str, opcional) — El prompt de sistema a utilizar para el agente. Por defecto, se utiliza el prompt de sistema predeterminado en constants.py.

Implementación de un agente simple, que es un simple bucle while construido directamente sobre un MCPClient.

Esta clase es experimental y podría estar sujeta a cambios que rompan la compatibilidad en el futuro sin previo aviso.

run

< >

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

Parámetros

  • user_input (str) — La entrada del usuario para ejecutar el agente.
  • abort_event (asyncio.Event, opcional) — Un evento que se puede usar para abortar el agente. Si el evento se establece, el agente dejará de ejecutarse.

Ejecuta el agente con la entrada de usuario indicada.

Update on GitHub