Tools reference
===============

ツール関連のファンクション、ビュー、およびタイプのリファレンス。ガイドスタイルのドキュメントについては、
:ref:`Tools reference <Tools reference>` 
を参照してください。完全なネイティブツールカタログについては、
:ref:`Native tools <Native tools>` を参照してください。

カタログビュー
--------------

helpb.tools
^^^^^^^^^^^

AIDBが認識するすべてのツールの統合された読み取り専用カタログ-ネイティブツール、登録されたSQLツール、およびキャッシュされたMCPツールのユニオン。

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,text,ツールの名前。
  `description`,text,ツール定義の一部としてモデルに表示されます。
  `tool_type`,text,`'native_tool'`、`'sql_tool'`、または`'mcp_tool'`
  `params`,jsonb,"`native_tool`/`sql_tool`の場合 `{name, type, description}`オブジェクトの配列。 `mcp_tool`の場合 サーバーの生のJSONスキーマ `inputSchema`。"
  `read_only`,boolean,ツールが決して書き込めないことが知られているかどうか。 `mcp_tool`行の場合は常に`false` —  :ref:`読み取り専用モード<読み取り専用モード>` を参照してください。

promoteb.sql_tool_registry
^^^^^^^^^^^^^^^^^^^^^^^^^^

バック登録されたSQLツール。 ``aidb.tools``
は、ほとんどのクエリーが代わりに使用するユニオンビューです。これを直接照会して、
SQLツールに保存されているクエリテキストを表示します。

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,text,一意のツール名主キー。
  `description`,text,モデルに見せられました。
  `query_text`,text,`${name}`プレースホルダーを使用した保存されたSQLステートメント。
  `read_only`,boolean,ツールが読み取り専用として適用されるかどうか。
  `return_type_hint`,`aidb.ToolParam[]`,文書化された返品の形状。現在モデルには表面化されていません。
  `params`,`aidb.ToolParam[]`,ツールの宣言されたパラメーター。
  `created_at`,timestamp,作成時間。
  `updated_at`,timestamp,最終更新時間。

promoteb.mcp_registry
^^^^^^^^^^^^^^^^^^^^^

登録された外部MCPサーバー。

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,text,一意のサーバー名主キー。
  `url`,text,サーバーのMCPエンドポイント。
  `transport`,text,`'streamable_http'`または`'sse'`。
  `headers`,jsonb,保存された要求ヘッダー。 `aidb_users`では読み取れません シークレットを保持する可能性があります。
  `headers_env`,text,代わりにヘッダーを読み取る環境変数名。 `headers`と相互排他的。
  `tool_filter`,text[],フィルタリングされた場合、このサーバーからインポートされたツール名。
  `created_at`,timestamp,登録時間。
  `updated_at`,timestamp,最終更新時間。

--------------

ツール管理機能
--------------

promoteb.create_sql_tool
^^^^^^^^^^^^^^^^^^^^^^^^

パラメーター化されたSQLクエリーをツールとして登録します。

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `name`,TEXT,Required,ツールの一意の名前。
  `description`,TEXT,Required,ツール定義の一部としてモデルに表示されます。
  `sql_statement`,TEXT,Required,実行するクエリー。宣言されたパラメーターごとに`${name}`プレースホルダーを使用します。
  `params`,JSONB,Required,`aidb.tool_params()`で構築されたツールのパラメーター。
  `read_only`,BOOLEAN,`true`,`true`の場合、読み取り専用であることが証明されていない限り、登録時にステートメントを拒否します。
  `return_type_hint`,JSONB,NULL,クエリの結果の形状を文書化します。現在モデルには表面化されていません。

返品
^^^^

``TEXT`` —
ツールの名前、成功時。名前が既に使用されている場合、またはステートメントが単一の呼び出し可能、読み取り専用に準拠したif
``read_only => true`` ステートメントでない場合に発生します。

例
^^

.. code:: sql

   SELECT aidb.create_sql_tool(
       name             => orders_by_customer,
       description      => Look up recent orders for a customer by id.,
       sql_statement    => SELECT id, status, total FROM orders WHERE customer_id = ${customer_id} ORDER BY created_at DESC LIMIT ${limit},
       params           => aidb.tool_params(
           aidb.tool_param(customer_id, INT, The customers id.),
           aidb.tool_param(limit, INT, Maximum number of orders to return.)
       ),
       read_only        => true,  -- optional; enforced, not just descriptive. Default: true
       return_type_hint => NULL   -- optional; documents the returned row shape, same aidb.tool_params() shape as `params`. Default: NULL
   );

--------------

promoteb.delete_tool
^^^^^^^^^^^^^^^^^^^^

SQLツールまたはMCPサーバー登録を名前で削除しますサーバーが一緒にアドバタイズしたすべてのツールを削除します。ビルトインネイティブツールは削除できません。

.. _パラメーター-1:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,TEXT,ツールまたはサーバーの名前。

.. _返品-1:

返品
^^^^

``TEXT`` —
成功した場合の削除された名前。そのようなツールまたはサーバーが存在しない場合、または\ ``name``
がネイティブツールの場合に発生します。

--------------

promoteb.import_mcp_tools
^^^^^^^^^^^^^^^^^^^^^^^^^

外部MCPサーバーを登録し、アドバタイズするツールをインポートします。

.. _パラメーター-2:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `name`,TEXT,Required,サーバー登録の一意の名前。
  `url`,TEXT,Required,サーバーのMCPエンドポイントURL。
  `transport`,TEXT,`'streamable_http'`,`'streamable_http'`または`'sse'` —現在`'streamable_http'`のみが完全にサポートされています。
  `headers`,JSONB,NULL,送信する要求ヘッダー。 `headers_env`と相互排他的。
  `tool_filter`,TEXT[],NULL,これらのツール名のみをインポートします。サーバーがアドバタイズするすべてのインポートを省略します。
  `headers_env`,TEXT,NULL,ヘッダーJSONを保持する環境変数。保存するのではなく、使用するたびに新しく読み取られます。 `headers`と相互排他的。名前は :ref:`AI pipelines <Configuring AIDB>` 接頭辞で始まる必要があります。

.. _返品-2:

返品
^^^^

``TEXT``
—成功した場合のサーバーの名前。名前が使用されるか、URLに到達不能であるか、\ ``tool_filter``
と一致する宣伝ツールがない場合に発生します。

.. _例-1:

例
^^

.. code:: sql

   SELECT aidb.import_mcp_tools(
       name        => weather,
       url         => https://weather.example.com/mcp,
       transport   => streamable_http,  -- optional; streamable_http or sse. Default: streamable_http
       headers     => NULL,               -- optional; request headers to send, for example, an auth token. Mutually exclusive with headers_env. Default: NULL
       tool_filter => NULL,               -- optional; import only these tool names. Default: NULL (import everything the server advertises)
       headers_env => NULL                -- optional; env var holding the headers JSON instead of storing it. Mutually exclusive with headers. Default: NULL
   );

--------------

promoteb.refresh_mcp_tools
^^^^^^^^^^^^^^^^^^^^^^^^^^

登録済みのMCPサーバーのアドバタイズツールを再取得し、キャッシュを更新します。

.. _パラメーター-3:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,TEXT,登録されたサーバーの名前。

.. _返品-3:

返品
^^^^

``INTEGER`` —現在キャッシュされているツールの数 ``tool_filter`` 適用後

--------------

promoteb.get_mcp_tools
^^^^^^^^^^^^^^^^^^^^^^

現在登録されているすべてのツールネイティブ、 SQL、およびMCPを同様にMCP
``tools/list`` 型の記述子に変換します。

.. _返品-4:

返品
^^^^

``TABLE(name TEXT, description TEXT, input_schema JSONB)`` —
``aidb.tools`` のツールごとに1行。

--------------

パラメーターヘルパー
--------------------

promoteb.tool_param
^^^^^^^^^^^^^^^^^^^

1つのSQLツールパラメーターを構築します。

.. _パラメーター-4:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `name`,TEXT,Required,パラメーターの名前。
  `type`,TEXT,Required,パラメーターのSQLタイプ。
  `description`,TEXT,Required,モデルに表示される説明。

.. _返品-5:

返品
^^^^

``JSONB`` — これらのうちの1つ以上を\ ``aidb.tool_params()`` に渡します。

--------------

promoteb.tool_params
^^^^^^^^^^^^^^^^^^^^

1つ以上の\ ``aidb.tool_param()``
結果を組み合わせるか、引数なしで呼び出されるは空のパラメーターリストを宣言します。

.. _パラメーター-5:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `params`,VARIADIC JSONB[],0個以上の`aidb.tool_param()`結果。

.. _返品-6:

返品
^^^^

``JSONB`` — ``aidb.create_sql_tool()`` の\ ``params``
または\ ``return_type_hint`` に渡します。

--------------

promoteb.param / promoteb.params
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

汎用のパラメーター仕様コンストラクター。列挙コンストレインの引数を受け入れるネイティブツールによって使用されます。
``aidb.param()`` はさらに\ ``enum_values TEXT[]``
を受け入れます。通常は直接必要ありません。 ``aidb.tool_param()``
/``aidb.tool_params()`` は、\ ``create_sql_tool()``
のコンストラクターです。
