MCP SQLリーダー

contacts.queryとtrade.query向けの読み取り専用SQLの書き方。許可ビュー、列、文法、ページネーション、エラー処理を説明します。

dureach.contacts.query と dureach.trade.query は、文書化された連絡先と出荷のデータセットに対する読み取り専用 SQL を受け付けます。許可された列で単一の SELECT を使用してください。結合と書き込みには対応していません。

許可されるビューと列は何ですか

ツールビュー列
dureach.contacts.querycontactsid、full_name、job_title、company_name、company_domain、city、country
dureach.trade.querybol_shipmentsid、source_type、trade_flow、bol_number、actual_arrival_date、shipper_name、consignee_name、product_desc

これらの列のみを照会します。不明なテーブル、列、データベース接頭辞は検証エラーを返します。product_descは結果で300文字に切り詰められます。

受け付けられるSQL形式は何ですか

  • 単一SELECTに任意のWHERE、GROUP BY、HAVING、ORDER BYを付けることができます。エイリアスは使用できます。
  • 比較、論理演算子、算術演算、リテラルIN、LIKEに対応します。
  • 集計関数とスカラー関数: count、sum、avg、min、max、uniqExact、lower、upper、length、coalesce、toDate、toYear、toMonth。
  • 拒否対象: 結合、サブクエリ、CTE、ウィンドウ関数、SETTINGS、FORMAT、SQLのLIMIT/OFFSET、SELECT SETTINGS、GROUP BY WITH TOTALS、グローバルIN、位置指定ORDER BY。
  • SQLは最大16 KiB UTF-8である必要があります。より大きな文は実行前に検証エラーを返します。
{
  "sql": "SELECT company_name, city, country FROM contacts WHERE country = 'DE' AND company_domain LIKE '%gmbh%' ORDER BY company_name, city",
  "page": 1,
  "limit": 25
}

2 ページ目以降には ORDER BY が必要です。ツールのスキーマで対応する並び順を使用し、可能であれば許可された同順位の判定項目を追加してください。同順位や元データの更新により行がページ間で移動する場合があります。上限のある結果は完全なエクスポートではありません。

ページネーションはどのように動作しますか

page(1–20)とlimit(1–50)を使用します。SQLのLIMIT/OFFSETは追加しないでください。結果は列名、ClickHouse型、順序付き行配列を返し、合計件数は含みません。

{
  "columns": [{"name": "company_name", "type": "String"}],
  "rows": [["Example GmbH"]],
  "page": 1,
  "limit": 25
}

UUID、日付、10進数、JSON安全範囲外の整数は文字列として返されます。非有限浮動小数点は文字列として返されます。1 MiBを超える結果はresult_too_largeを返します。列一覧や絞り込みを狭めて再試行してください。

エラーにどう対処すべきですか

コード意味対処
sqlの検証エラー禁止キーワード、テーブル、列、形式です。上表の一覧にあるビューと列だけを使う単一SELECTにし、結合、サブクエリ、CTE、SETTINGS、FORMAT、SQLのLIMITを除去してください。
SQL exceeds 16 KiB文が大きすぎます。条件を短縮するか、質問をより小さなクエリに分割してください。
ページ2以降のORDER BY不足オフセットページの順序が定まりません。一意性を保証する並べ替えキー付きORDER BYを追加してください。
quota_exceeded(contacts_daily)日次の担当者予算を使い切りました。リセットまで待つか、プラン上限について管理者に相談してください。
result_too_large転送する結果が1 MiB超です。列を減らすか、絞り込みを追加するか、limitを下げてください。

request_idとエラーコードを記録してください。顧客識別子を含む完全なSQLをトークンと同じ場所に記録しないでください。

関連ページ