← 返回 Skill 列表
extension
分类: 数据与分析需要 API Key

soial-data-skill

通过内置 Social MCP 客户端脚本获取网络公开数据与社媒数据,包括帖子/推文检索、话题与热度查询、账号资料、舆情趋势等。当用户需要查询网络舆情、社媒内容、热门话题、账号数据等场景时使用。无需安装任何 MCP 连接器,开箱即用;本技能在每次调用前通过 connect_open_platform 获取开放平台令牌,并作为 user_token 随请求传递,用于服务端识别当前 WorkBuddy 用户与配额控制。

person作者: user_ebf16a76hubcommunity

Social Network Fetch Skill

通过 Social MCP(social-all)获取网络/社媒公开数据的 WorkBuddy Skill。 用户无需安装 MCP 连接器——Skill 内置迷你 MCP 客户端脚本,直连数据服务。

目录结构

social-network-skill/
├── SKILL.md                          # 技能定义与调用指令(上架/安装的主文件)
├── scripts/
│   └── social_mcp_client.py          # 内置迷你 MCP 客户端(纯标准库,零依赖)
├── mcp-servers.json                  # (可选)连接器方式的 MCP 配置,供参考
└── README.md                         # 本说明

为什么能做到「免安装 MCP」

WorkBuddy 的 MCP server 属于连接器层,必须由用户在连接器管理里显式授权 才能被 Agent 调用——这是平台的安全模型:不允许任何 Skill 在用户不知情时 静默连接远程服务器。所以「Skill 包内自动注册/激活 MCP」这条路在平台层面 走不通。

但 Social 的 MCP 端点本质是 HTTP + JSON-RPC(streamable HTTP 协议), 因此把「MCP 客户端」写进 Skill 的 scripts 里即可绕过连接器依赖: Agent 直接运行脚本,脚本向 MCP 端点发请求拿数据。用户装完 Skill 就能用, 全程不需要碰连接器管理页。

鉴权与配额链路

WorkBuddy 用户触发 Skill
        │
        ▼
Agent 调用 connect_open_platform(skill_id) ──► 返回 op_xxx 短时效令牌
        │
        ▼
Agent 运行 scripts/social_mcp_client.py --user-token op_xxx
        │
        ▼
脚本直连 Social MCP 端点(JSON-RPC over HTTP)
        │
        ▼
Social 服务端对 op_xxx 做开放平台内省(introspection)
        │
        ▼
取得稳定用户身份标识 → 按用户累计数据量(上限 10 万条)→ 放行/拒绝

要点:

  • op_xxx 令牌短时效、每次调用重新获取,不缓存、不外显;
  • 服务端拿令牌内省得到的稳定身份标识才是配额主键,跨 session 识别同一用户;
  • 配额超额时返回 QUOTA_EXCEEDED / 429,SKILL.md 已定义对用户的告知措辞。

用户需要配置什么

用户只需要一个 SOCIAL_API_KEY(数据服务方签发),二选一:

  1. 设置环境变量 SOCIAL_API_KEY;或
  2. 调用时由 Agent 通过 --api-key 参数传入(SKILL.md 已写明缺省时读环境变量)。

其余全部自动:Skill 安装 → 用户触发 → Agent 拿令牌 → 脚本取数 → 返回结果。

上架前必读(安全)

  1. 不要硬编码静态密钥:Skill 包会分发到每个用户机器上,包内任何 字符串都可被提取。scripts/social_mcp_client.py 默认 api_key 为空, mcp-servers.json 中的 Authorization 是占位符——两者都不得填入真实 Key。
  2. 如果数据服务方支持按用户签发 API Key:每个用户拿自己的 Key,配额、 审计都天然对得上,是最佳形态;
  3. 如果必须共享一个网关 Key:任何安装者提取后即可绕过 WorkBuddy 直接 刷接口,配额/计费/审计全部失效——上架前请与数据方确认替代方案 (例如改用 op_ 令牌做用户级鉴权)。
  4. 上架前的安全扫描会拦截硬编码密钥,占位符方案可顺利过审。

待确认事项

  • social-all 暴露的工具列表,以及服务端是否按 user_token 字段接收 op_ 令牌(若不支持,需与 Social 服务端约定携带位置, 修改脚本 call_tool() 中的字段名即可);
  • 开放平台令牌内省接口的正式端点与返回字段, 以 WorkBuddy 开放平台入驻后提供的开发者文档为准。

本地验证方法

# 1. 列出工具(先配置 SOCIAL_API_KEY)
SOCIAL_API_KEY=your_key python3 scripts/social_mcp_client.py --list-tools

# 2. 调用工具(--user-token 用 connect_open_platform 拿到的 op_ 令牌)
SOCIAL_API_KEY=your_key python3 scripts/social_mcp_client.py \
    --tool <工具名> --args '{"keyword": "测试"}' --user-token op_xxx