MCP 統合ガイド
モデル コンテキスト プロトコル (MCP) は、AI アシスタントが外部ツールを直接呼び出すことができるオープン スタンダードです。 SocialHub は MCP サーバーを実装しているため、Claude Desktop、Cursor、または任意の MCP 互換クライアントから店舗、メンバー、クーポン、ポイントを管理できます。
コードを記述する代わりに、AI に 「アクティブなストアをすべてリストする」 または 「メンバー m_abc123 に 500 ポイントを付与する」 と要求するだけで、アシスタントがユーザーに代わって SocialHub MCP ツールを呼び出します。
接続構成
SocialHub は、Streamable HTTP MCP エンドポイントを公開します。次の 2 つの情報が必要です。
| エンドポイント URL | https://flash.socialhub.ai/api/mcp |
| API キーヘッダー | Authorization: Bearer fl_live_... |
/flash/account/api-keys に API キーを作成します。使用する予定のツールに必要なスコープがキーに含まれていることを確認してください。
Claude Desktop 構成
Claude Desktop MCP 設定 (claude_desktop_config.json) に以下を追加します。
{
"mcpServers": {
"flash": {
"type": "http",
"url": "https://flash.socialhub.ai/api/mcp",
"headers": {
"Authorization": "Bearer fl_live_your_key_here"
}
}
}
}Cursor 設定
Cursor で、設定 > MCP に移動し、新しいサーバーを追加します。
{
"mcpServers": {
"flash": {
"type": "http",
"url": "https://flash.socialhub.ai/api/mcp",
"headers": {
"Authorization": "Bearer fl_live_your_key_here"
}
}
}
}type フィールドは、エイリアスとして streamable-http も受け入れます。これらのデスクトップ クライアントは、キーを設定ファイルに保存します。キーはシークレットとして扱われ、プレーンテキスト キーをディスク外に保持するためにサポートされている環境変数形式 (下記) が優先されます。
Claude Code から接続します
claude mcp add コマンドを使用して、SocialHub を HTTP MCP サーバーとして追加します。最初にキーを環境変数としてエクスポートして、プレーンテキストのキーが構成ファイルやシェル履歴に記録されないようにします。
export FLASH_API_KEY="fl_live_your_key_here"
claude mcp add --transport http flash \
https://flash.socialhub.ai/api/mcp \
--header "Authorization: Bearer ${FLASH_API_KEY}"または、プロジェクト スコープの .mcp.json をリポジトリ ルートでコミットします。 ${FLASH_API_KEY} を使用して環境変数を参照します。プレーンテキストのキーは決して貼り付けないでください。
{
"mcpServers": {
"flash": {
"type": "http",
"url": "https://flash.socialhub.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${FLASH_API_KEY}"
}
}
}
}接続後のセルフチェック:
claude mcp listを実行し、flashが接続済みとして表示されることを確認します。- アシスタントに 「利用可能な SocialHub ツールをリストする」 ように依頼します。キーのスコープで許可されているツールのみが表示されます。
- サーバーキーは正確に
flashである必要があります。FLASH_API_KEYが Claude Code を起動するシェルでエクスポートされていることを確認してください。
注意事項: 無効なキーまたは取り消されたキーは、認証プロンプトではなく、接続の失敗として表示されます。 SocialHub はOAuth フォールバックなしでベアラー トークン認証を使用するため、サーバーが失敗または切断されたと表示される場合は、他のものをデバッグする前に、キーの値と必要なスコープがあることを再確認してください。
利用可能なツール (75)
cwm_get_forecast_capabilities読む TimesFM 2.5 集計トレンド/分位点準備状況およびテナントプライベート融合7/30/90日準備状況。トレーニング/検証待ちが明示されています。必要 predictions:read.
cwm_predict_next_behaviors消費者の予測:次のイベントの最終的な分布/ランキングプラス CWM + TimesFM 7/30/90d purchaseWindowsテナント獲得イベントモデルが推奨されます。内部公開事前参照がフォールバックとして使用されます。個別の専門家による出力はありません。イベント確率は未較正です。購入期間があります。 null トレーニング/検証が完了するまで。 predictions:read; metrics:read さらに、購入期間も設定可能になります。
member_id*cwm_forecast_aggregate_trendブランド/カテゴリの日々の指標を予測する TimesFM 2.5: ポイント + q10..q90。履歴が欠落しています null集計分位数は較正されていません。個人区間は存在しません。 predictions:read AND metrics:read.
metric?, horizon_days?, history_days?, category?cwm_predict_purchase_windowsテナント専用 CWM + TimesFM 7/30/90d 時点での購入確率 (0–1)。トレーニングと検証が完了するまでは null。偽造フォールバックなし。 predictions:read AND metrics:read.
member_idlist_metrics管理対象のセマンティック レイヤーからこのチームが利用できるメトリック (キー、ラベル、ユニット、認証、カテゴリ) を一覧表示します。有効なメトリック キーを検出するには、まず呼び出してください。 metrics:read.
category?describe_metric1つのメトリックの完全な仕様を取得します: 公式定義、単位、認証、ディメンション、フィルタリング可能なフィールド、調整可能なパラメータ、および使用ガイダンス。 metrics:read.
metricquery_metric管理されたメトリッククエリを実行し、公式定義付きの数値を返します。メトリックキーとオプションのディメンション、フィルタ、時間範囲、粒度、期間比較を選択します。SQL は使用しません。 metrics:read.
metric, dimensions?, filters?, timeRange?, grain?, compare?, params?breakdown_metric固定された最近の期間にわたって、1 つの指標を単一の次元で分解し、人間が読みやすいラベル (店舗/階層/チャネル名) を付けます。 metrics:read.
metric, dimension, days, state?ask_metrics自然言語の質問に対して、適切な管理対象メトリクスを選択し、それらを取得し、主要メトリクスを分解することで回答します。自由形式の診断用。 metrics:read.
question, categories?list_stores現在のチームのすべてのストアをリストします。オプションのステータス フィルター、検索、ページネーションをサポートします。
status?, search?, limit?, offset?get_storeID から特定のストアの詳細を取得します。
store_idlist_membersロイヤルティ プログラムのメンバーをリストします。プログラムフィルターとページネーションをサポートします。
programId?, limit?, offset?, status?get_memberID によって特定のロイヤルティ メンバーの詳細を取得します。復号化された PII フィールドを返します。
member_idlist_coupon_poolsクーポンプールをリストします。ステータスとタイプのフィルターをサポートします。
status?, coupon_type?, limit?, offset?get_dashboard_stats運用ダッシュボードのスナップショット (キャプチャ、スキャン、キャプチャ率、クーポン、ストア、計画)。管理された指標ではありません。信頼できるビジネス指標には指標ツールを使用してください。
(none)earn_pointsメンバーにロイヤルティ ポイントを付与します。トランザクション ID と新しい残高を返します。
member_id, amount, description?redeem_pointsメンバーからロイヤルティ ポイントを差し引きます (FIFO 消費)。
member_id, amount, reasonget_points_balance会員の現在のポイント残高と最近の取引履歴を取得します。
member_id, limit?get_member_coupons会員が利用可能な(未引き換え、期限切れの)クーポンを入手します。
member_idget_member_tierメンバーの現在の階層、次の階層のアップグレード要件、およびすべての階層を取得します。
member_idget_member_receiptsメンバーの領収書提出履歴と OCR ステータスおよび付与されたポイントを取得します。
member_id, limit?redeem_points_for_coupon指定されたプールからロイヤルティ ポイントをクーポンと引き換えます (アトミック: ポイント + クーポン、またはその両方)。
member_id, pool_id, points_costissue_couponプールからメンバーにクーポンを発行します(単一メンバーの場合。多数のオーディエンスはSoの確認フローを経由します)。 coupons:write.
member_id, pool_id, run_id?check_email_frequency頻度制限 (1 日に 1 回、週に 2 回、月に 4 回) 内のアドレスにマーケティング電子メールを送信できるかどうかを確認します。
emaillist_ambassador_candidatesロイヤルティ プログラム (プロ モード) のスコア付きアンバサダー候補者をリストします。 Lite モードでは空です。
band?, status?, level?, sort_by?, limit?, offset?get_ambassador_metricsアンバサダーの ROI レポートを入手してください: 3 つのサブ目標、2 か月目の維持率、および 90 日間のゴー/ノーゴー ゲート。
since_days?, assumed_paid_cac_usd?issue_ambassador_codeメンバーの個人アンバサダー アフィリエイト コードを発行またはアップグレードします。コード文字列を返します。
member_id, single_use?, max_redemptions?, min_order_amount?get_tracking_statsページ訪問/行動分析を取得します: 概要、トップページ、デバイスの内訳、またはトラフィック ソース。
metric?, period?, start?, end?, campaign?, limit?get_member_profileメンバーの集約されたプロファイル(連絡可能性、同意/CCPA、ロイヤルティ、コマース/カテゴリ/チャネル/エンゲージメントのロールアップ、宣言された好み、タグ、大まかな地理情報、年齢層)。PIIは削除済み - 名前や連絡先の値は含まれません。 members:read.
member_idget_member_timeline会員の最近の行動履歴(訪問、ポイント、クーポン、メール、領収書)と概要に基づいて、パーソナライズされたアクションを決定します。復号化された個人情報が返されます。 members:behavior:読む。
member_id, limit?list_segmentsチームのオーディエンスセグメント(名前、ステータス、キャッシュされたメンバー数)を一覧表示します。 segments:read.
status?, limit?, offset?create_segment構造化された条件からオーディエンスセグメントを作成します(SQLは使用しません)。重複は除外されます。 segments:write + ユーザーが所有するキー。
name, conditions, description?list_automationsチームの自動化(イベントトリガー型キャンペーン)とそのステータスを一覧表示します。 automations:read.
status?pause_automationキャンペーン ID による実行中の自動化を一時停止します (冪等性)。 automations:write.
campaign_idlist_campaign_templatesこのチームで利用可能なキャンペーンテンプレートの一覧 (公式 + 保存済み) を見つけて、 template_id のために create_campaign_draft。 必要 campaigns:read.
limit?list_campaignsチームの最近のキャンペーン (ID、タイトル、ステータス) を一覧表示して、 source_campaign_id 下書きを複製するには、 campaigns:read.
limit?, status?create_campaign_draftテンプレートまたは以前のキャンペーンからキャンペーンの下書きを作成します(送信はしません - 人間のレビューが必要です)。 campaigns:write-下書き。
title, template_id?, source_campaign_id?, segment_id?, merge_context?check_member_reachメンバーが最近の期間内にチャネルで既に連絡を受けているかどうか(どのシステムでも)を確認し、過剰な連絡を避けます。 members:behavior:読む。
member_id, channel, days?create_memberロイヤルティメンバーを作成するか、既存のロイヤルティメンバーを冪等的に解決します。 externalId/email。マーケティング同意は有効になっていません MCP。 必要 members:write.
email, fullName, phone?, externalId?, birthMonth?, birthDay?update_memberメンバーのプロフィール/IDを更新する(メールアドレス、電話番号、 fullName, externalId、ステータス)。チーム所有権が強制されます。 members:write.
member_id, email?, fullName?, phone?, externalId?, status?upsert_storeストアを作成するか、既存のストアを更新します externalId このチームのために。 stores:write.
name, externalId?, address?, city?, state?, country?, timezone?ingest_order購入注文を記録し、ポイントを自動付与します(メンバーは解決済み) memberId > externalId > メール)。必要 orders:write.
externalOrderId, customer, totalAmount, financialStatus?, currency?, orderName?, storeId?reverse_points会員からポイントを回収(取り消し)し、元の取引IDにリンクします。POS/ERPでの返金または無効化のためです。 points:write.
member_id, reversesTransactionId, amount, reasonassign_tagメンバーにタグを手動で割り当てるには tag_key (オペレーターによるオーバーライド。ルールスイープに固定されています。) tags:write.
member_id, tag_key, value?remove_tagメンバーからタグを手動で削除するには tag_key (ライブタグは次回のスキャンで再追加される可能性があります。) tags:write.
member_id, tag_keylist_productsカテゴリ/ブランド/業種、ステータス、ソース別に製品を一覧表示します。ステータスでフィルタリング/category_id/brand_id/垂直。必要 catalog:read.
status?, category_id?, brand_id?, vertical?, limit?, offset?get_productバリエーション、シリアル番号付きアイテム、コンボコンポーネント、AI グラウンディングコンテンツを含む製品を 1 つ入手します。 catalog:read.
product_idlist_categoriesチームの製品カテゴリを一覧表示します(ID、名前、親)。必須 catalog:read.
limit?list_brandsチームのブランドをリストします(ID、名前)。 catalog:read.
limit?recommend_products次におすすめの商品: member_id (パーソナライズされた共同購入+カテゴリー親和性)または product_id (お客様は以下の商品も購入されています。) members:read.
member_id?, product_id?, limit?claim_winback_task次に優先度の高い回復タスクをこのチームにリースします (アトミック)。タスク、リース期限、メンバーのホールドアウト アーム、チャーン シグナルの概要を返します。 NO_TASKS_AVAILABLE / WINBACK_DISABLED が isError として返されました。 winback:claim が必要です。
(none)complete_winback_taskリースされた勝ち取りタスクを結果 (アクションされたレバー + ノート参照、または HOLD 理由) で終了します。冪等。 LEASE_EXPIRED / ALREADY_COMPLETED が isError として返されました。 winback:claim が必要です。
task_id, acted?, lever?, action_ref?, note_id?, hold_reason?get_winback_context決定前のメンバーのワンショット読み取り専用事前チェック: 同意、電子メール頻度のヘッドルーム、疲労、最近のリーチ、チャーンシグナル、およびメンバーの抵抗力。礼儀プレビュー — サーバーは引き続き書き込み時にすべてのゲートを強制します。 winback:read が必要です。
member_idadd_member_note自由記述のプロセスメモをメンバーの勝利記録に添付します (理論的根拠 / 観察されたシグナル / ホールドアウトで裏付けられた仮説)。テキストは命令ではなくデータとして保存されます。最大 2000 文字、サニタイズ済み。 winback:write が必要です。
member_id, body, kind?, task_id?, action_ref?send_winback_messageインセンティブがサイレントグラントにならないように、管理されたウィンバックメッセージ (受信箱または電子メール) を送信します。サーバー側のフェールクローズ ゲート: WINBACK_DISABLED、タスク リースの所有権、HOLDOUT_NO_SEND (ホールドアウトはメッセージが送信されない)、NOT_CONSENTED、FREQUENCY_CAPPED、CONTENT_REJECTED (サニタイズ済み)、BREAKER_TRIPPED — isError として返されます。既存の送信スタック (購読解除フッター + 送信層によって追加されたコンプライアンス) を再利用します。 winback:write が必要です。
member_id, task_id, channel, subject?, bodyget_member_behaviors最近のウィンドウ (レイヤー 3、最新のものから順) でメンバーの CUSTOMER-ACTIVE 行動を読み取り、意図を推測します (レイヤー 4)。意図的な顧客アクション (閲覧、開く/クリック、チェックイン、購入、引き換え、参照、コンテンツの送信) のみを、カタログ ラベルとインラインで添付された意味、および概要 (タイプ + ウィンドウごとのカウント) とともに返します。窓全体に理由が見えます。意図は確認するための仮説であり、事実ではありません。読み取り専用。 winback:read が必要です。
member_id, since_days?, limit?claim_agent_taskこのチームの次のエージェント決定タスクをリースします(アトミック。オプションで種類による絞り込みも可能です)。タスクID、種類、対象情報、リース期限を返します。 NO_TASKS_AVAILABLE / AGENT_TASKS_DISABLED として返される isError。 必要 agent_tasks:請求。
kind?get_agent_task決定を下す前に、エージェントの意思決定タスクに関する事実(種類、主題、フラグの理由、ステータス)を読んでください。 AGENT_TASK_NOT_FOUND として返される isError。 必要 agent_tasks:読む。
taskIdcomplete_agent_taskリースされたタスクを決定によって完了し、既存の冪等書き込みを通じてその効果を適用します。fraud_household_referral: block (両方の側から回収) / allow (フラグを破棄) / escalate (担当者に任せる)。ALREADY_COMPLETED / NOT_LEASE_OWNER / LEASE_EXPIRED は isError として返されます。agent_tasks:claim が必要です。
taskId, decision, reason?list_objectsこのチームが推論できるビジネス オブジェクトをリストします: コア プラットフォーム オブジェクト (メンバー、注文、ストア、クーポン、キャンペーン、製品、セグメント、タグ) とこのチームの MCP- 表示されるカスタムオブジェクト — キー、ラベル、および権威ある一行の意味。有効なものを見つけるには、まず呼び出してください。 object キー。必要 introspection:read.
(none)describe_objectあるビジネスについて説明してください。 object 管理対象レジストリから: 権威ある意味と、事実 (列ベース)、派生 (メトリック/タグ/ロールアップ参照、鮮度保持 - キャリバーを再派生しない)、カスタム (このチームのカスタム フィールド) に分割されたプロパティ。PII プロパティはメタデータのみを返し、値は返しません。fields=summary (デフォルト) または full。必須 introspection:read.
object, fields?list_actions管理対象エージェントのアクション(エージェントが実行できること)をリストアップします:ターゲット object副作用、ギア(自動/レビュー/禁止)、サーバー側の前提条件キー、値の上限、可逆性 - 書き込みを提案する前に自己チェックします。オプションでフィルタリングできます。 object。 必要 introspection:read.
object?list_stamp_programsチームのスタンプカードをリストします(eStampプログラム: ID、名前、完了に必要なスタンプ、報酬の種類 (クーポン/ポイント/手動)、自動リセット、ステータス。まずはお電話ください。 program_id。 必要 stamp:read.
(none)get_member_stamp_cards会員の有効なスタンプカードを取得します: プログラム名、現在のスタンプ数、必要なスタンプ数、これまでの完了数、および報酬。 stamp:read.
member_idgrant_stamps会員にスタンププログラム用のスタンプを付与します(例:店舗訪問)。冪等です。 idempotency_keyカード完了時に特典(クーポン/ポイント)が自動的に発行されます。通話ごとに上限額が設定されています。 stamp:write.
program_id, member_id, amount?, reason?, idempotency_key?get_member_points会員のポイント:利用可能残高、累計獲得ポイント、交換回数、現在のティア、有効期限が近いポイントバッチ。会員キー → 自身のポイント(member_idは省略)。チームキー → member_idを渡す。loyalty:self:read権限が必要。
member_id?get_member_points_history会員の最近のポイント取引履歴(獲得/利用/調整済み)、新しい順に表示されます。会員専用キー → 自分の履歴、チームキー → パス member_id。 必要 loyalty:self:読む。
member_id?get_member_rewards会員がポイントで交換できる特典 ― ポイントコスト付きのカタログ。会員の残高に対する購入可能度で分類されています。会員専用キー → 所有;チームキー → パス member_id。 必要 loyalty:self:読む。
member_id?get_loyalty_program_rulesロイヤルティプログラムの仕組み(獲得率、ウェルカムボーナス、ポイント価値、参加方法)とブランド公認のFAQ。公開情報。会員限定キーに異論は不要。 loyalty:self:読む。
member_id?list_synthetic_scenarios合成パネルシミュレーションシナリオを、それぞれの正直なユーザビリティ境界、信頼度上限、および入力フィールドとともにリストします。最初に呼び出して種類を選択します。 metrics:read.
(none)get_synthetic_calibrationブランドの合成パネルのキャリブレーション(過去の合成予測と現実の的中率) null バックテストが存在するまで)。 metrics:read.
(none)get_synthetic_report合成パネル実行の凍結された正直なレポート(方向性読み取り、信頼度上限、抑制フラグ、テーマ)を読み取ります。準備ができていない場合は、blockReason を読みます。metrics:read が必要です。
run_idrun_synthetic_panel合成パネルを実行します。セグメントの匿名化されたデジタルツインが刺激に反応し、正直な方向性レポート(実際の絶対値は含まれません)を生成します。ポーリング用のrun_idを返します。1日の実行上限と50個以下のツイン数に制限されます。synthetic:writeが必要です。
segment_id, kind, fields安全性とプライバシー
MCP サーフェスは AI 利便性レイヤーであり、一括管理ツールではありません。留意すべき点がいくつかあります:
- サーバーが境界であり、チャットではありません。 書き込み操作 (ポイントの授与/引き換え、クーポンの発行、アンバサダー コードの発行) には、一致する書き込みスコープが必要です。および は、サーバー側のガードによって制限されます。つまり、呼び出しごとの値の上限とキーごとの書き込み速度制限があり、どちらも強制的にフェールクローズされます。 AI クライアントが要求するチャット内の確認はすべて礼儀です。漏洩したキーやプロンプト挿入モデルがポイントを消耗するのを実際に阻止するのはサーバーです。
- 一部の読み取りツールはメンバー PII を返します。
get_memberやlist_membersなどのツールは、復号化された名前と電子メールを AI クライアントに返すことができます。それに応じてデータを扱い、最小権限のキーを優先します。 - プレーンテキスト キーは決してコミットしないでください。 リテラル キーではなく、チェックインされた
.mcp.json内の${FLASH_API_KEY}を常に参照してください。 - 最小権限の読み取り専用キーを使用してください。 必要なツールのみにスコープを設定したキーを作成してください。キーにツールのスコープが設定されていない場合、そのツールは非表示になり、リストには表示されません。
数値は管理されたセマンティック層から取得されます
AI が報告するすべての指標 (GMV、アクティブなメンバー、引き換え率など) は、各指標に対して単一の信頼できる定義 (および認定) を保持する SocialHub の管理された指標レイヤーを通過します。 list_metrics、describe_metric、query_metric、breakdown_metric、ask_metrics ツールは、そのガバナンスに基づいてメトリック キーとディメンションを選択します。AI は SQL を作成しません。したがって、返される数値は、アドホックでドリフトしやすい集計ではなく、ダッシュボードと一致します。
会話例
list_stores を呼び出します