SocialHub.AI

MCP 統合ガイド

モデル コンテキスト プロトコル (MCP) は、AI アシスタントが外部ツールを直接呼び出すことができるオープン スタンダードです。 SocialHub は MCP サーバーを実装しているため、Claude Desktop、Cursor、または任意の MCP 互換クライアントから店舗、メンバー、クーポン、ポイントを管理できます。

コードを記述する代わりに、AI に 「アクティブなストアをすべてリストする」 または 「メンバー m_abc123 に 500 ポイントを付与する」 と要求するだけで、アシスタントがユーザーに代わって SocialHub MCP ツールを呼び出します。

接続構成

SocialHub は、Streamable HTTP MCP エンドポイントを公開します。次の 2 つの情報が必要です。

エンドポイント URLhttps://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_id
list_metrics

管理対象のセマンティック レイヤーからこのチームが利用できるメトリック (キー、ラベル、ユニット、認証、カテゴリ) を一覧表示します。有効なメトリック キーを検出するには、まず呼び出してください。 metrics:read.

パラメータ: category?
describe_metric

1つのメトリックの完全な仕様を取得します: 公式定義、単位、認証、ディメンション、フィルタリング可能なフィールド、調整可能なパラメータ、および使用ガイダンス。 metrics:read.

パラメータ: metric
query_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_store

ID から特定のストアの詳細を取得します。

パラメータ: store_id
list_members

ロイヤルティ プログラムのメンバーをリストします。プログラムフィルターとページネーションをサポートします。

パラメータ: programId?, limit?, offset?, status?
get_member

ID によって特定のロイヤルティ メンバーの詳細を取得します。復号化された PII フィールドを返します。

パラメータ: member_id
list_coupon_pools

クーポンプールをリストします。ステータスとタイプのフィルターをサポートします。

パラメータ: status?, coupon_type?, limit?, offset?
get_dashboard_stats

運用ダッシュボードのスナップショット (キャプチャ、スキャン、キャプチャ率、クーポン、ストア、計画)。管理された指標ではありません。信頼できるビジネス指標には指標ツールを使用してください。

パラメータ: (none)
earn_points

メンバーにロイヤルティ ポイントを付与します。トランザクション ID と新しい残高を返します。

パラメータ: member_id, amount, description?
redeem_points

メンバーからロイヤルティ ポイントを差し引きます (FIFO 消費)。

パラメータ: member_id, amount, reason
get_points_balance

会員の現在のポイント残高と最近の取引履歴を取得します。

パラメータ: member_id, limit?
get_member_coupons

会員が利用可能な(未引き換え、期限切れの)クーポンを入手します。

パラメータ: member_id
get_member_tier

メンバーの現在の階層、次の階層のアップグレード要件、およびすべての階層を取得します。

パラメータ: member_id
get_member_receipts

メンバーの領収書提出履歴と OCR ステータスおよび付与されたポイントを取得します。

パラメータ: member_id, limit?
redeem_points_for_coupon

指定されたプールからロイヤルティ ポイントをクーポンと引き換えます (アトミック: ポイント + クーポン、またはその両方)。

パラメータ: member_id, pool_id, points_cost
issue_coupon

プールからメンバーにクーポンを発行します(単一メンバーの場合。多数のオーディエンスはSoの確認フローを経由します)。 coupons:write.

パラメータ: member_id, pool_id, run_id?
check_email_frequency

頻度制限 (1 日に 1 回、週に 2 回、月に 4 回) 内のアドレスにマーケティング電子メールを送信できるかどうかを確認します。

パラメータ: email
list_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_id
get_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_id
list_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, reason
list_tags

チームのタグ定義(キー、名前、ライフサイクル、カテゴリ、カバレッジ)を一覧表示します。 tag_key メンバータグの読み取り/割り当ての前に必要です。 tags:read.

パラメータ: status?, group?, limit?, offset?
get_member_tags

メンバーの現在のタグを取得します (キー、名前、ライフサイクル、値、ソース、 assignedAt)。 必要 members:read.

パラメータ: member_id
assign_tag

メンバーにタグを手動で割り当てるには tag_key (オペレーターによるオーバーライド。ルールスイープに固定されています。) tags:write.

パラメータ: member_id, tag_key, value?
remove_tag

メンバーからタグを手動で削除するには tag_key (ライブタグは次回のスキャンで再追加される可能性があります。) tags:write.

パラメータ: member_id, tag_key
list_products

カテゴリ/ブランド/業種、ステータス、ソース別に製品を一覧表示します。ステータスでフィルタリング/category_id/brand_id/垂直。必要 catalog:read.

パラメータ: status?, category_id?, brand_id?, vertical?, limit?, offset?
get_product

バリエーション、シリアル番号付きアイテム、コンボコンポーネント、AI グラウンディングコンテンツを含む製品を 1 つ入手します。 catalog:read.

パラメータ: product_id
list_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_id
add_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?, body
get_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:読む。

パラメータ: taskId
complete_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_id
grant_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_id
run_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 を作成しません。したがって、返される数値は、アドホックでドリフトしやすい集計ではなく、ダッシュボードと一致します。

会話例

あなた: 「アクティブなストアをすべてリストする」
Claude: status="active" で list_stores を呼び出します
Claude: 「Downtown Flagship、Mall Kiosk、Airport Pop-up の 3 つのアクティブな店舗があります。」