Hub Python Library documentation

MCPクライアント

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

MCPクライアント

huggingface_hub ライブラリには現在、Model Context Protocol (MCP) を介して外部のツールと対話する機能を大規模言語モデル (LLM) に付与するために設計された MCPClient が含まれています。このクライアントは AsyncInferenceClient を拡張し、ツールの利用をシームレスに統合します。

MCPClientは、ツールを公開するMCPサーバー(ローカルのstdioスクリプトまたはリモートのhttp/sseサービス)に接続します。これらのツールをLLMに提供します(AsyncInferenceClient経由で)。LLMがツールの使用を決定した場合、MCPClientはMCPサーバーへの実行リクエストを管理し、ツールの出力をLLMに中継します。多くの場合、結果はリアルタイムでストリーミングされます。

より高レベルのAgentクラスも提供しています。この「Tiny Agent」は、MCPClientをラップする形で、チャットループと状態を管理することで、会話型Agentの作成を簡素化します。

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 にホストされているモデル ID(例: meta-llama/Meta-Llama-3-8B-Instruct)または、デプロイされた Inference Endpoint への URL、その他のローカルまたはリモートエンドポイントの URL を指定できます。
  • 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 キーを使用することもできます。

1つ以上の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], 任意): コマンドの引数
      • env (dict[str, str], オプション): コマンド用の環境変数
      • cwd (Union[str, Path, None], optional): コマンドの作業ディレクトリ
      • allowed_tools (list[str], optional): このサーバーから許可するツールの名前の一覧
    • SSE サーバーの場合:
      • url (str): SSEサーバーのURL
      • headers (dict[str, Any], 任意): SSE接続用のヘッダー
      • timeout (float, 任意): 接続のタイムアウト
      • sse_read_timeout (float, 任意): SSE の読み取りタイムアウト
      • allowed_tools (list[str], optional): このサーバーから許可するツールの名前の一覧
    • StreamableHTTP サーバーの場合:
      • url (str): StreamableHTTP サーバーの URL
      • headers (dict[str, Any], 任意): StreamableHTTP接続用のヘッダー
      • timeout (timedelta, 任意): 接続のタイムアウト
      • sse_read_timeout (timedelta, 任意): 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 にホストされているモデル ID(例: meta-llama/Meta-Llama-3-8B-Instruct)または、デプロイされた Inference Endpoint への URL、その他のローカルまたはリモートエンドポイントの URL を指定できます。
  • 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内のデフォルトのシステムプロンプトが使用されます。

MCPClientの上に直接構築されたシンプルなwhileループである、Simple Agentの実装です。

このクラスは実験的なものであり、事前の通知なしに将来、破壊的な変更が加えられる可能性があります。

run

< >

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

パラメータ

  • user_input (str) — エージェントを実行するためのユーザー入力です。
  • abort_event (asyncio.Event, 省略可) — エージェントを中断するために使用できるイベントです。このイベントが設定されている場合、エージェントの実行は停止します。

指定されたユーザー入力を使用してエージェントを実行します。

Update on GitHub