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 ライブラリには現在、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