Hub Python Library documentation

Cliente 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

Cliente MCP

A biblioteca huggingface_hub agora inclui um MCPClient, projetado para capacitar Modelos de Linguagem de Grande Escala (LLMs) com a capacidade de interagir com Ferramentas externas por meio do Model Context Protocol (MCP). Este cliente estende um AsyncInferenceClient para integrar o uso de Ferramentas de forma transparente.

O MCPClient se conecta a servidores MCP (scripts locais stdio ou serviços remotos http/sse) que expõem ferramentas. Ele fornece essas ferramentas a um LLM (via AsyncInferenceClient). Se o LLM decidir usar uma ferramenta, o MCPClient gerencia a solicitação de execução ao servidor MCP e repassa a saída da ferramenta de volta ao LLM, frequentemente transmitindo os resultados em tempo real.

Também fornecemos uma classe de nível superior Agent. Este ‘Tiny Agent’ simplifica a criação de Agentes conversacionais ao gerenciar o loop de chat e o estado, atuando como um wrapper ao redor de MCPClient.

Cliente MCP

classe 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) — O modelo para executar a inferência. Pode ser um id de modelo hospedado no Hugging Face Hub, por exemplo meta-llama/Meta-Llama-3-8B-Instruct ou uma URL para um Inference Endpoint implantado ou outro endpoint local ou remoto.
  • provider (str, opcional) — Nome do provedor a ser usado para inferência. O padrão é “auto”, ou seja, o primeiro dos provedores disponíveis para o modelo, ordenados pela ordem do usuário em https://hf.co/settings/inference-providers. Se o modelo for uma URL ou base_url for passado, então provider não é usado.
  • base_url (str, opcional) — A URL base para executar a inferência. O padrão é None.
  • api_key (str, optional) — Token a ser usado para autenticação. Se não for fornecido, será usado o token do Hugging Face salvo localmente por padrão. Você também pode usar a chave de API do seu próprio provedor para interagir diretamente com o serviço do provedor.

Cliente para conectar a um ou mais servidores MCP e processar conclusões de chat com ferramentas.

Esta classe é experimental e pode estar sujeita a alterações que quebrem a compatibilidade no futuro, sem aviso prévio.

add_mcp_server

< >

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

Parâmetros

  • type (str) — Tipo do servidor para o qual se deseja conectar. Pode ser um dos seguintes:
    • “stdio”: servidor de entrada/saída padrão (local)
    • “sse”: servidor de eventos enviados pelo servidor (SSE)
    • “http”: servidor StreamableHTTP
  • **params (dict[str, Any]) — Parâmetros do servidor que podem ser:
    • Para servidores stdio:
      • command (str): O comando para executar o servidor MCP
      • args (list[str], opcional): Argumentos para o comando
      • env (dict[str, str], opcional): Variáveis de ambiente para o comando
      • cwd (Union[str, Path, None], opcional): Diretório de trabalho para o comando
      • allowed_tools (list[str], opcional): Lista de nomes de ferramentas a serem permitidas a partir deste servidor
    • Para servidores SSE:
      • url (str): A URL do servidor SSE
      • headers (dict[str, Any], opcional): Cabeçalhos para a conexão SSE
      • timeout (float, opcional): Tempo limite de conexão
      • sse_read_timeout (float, opcional): tempo limite de leitura SSE
      • allowed_tools (list[str], opcional): Lista de nomes de ferramentas a serem permitidas a partir deste servidor
    • Para servidores StreamableHTTP:
      • url (str): A URL do servidor StreamableHTTP
      • headers (dict[str, Any], opcional): Cabeçalhos para a conexão StreamableHTTP
      • timeout (timedelta, opcional): Tempo limite de conexão
      • sse_read_timeout (timedelta, opcional): tempo limite de leitura SSE
      • terminate_on_close (bool, opcional): Se deve encerrar ao fechar
      • allowed_tools (list[str], opcional): Lista de nomes de ferramentas a serem permitidas a partir deste servidor

Conectar a um servidor MCP

limpeza

< >

( )

Limpar 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 mensagem representando o histórico da conversa
  • exit_loop_tools (list[ChatCompletionInputTool], opcional) — Lista de ferramentas que devem encerrar o gerador quando chamadas
  • exit_if_first_chunk_no_tool (bool, opcional) — Encerra se não houver nenhuma ferramenta nos primeiros chunks. O valor padrão é False.

Processa uma consulta usando self.model e as ferramentas disponíveis, gerando blocos e saídas de ferramentas.

Agente

classe 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) — O modelo para executar inferência. Pode ser um id de modelo hospedado no Hugging Face Hub, por exemplo meta-llama/Meta-Llama-3-8B-Instruct ou uma URL para um Inference Endpoint implantado ou outro endpoint local ou remoto.
  • servers (Iterable[dict]) — Servidores MCP para conectar. Cada servidor é um dicionário contendo uma chave type e uma chave config. A chave type pode ser "stdio" ou "sse", e a chave config é um dicionário de argumentos para o servidor.
  • provider (str, opcional) — Nome do provedor a ser usado para inferência. O padrão é “auto”, ou seja, o primeiro dos provedores disponíveis para o modelo, ordenados pela ordem do usuário em https://hf.co/settings/inference-providers. Se o modelo for uma URL ou base_url for passado, então provider não é usado.
  • base_url (str, opcional) — A URL base para executar a inferência. O padrão é None.
  • api_key (str, opcional) — Token a ser usado para autenticação. Se não for fornecido, será usado o token do Hugging Face salvo localmente por padrão. Você também pode usar a chave de API do seu próprio provedor para interagir diretamente com o serviço do provedor.
  • prompt (str, opcional) — O prompt de sistema a ser usado para o agente. O padrão é o prompt de sistema padrão em constants.py.

Implementação de um Agente Simples, que é um simples laço while construído diretamente sobre um MCPClient.

Esta classe é experimental e pode estar sujeita a alterações que quebrem a compatibilidade no futuro, sem aviso prévio.

executar

< >

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

Parâmetros

  • user_input (str) — A entrada do usuário para executar o agente.
  • abort_event (asyncio.Event, opcional) — Um evento que pode ser usado para interromper o agente. Se o evento for definido, o agente deixará de executar.

Execute o agente com a entrada do usuário fornecida.

Update on GitHub