MCP 集成指南
模型上下文协议 (Model Context Protocol (MCP)) 是一个开放标准,允许 AI 助手直接调用外部工具。SocialHub 实现了一个 MCP 服务器,因此您可以从 Claude Desktop、Cursor 或任何 MCP 兼容的客户端管理商店、会员、优惠券和积分。
无需编写代码,只需向 AI 发出以下指令:“列出所有活跃店铺” 或 “奖励会员 m_abc123 500 积分”,AI 助手就会代表您调用 SocialHub MCP 工具。
连接配置
SocialHub 公开了一个 Streamable HTTP MCP 端点。您需要以下两项信息:
| 端点 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 服务器。请先将密钥导出为环境变量,以确保明文密钥不会出现在配置文件或 shell 历史记录中:
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;确保在启动 Claude Code 的 shell 中导出FLASH_API_KEY。
问题:无效或已撤销的密钥显示为连接失败,而不是身份验证提示。 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 和 metrics:read。
metric?, horizon_days?, history_days?, category?cwm_predict_purchase_windows租户私人 CWM + TimesFM 7/30/90天时的购买概率(0-1)。训练和验证前为空;无预设备选方案。需要 predictions:read AND metrics:read.
member_idlist_metrics列出此团队可从受管语义层(键、标签、单位、认证、类别)获取的指标。请先调用此方法以发现有效的指标键。需要 metrics:read 权限。
category?describe_metric获取单个指标的完整规范:权威定义、单位、认证、维度、可筛选字段、可调参数和使用指南。需要 metrics:read.
metricquery_metric运行受控指标查询,并返回包含权威定义的数值。选择指标键以及可选的维度、筛选器、时间范围、粒度和周期性比较——无需使用 SQL。需要 metrics:read 权限。
metric, dimensions?, filters?, timeRange?, grain?, compare?, params?breakdown_metric将某个指标按单一维度在固定的近期时间段内进行细分,并使用易于理解的标签(商店/层级/渠道名称)。需要 metrics:read.
metric, dimension, days, state?ask_metrics通过选择正确的受管指标、获取指标并分解主要指标来回答自然语言问题。用于开放式诊断。需要 metrics:read 权限。
question, categories?list_stores列出当前团队的所有门店。支持可选的状态筛选、搜索和分页功能。
status?, search?, limit?, offset?get_store通过门店 ID 获取特定门店的详细信息
store_idlist_members列出忠诚度计划成员。支持节目过滤和分页。
programId?, limit?, offset?, status?get_member通过 ID 获取特定会员的详细信息。返回已解密的个人身份信息 (PII) 字段。
member_idlist_coupon_pools列出优惠券池。支持状态和类型筛选。
status?, coupon_type?, limit?, offset?get_dashboard_stats运营仪表盘快照(捕获量、扫描量、捕获率、优惠券、门店、套餐)。此指标并非受监管指标——请使用指标工具获取权威的业务指标。
(none)earn_points向会员奖励忠诚度积分。返回交易 ID 和新余额。
member_id, amount, description?redeem_points从会员账户中扣除积分(先进先出)。
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封、每周2封、每月4封)发送到指定地址。
emaillist_ambassador_candidates列出忠诚度计划的评分大使候选人(专业版)。精简版为空。
band?, status?, level?, sort_by?, limit?, offset?get_ambassador_metrics获取大使投资回报率报告:三个子目标、第二个月留存率以及 90 天的审批节点。
since_days?, assumed_paid_cac_usd?issue_ambassador_code颁发或升级会员的个人大使联盟代码。返回代码string。
member_id, single_use?, max_redemptions?, min_order_amount?get_tracking_stats获取页面访问/行为分析:概览、热门页面、设备细分或流量来源。
metric?, period?, start?, end?, campaign?, limit?get_member_profile会员的综合资料(可访问性、同意/CCPA、忠诚度、商务/类别/渠道/互动汇总、已声明的偏好、标签、粗略地理位置、年龄段)。已隐去个人身份信息——不包含姓名或联系方式。需要 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列出此团队可用的营销活动模板(官方模板和已保存模板),以查找 create_campaign_draft 的 template_id。需要 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:read 权限。
member_id, channel, days?create_member创建会员,或通过externalId/email幂等解析现有会员。MCP不启用营销许可。需要members:write权限。
email, fullName, phone?, externalId?, birthMonth?, birthDay?update_member更新会员的个人资料/身份信息(电子邮件、电话、 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获取包含变体、序列化商品、组合组件和人工智能基础内容的单一产品。需要 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使用结果(已执行的杠杆 + 备注参考,或“保留”原因)完成已租赁的挽回任务。幂等性。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 层,最新优先)内的活跃用户行为,以推断其意图(第 4 层)。仅返回有意用户操作(浏览、打开/点击、签到、购买、兑换、推荐、提交内容),并内联显示目录标签及其含义,以及摘要(按类型和窗口计数)。基于整个窗口进行推理;意图是待验证的假设,而非事实。只读。需要 winback:read 权限。
member_id, since_days?, limit?claim_agent_task为该团队租赁下一个代理决策任务(原子操作;可选择按类型筛选)。返回任务 ID、类型、主题信息和租赁截止日期。如果任务为 NO_TASKS_AVAILABLE 或 AGENT_TASKS_DISABLED,则返回 isError 错误。需要 agent_tasks:claim。
kind?get_agent_task在做出决策之前,读取一个代理决策任务的事实(类型、主题、标记原因、状态)。AGENT_TASK_NOT_FOUND 返回 isError。需要 agent_tasks:read。
taskIdcomplete_agent_task使用决策完成租赁任务,并通过现有的幂等写入应用其效果。fraud_household_referral:阻止(追回双方权限)/允许(忽略标记)/升级(交由人工处理)。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:读。
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会员忠诚计划运作方式——积分赚取比例、迎新奖励、积分价值、如何加入——以及品牌官方常见问题解答。公开信息。会员专属密钥无需争辩。要求 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。每日运行次数上限为 50 个孪生体。需要 synthetic:write 模块。
segment_id, kind, fields安全与隐私
MCP界面是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 工具根据该管理机制选择指标键和维度—— 人工智能从不编写 SQL 语句这样一来,你得到的数据就与你的仪表盘数据相符,而不是临时性的、容易出现偏差的汇总数据。
对话示例
list_stores