Panduan Integrasi MCP
Protokol Konteks Model (MCP) ialah standard terbuka yang membolehkan pembantu AI menghubungi alat luaran secara langsung. SocialHub melaksanakan pelayan MCP supaya anda boleh mengurus kedai, ahli, kupon dan mata dari dalam Claude Desktop, Cursor atau mana-mana klien yang serasi dengan MCP.
Daripada menulis kod, anda hanya perlu bertanya kepada AI: "Senaraikan semua kedai aktif" atau "Berikan 500 mata kepada ahli m_abc123" dan pembantu akan menghubungi alat SocialHub MCP bagi pihak anda.
Konfigurasi Sambungan
SocialHub mendedahkan titik akhir HTTP MCP Boleh Distrim. Anda memerlukan dua maklumat:
| URL Titik Akhir | https://flash.socialhub.ai/api/mcp |
| API Pengepala Utama | Authorization: Bearer fl_live_... |
Cipta Kunci API pada /flash/account/api-keys. Pastikan kunci tersebut mempunyai skop yang diperlukan untuk alatan yang anda rancang untuk gunakan.
Claude Desktop Konfigurasi
Tambahkan yang berikut pada tetapan Claude Desktop MCP anda (claude_desktop_config.json):
{
"mcpServers": {
"flash": {
"type": "http",
"url": "https://flash.socialhub.ai/api/mcp",
"headers": {
"Authorization": "Bearer fl_live_your_key_here"
}
}
}
}Cursor Konfigurasi
Dalam Cursor, pergi ke Tetapan > MCP dan tambahkan pelayan baharu:
{
"mcpServers": {
"flash": {
"type": "http",
"url": "https://flash.socialhub.ai/api/mcp",
"headers": {
"Authorization": "Bearer fl_live_your_key_here"
}
}
}
}Medan type juga menerima streamable-http sebagai alias. Klien desktop ini menyimpan kunci dalam fail konfigurasi mereka — menganggapnya sebagai rahsia dan lebih suka bentuk pembolehubah persekitaran (di bawah) yang disokong untuk memastikan kunci teks biasa tidak dipaparkan di luar cakera.
Sambung dari Claude Code
Tambah SocialHub sebagai pelayan HTTP MCP dengan arahan claude mcp add. Eksport kunci anda sebagai pembolehubah persekitaran terlebih dahulu supaya kunci teks biasa tidak pernah berada dalam fail konfigurasi atau sejarah cangkerang anda:
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}"Atau komitkan .mcp.json berskop projek pada akar repo. Rujuk var persekitaran dengan ${FLASH_API_KEY} — jangan sekali-kali tampal kekunci teks biasa:
{
"mcpServers": {
"flash": {
"type": "http",
"url": "https://flash.socialhub.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${FLASH_API_KEY}"
}
}
}
}Semak kendiri selepas menyambung:
- Jalankan
claude mcp listdan sahkanflashdipaparkan sebagai bersambung. - Minta pembantu untuk "menyenaraikan alat SocialHub yang tersedia" — anda sepatutnya melihat hanya alat yang dibenarkan oleh skop kunci anda.
- Kekunci pelayan mestilah betul-betul
flash; pastikanFLASH_API_KEYdieksport dalam shell yang melancarkan Claude Code.
Dapat: permukaan kunci yang tidak sah atau dibatalkan sebagai sambungan gagal, bukan gesaan pengesahan. SocialHub menggunakan pengesahan token pembawa dengan tiada sandaran OAuth, jadi jika pelayan dipaparkan sebagai gagal/terputus sambungan, semak semula nilai kunci dan sama ada ia mempunyai skop yang anda perlukan sebelum menyahpepijat apa-apa lagi.
Alat yang Tersedia (75)
cwm_get_forecast_capabilitiesBaca TimesFM 2.5 kesediaan trend/kuantil agregat dan kesediaan gabungan penyewa-persendirian 7/30/90 hari. Menunggu latihan/pengesahan adalah eksplisit. Memerlukan predictions:read.
cwm_predict_next_behaviorsSatu ramalan pengguna: taburan/kedudukan peristiwa seterusnya akhir tambah CWM + TimesFM 7/30/90d purchaseWindowsModel peristiwa penyewa yang diperoleh diutamakan; satu sandaran rujukan awam terdahulu dalaman. Tiada output pakar individu. Kebarangkalian peristiwa tidak dikalibrasi; tetingkap pembelian null sehingga dilatih/disahkan. Memerlukan predictions:read; metrics:read tambahan pula membolehkan tetingkap pembelian.
member_id*cwm_forecast_aggregate_trendRamalkan metrik harian jenama/kategori dengan TimesFM 2.5: titik + q10..q90. Sejarah yang hilang dikembalikan nullKuantil agregat tidak dikalibrasi; tidak pernah selang peribadi. Memerlukan predictions:read AND metrics:read.
metric?, horizon_days?, history_days?, category?cwm_predict_purchase_windowsPenyewa-persendirian CWM + TimesFM kebarangkalian pembelian pada 7/30/90h (0–1). Nol sehingga dilatih dan disahkan; tiada sandaran yang direka-reka. Memerlukan predictions:read AND metrics:read.
member_idlist_metricsSenaraikan metrik yang tersedia untuk pasukan ini daripada lapisan semantik yang dikawal (kunci, label, unit, pensijilan, kategori). Hubungi dahulu untuk menemui kunci metrik yang sah. Memerlukan metrics:read.
category?describe_metricDapatkan spesifikasi penuh bagi satu metrik: definisi berwibawa, unit, pensijilan, dimensi, medan boleh ditapis, parameter boleh tala dan panduan penggunaan. Memerlukan metrics:read.
metricquery_metricJalankan pertanyaan metrik yang dikawal dan kembalikan nombor dengan definisi autoritatifnya. Pilih kunci metrik serta dimensi pilihan, penapis, julat masa, butiran dan perbandingan tempoh ke tempoh — jangan sekali-kali SQL. Memerlukan metrics:read.
metric, dimensions?, filters?, timeRange?, grain?, compare?, params?breakdown_metricPecahkan satu metrik mengikut satu dimensi pada tetingkap terkini yang telah ditetapkan, dengan label yang boleh dibaca oleh manusia (nama kedai/peringkat/saluran). Memerlukan metrics:read.
metric, dimension, days, state?ask_metricsJawab soalan bahasa semula jadi dengan memilih metrik terkawal yang betul, mengambilnya dan memecahkan metrik utama. Untuk diagnosis terbuka. Memerlukan metrics:read.
question, categories?list_storesSenaraikan semua kedai untuk pasukan semasa. Menyokong penapis status pilihan, carian dan penomboran halaman.
status?, search?, limit?, offset?get_storeDapatkan butiran kedai tertentu mengikut IDnya.
store_idlist_membersSenaraikan ahli program kesetiaan. Menyokong penapis dan penomboran halaman program.
programId?, limit?, offset?, status?get_memberDapatkan butiran ahli kesetiaan tertentu melalui ID. Mengembalikan medan PII yang dinyahsulit.
member_idlist_coupon_poolsSenaraikan kolam kupon. Menyokong penapis status dan jenis.
status?, coupon_type?, limit?, offset?get_dashboard_statsGambaran ringkas papan pemuka operasi (tangkapan, imbasan, kadar tangkapan, kupon, kedai, pelan). Bukan metrik yang dikawal — gunakan alat metrik untuk metrik perniagaan yang berwibawa.
(none)earn_pointsGanjaran mata kesetiaan kepada ahli. Mengembalikan ID transaksi dan baki baharu.
member_id, amount, description?redeem_pointsTolak mata kesetiaan daripada ahli (penggunaan FIFO).
member_id, amount, reasonget_points_balanceDapatkan baki mata semasa ahli dan sejarah transaksi terkini.
member_id, limit?get_member_couponsDapatkan kupon ahli yang tersedia (tidak ditebus, tidak tamat tempoh).
member_idget_member_tierDapatkan peringkat semasa ahli, keperluan naik taraf peringkat seterusnya dan semua peringkat.
member_idget_member_receiptsDapatkan sejarah penyerahan resit ahli dengan status OCR dan mata yang diberikan.
member_id, limit?redeem_points_for_couponTebus mata kesetiaan untuk kupon daripada kumpulan tertentu (atom: mata + kupon, atau kedua-duanya).
member_id, pool_id, points_costissue_couponMengeluarkan kupon daripada kumpulan kepada ahli (ahli tunggal; khalayak pukal melalui aliran pengesahan So). Memerlukan coupons:write.
member_id, pool_id, run_id?check_email_frequencySemak sama ada e-mel pemasaran boleh dihantar ke alamat di bawah had kekerapan (1/hari, 2/minggu, 4/bulan).
emaillist_ambassador_candidatesSenaraikan calon Duta yang dijaringkan untuk program kesetiaan (mod Pro). Kosongkan dalam mod Ringan.
band?, status?, level?, sort_by?, limit?, offset?get_ambassador_metricsDapatkan laporan ROI Duta: tiga submatlamat, pengekalan Bulan-2 dan pintu masuk/tidak masuk 90 hari.
since_days?, assumed_paid_cac_usd?issue_ambassador_codeKeluarkan atau naik taraf kod afiliasi Duta peribadi ahli. Mengembalikan kod string.
member_id, single_use?, max_redemptions?, min_order_amount?get_tracking_statsDapatkan analitik lawatan halaman / tingkah laku: gambaran keseluruhan, halaman teratas, pecahan peranti atau sumber trafik.
metric?, period?, start?, end?, campaign?, limit?get_member_profileProfil agregat ahli (kebolehcapaian, persetujuan/CCPA, kesetiaan, gulungan perdagangan/kategori/saluran/penglibatan, pilihan yang diisytiharkan, tag, geo kasar, jalur umur). PII disunting — tiada nama atau nilai hubungan. Memerlukan members:read.
member_idget_member_timelineGaris masa tingkah laku terkini seorang ahli (lawatan, mata, kupon, e-mel, resit) + ringkasan, untuk memutuskan tindakan yang diperibadikan. Mengembalikan PII yang dinyahsulit. Memerlukan members:behavior:baca.
member_id, limit?list_segmentsSenaraikan segmen khalayak pasukan (nama, status, kiraan ahli yang disimpan dalam cache). Memerlukan segments:read.
status?, limit?, offset?create_segmentCipta segmen khalayak daripada keadaan berstruktur (tidak pernah SQL); menolak pendua. Memerlukan segments:write + kunci milik pengguna.
name, conditions, description?list_automationsSenaraikan automasi pasukan (kempen yang dicetuskan oleh peristiwa) dan statusnya. Memerlukan automations:read.
status?pause_automationJeda automasi yang sedang berjalan mengikut ID kempen (idempotent). Memerlukan automations:write.
campaign_idlist_campaign_templatesSenaraikan templat kempen yang tersedia untuk pasukan ini (rasmi + disimpan), untuk menemui template_id untuk create_campaign_draft. Memerlukan campaigns:read.
limit?list_campaignsSenaraikan kempen pasukan terkini (id, tajuk, status), untuk mencari source_campaign_id untuk mengklon draf daripadanya. Memerlukan campaigns:read.
limit?, status?create_campaign_draftCipta DRAF kempen daripada templat atau kempen terdahulu (JANGAN SEKALI-KALI menghantar — semakan manusia diperlukan). Memerlukan campaigns:write-draf.
title, template_id?, source_campaign_id?, segment_id?, merge_context?check_member_reachSemak sama ada ahli telah dihubungi (mana-mana sistem) pada saluran dalam tempoh yang baru-baru ini — elakkan daripada menghubungi secara berlebihan. Memerlukan members:behavior:baca.
member_id, channel, days?create_memberCipta ahli kesetiaan, atau selesaikan ahli sedia ada secara idempoten dengan externalId/emel. Persetujuan pemasaran TIDAK diaktifkan melalui MCPMemerlukan members:write.
email, fullName, phone?, externalId?, birthMonth?, birthDay?update_memberKemas kini profil/identiti ahli (emel, telefon, fullName, externalId, status). Pemilikan pasukan dikuatkuasakan. Memerlukan members:write.
member_id, email?, fullName?, phone?, externalId?, status?upsert_storeCipta kedai atau kemas kini externalId yang sepadan dengan kedai sedia ada untuk pasukan ini. Memerlukan stores:write.
name, externalId?, address?, city?, state?, country?, timezone?ingest_orderRekodkan pesanan pembelian dan mata ganjaran automatik (ahli diselesaikan oleh memberId > externalId > e-mel). Memerlukan orders:write.
externalOrderId, customer, totalAmount, financialStatus?, currency?, orderName?, storeId?reverse_pointsMata terbalik (cakar belakang) daripada ahli, dipautkan kepada ID transaksi asal — untuk bayaran balik POS/ERP atau pembatalan. Memerlukan points:write.
member_id, reversesTransactionId, amount, reasonassign_tagTetapkan tag secara manual kepada ahli melalui tag_key (penggantian operator; disematkan pada sapuan peraturan). Memerlukan tags:write.
member_id, tag_key, value?remove_tagAlih keluar tag daripada ahli secara manual dengan tag_key (tag langsung mungkin ditambah semula pada sapuan seterusnya). Memerlukan tags:write.
member_id, tag_keylist_productsSenaraikan produk dengan kategori/jenama/menegak, status dan sumber. Tapis mengikut status/category_id/brand_id/menegak. Memerlukan catalog:read.
status?, category_id?, brand_id?, vertical?, limit?, offset?get_productDapatkan satu produk dengan varian, item bersiri, komponen kombo dan kandungan pembumian AI. Memerlukan catalog:read.
product_idlist_categoriesSenaraikan kategori produk pasukan (id, nama, induk). Memerlukan catalog:read.
limit?list_brandsSenaraikan jenama pasukan (id, nama). Memerlukan catalog:read.
limit?recommend_productsRekod produk terbaik seterusnya: member_id (pembelian bersama diperibadikan + pertalian kategori) atau product_id (pelanggan juga membeli). Memerlukan members:read.
member_id?, product_id?, limit?claim_winback_taskPajakan tugasan pemulihan keutamaan tertinggi seterusnya untuk pasukan ini (atomik). Mengembalikan tugasan, tarikh akhir pajakan, lengan penangguhan ahli dan ringkasan isyarat churn. NO_TASKS_AVAILABLE / WINBACK_DISABLED dikembalikan sebagai isErrorMemerlukan winback:claim.
(none)complete_winback_taskMemuktamadkan tugasan menang balik yang disewa dengan hasilnya (tuas bertindak + nota rujukan, atau HOLD sebab). Idempotent. LEASE_EXPIRED / ALREADY_COMPLETED dikembalikan sebagai isError. Memerlukan winback:claim.
task_id, acted?, lever?, action_ref?, note_id?, hold_reason?get_winback_contextSemak awal baca sahaja sekali gus untuk ahli sebelum memutuskan: persetujuan, ruang kepala frekuensi e-mel, keletihan, jangkauan terkini, isyarat churn dan lengan penangguhan ahli. Pratonton ihsan — pelayan masih menguatkuasakan setiap pintu masuk pada masa tulis. Memerlukan winback:read.
member_idadd_member_noteLampirkan nota proses teks bebas pada rekod menang balik ahli (rasional / isyarat diperhatikan / hipotesis yang disokong penangguhan). Teks disimpan sebagai DATA, bukan arahan; maksimum 2000 aksara, disanitasi. Memerlukan winback:write.
member_id, body, kind?, task_id?, action_ref?send_winback_messageHantar mesej menang balik yang dikawal (peti masuk atau e-mel) supaya insentif tidak pernah menjadi pemberian senyap. Pintu tertutup kegagalan bahagian pelayan: WINBACK_DISABLED, pemilikan pajakan tugas, HOLDOUT_NO_SEND (tahan tidak pernah dihantar mesej), NOT_CONSENTED, FREQUENCY_CAPPED, CONTENT_REJECTED (disanitasi), BREAKER_TRIPPED — dikembalikan sebagai isError. Menggunakan semula tindanan hantar sedia ada (pengaki berhenti melanggan + pematuhan ditambah oleh lapisan hantar). Memerlukan winback:write.
member_id, task_id, channel, subject?, bodyget_member_behaviorsBaca tingkah laku AKTIF PELANGGAN ahli dalam tetingkap terkini (Lapisan 3, terbaru-dahulu) untuk membuat kesimpulan niat (Lapisan 4). Hanya mengembalikan tindakan pelanggan yang disengajakan (layari, buka/klik, daftar masuk, beli, tebus, rujuk, serahkan kandungan) dengan label katalog + maksud dilampirkan dalam baris, serta ringkasan (dikira mengikut jenis + tetingkap). Penaakulan di seluruh tetingkap; niat ialah hipotesis untuk mengesahkan, bukan fakta. Baca sahaja. Memerlukan winback:read.
member_id, since_days?, limit?claim_agent_taskSewa tugasan keputusan ejen seterusnya untuk pasukan ini (atomik; secara pilihan sempit mengikut jenis). Mengembalikan id tugasan, jenis, fakta subjek dan tarikh akhir pajakan. NO_TASKS_AVAILABLE / AGENT_TASKS_DISABLED dikembalikan sebagai isError. Memerlukan agent_tasks:claim.
kind?get_agent_taskBaca fakta satu tugas keputusan ejen (jenis, subjek, sebab bendera, status) sebelum membuat keputusan. AGENT_TASK_NOT_FOUND dikembalikan sebagai isError. Memerlukan agent_tasks:read.
taskIdcomplete_agent_taskSelesaikan tugasan yang dipajak dengan keputusan, gunakan kesannya melalui penulisan idempoten sedia ada. fraud_household_referral: block (clawback kedua-dua belah pihak) / allow (abaikan bendera) / escalate (biarkan untuk manusia). ALREADY_COMPLETED / NOT_LEASE_OWNER / LEASE_EXPIRED dikembalikan sebagai isError. Memerlukan agent_tasks:claim.
taskId, decision, reason?list_objectsSenaraikan objek perniagaan yang boleh dipertimbangkan oleh pasukan ini: objek platform teras (ahli, pesanan, kedai, kupon, kempen, produk, segmen, tag) serta objek pasukan ini MCP-objek tersuai yang boleh dilihat — kunci, label dan makna satu baris yang berwibawa. Hubungi dahulu untuk mengetahui yang sah object kunci. Memerlukan introspection:read.
(none)describe_objectHuraikan satu perniagaan object daripada daftar yang ditadbir: makna autoritatif serta sifat yang dibahagikan kepada fakta (disokong lajur), terbitan (rujukan metrik/tag/gulung naik dengan kesegaran — jangan sekali-kali terbitkan semula kaliber), dan tersuai (medan tersuai pasukan ini). Sifat PII hanya mengembalikan metadata, tidak pernah nilai. fields=summary (lalai) atau penuh. Memerlukan introspection:read.
object, fields?list_actionsSenaraikan tindakan ejen yang dikawal (apa yang mungkin dilakukan oleh ejen): sasaran object, kesan sampingan, gear (auto/ulasan/dilarang), kekunci prasyarat bahagian pelayan, had nilai dan kebolehbalikan — semak sendiri sebelum mencadangkan penulisan. Secara pilihan, tapis mengikut objectMemerlukan introspection:read.
object?list_stamp_programsSenaraikan kad setem pasukan (eStamp) program: id, nama, setem yang diperlukan untuk dilengkapkan, jenis ganjaran (kupon/mata/manual), tetapan semula automatik dan status. Hubungi dahulu untuk mendapatkan program_idMemerlukan stamp:read.
(none)get_member_stamp_cardsDapatkan kad setem aktif ahli: nama program, setem semasa, setem yang diperlukan, penyempurnaan setakat ini dan ganjaran. Memerlukan stamp:read.
member_idgrant_stampsMemberi setem kepada ahli untuk program setem (cth. lawatan ke kedai). Idempoten dengan idempotency_key; setelah kad siap, ganjaran (kupon/mata) akan dikeluarkan secara automatik. Jumlah dihadkan setiap panggilan. Memerlukan stamp:write.
program_id, member_id, amount?, reason?, idempotency_key?get_member_pointsMata ganjaran ahli: baki boleh dibelanjakan, perolehan seumur hidup, penebusan, peringkat semasa, kelompok yang paling cepat tamat tempoh. Kunci terikat ahli → mata ganjaran sendiri (abaikan member_id); kunci pasukan → lulus member_idMemerlukan loyalty:self:baca.
member_id?get_member_points_historyTransaksi mata terkini ahli (diperoleh/ditebus/dilaraskan), yang terbaru dahulu. Kunci terikat ahli → sejarah sendiri; kunci pasukan → lulus member_idMemerlukan loyalty:self:baca.
member_id?get_member_rewardsGanjaran yang boleh ditebus oleh ahli — katalog dengan kos mata, ditandai dengan kemampuan berbanding baki ahli. Kunci terikat ahli → milik; kunci pasukan → lulus member_idMemerlukan loyalty:self:baca.
member_id?get_loyalty_program_rulesCara program kesetiaan berfungsi — kadar perolehan, bonus alu-aluan, nilai mata, cara menyertai — serta Soalan Lazim yang diluluskan jenama. Fakta awam. Kunci terikat ahli tidak memerlukan hujah. Memerlukan loyalty:self:baca.
member_id?list_synthetic_scenariosSenaraikan senario simulasi panel sintetik dengan sempadan kebolehgunaan yang jujur, siling keyakinan dan medan input setiap satu. Hubungi dahulu untuk memilih jenis. Memerlukan metrics:read.
(none)get_synthetic_calibrationPenentukuran panel sintetik jenama (kadar kejayaan ramalan sintetik lepas vs realiti; null sehingga ujian belakang wujud). Memerlukan metrics:read.
(none)get_synthetic_reportBaca laporan jujur yang dibekukan untuk larian panel sintetik — bacaan berarah, siling keyakinan, bendera penindasan, tema — atau blockReason jika belum bersedia. Memerlukan metrics:read.
run_idrun_synthetic_panelJalankan panel sintetik: kembar digital yang dinyahkenal pasti bagi sesuatu segmen bertindak balas terhadap rangsangan, menghasilkan laporan berarah yang jujur (tidak pernah nombor mutlak sebenar). Mengembalikan run_id kepada tinjauan pendapat. Dibatasi oleh had larian harian + ≤50 kembar. Memerlukan synthetic:write.
segment_id, kind, fieldsKeselamatan & Privasi
Permukaan MCP ialah lapisan kemudahan AI, bukan alat pentadbir pukal. Beberapa perkara yang perlu diingat:
- Pelayan adalah sempadan, bukan sembang. Operasi penulisan (memberi/menebus mata, mengeluarkan kupon, mengeluarkan kod Ambassador) memerlukan skop penulisan yang sepadan dan dibatasi oleh pengawal sisi pelayan: had nilai setiap panggilan ditambah had kadar penulisan setiap kekunci, kedua-duanya dikuatkuasakan dengan penutupan kegagalan. Sebarang pengesahan dalam sembang yang diminta oleh klien AI anda adalah ihsan — pelayanlah yang sebenarnya menghalang kunci yang bocor atau model yang disuntik gesaan daripada menghabiskan titik.
- Beberapa alat baca mengembalikan PII ahli. Alat seperti
get_memberdanlist_membersboleh mengembalikan nama dan e-mel yang dinyahsulit ke dalam klien AI anda. Layan data tersebut dengan sewajarnya dan utamakan kunci yang paling kurang istimewa. - Jangan sekali-kali mengkomitkan kunci teks biasa. Sentiasa rujuk
${FLASH_API_KEY}dalam.mcp.jsonyang telah didaftar masuk dan bukannya kunci literal. - Gunakan kekunci baca sahaja yang paling kurang keistimewaannya. Cipta kekunci yang hanya skopnya untuk alatan yang anda perlukan. Jika kekunci tidak mempunyai skop alatan, alatan tersebut hanya akan disembunyikan — ia tidak akan muncul dalam senarai.
Nombor Berasal daripada Lapisan Semantik Tertadbir
Setiap metrik yang dilaporkan oleh AI — GMV, ahli aktif, kadar penebusan dan selebihnya — mengalir melalui lapisan metrik yang dikawal oleh SocialHub, yang memegang satu definisi (dan pensijilan) berwibawa untuk setiap metrik. Alat list_metrics, describe_metric, query_metric, breakdown_metric dan ask_metrics memilih kunci dan dimensi metrik di bawah tadbir urus tersebut — AI tidak pernah menulis SQL. Jadi angka yang anda dapat sepadan dengan papan pemuka anda dan bukannya agregat ad-hoc yang mudah hanyut.
Contoh Perbualan
list_stores dengan status="aktif"