socialdatax-skills 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -5
- package/cli.mjs +121 -1
- package/package.json +11 -2
- package/skills/sensitive-check/SKILL.md +71 -0
- package/skills/sensitive-check/agents/openai.yaml +7 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This public package provides the unified skill installer and direct CLI helper for SocialDataX services.
|
|
4
4
|
|
|
5
|
-
The current public tools support 小红书 / Xiaohongshu / XHS / RedNote, 抖音 / Douyin, 快手 / Kuaishou / Kwai, 微博 / Weibo, and 视频号 / WeChat Channels content research and analysis workflows. The public skill layer is intentionally named by
|
|
5
|
+
The current public tools support 小红书 / Xiaohongshu / XHS / RedNote, 抖音 / Douyin, 快手 / Kuaishou / Kwai, 微博 / Weibo, and 视频号 / WeChat Channels content research and analysis workflows, plus SocialDataX 敏感检测 text checks. The public skill layer is intentionally named by capability so supported services can evolve without changing the installation model.
|
|
6
6
|
|
|
7
7
|
- direct `npx` JSON commands for agents that can run shell commands
|
|
8
8
|
- AgentSkills-compatible installers split by capability for OpenClaw, Hermes Agent, Codex, Claude Code, and general agent skill directories
|
|
@@ -39,6 +39,10 @@ Common search phrases for this skill package:
|
|
|
39
39
|
- `视频号 skills`
|
|
40
40
|
- `SocialDataX content research`
|
|
41
41
|
- `content research assistant`
|
|
42
|
+
- `敏感检测 SocialDataX`
|
|
43
|
+
- `sensitive check skill`
|
|
44
|
+
- `content safety skill`
|
|
45
|
+
- `text safety check`
|
|
42
46
|
|
|
43
47
|
## Platform MCPs
|
|
44
48
|
|
|
@@ -47,6 +51,7 @@ Common search phrases for this skill package:
|
|
|
47
51
|
- Kuaishou hosted MCP endpoint: `https://mcp.52choujiang.com/kuaishou/mcp`
|
|
48
52
|
- Weibo hosted MCP endpoint: `https://mcp.52choujiang.com/weibo/mcp`
|
|
49
53
|
- WeChat Channels hosted MCP endpoint: `https://mcp.52choujiang.com/wechat/mcp`
|
|
54
|
+
- Sensitive Check hosted MCP endpoint: `https://mcp.52choujiang.com/sensitive-check/mcp`
|
|
50
55
|
- Hosted transport: `streamable-http`
|
|
51
56
|
- Authentication: `Authorization: Bearer <SOCIALDATAX_API_KEY>`
|
|
52
57
|
- Website: <https://socialdatax.com>
|
|
@@ -60,8 +65,10 @@ Common search phrases for this skill package:
|
|
|
60
65
|
- Weibo future platform MCP registry name: `com.socialdatax/weibo-insights`
|
|
61
66
|
- WeChat Channels current platform MCP registry name: `com.52choujiang/wechat-channels-insights`
|
|
62
67
|
- WeChat Channels future platform MCP registry name: `com.socialdatax/wechat-channels-insights`
|
|
68
|
+
- Sensitive Check MCP server name: `sensitive-check`
|
|
69
|
+
- Sensitive Check future MCP registry name: `com.socialdatax/sensitive-check`
|
|
63
70
|
- Unified MCP registry name: none; this package installs skills and calls explicit platform services.
|
|
64
|
-
- Current public capability version: `0.2.
|
|
71
|
+
- Current public capability version: `0.2.12`
|
|
65
72
|
|
|
66
73
|
## Direct CLI
|
|
67
74
|
|
|
@@ -127,9 +134,10 @@ npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --obje
|
|
|
127
134
|
npx -y socialdatax-skills@latest wechat user-info --user-id "<finder_user_id>" --pretty
|
|
128
135
|
npx -y socialdatax-skills@latest wechat user-posts --user-id "<finder_user_id>" --pretty
|
|
129
136
|
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty
|
|
137
|
+
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
130
138
|
```
|
|
131
139
|
|
|
132
|
-
|
|
140
|
+
Most direct CLI commands print a JSON envelope with `platform`, `tool`, `arguments`, and `data`. `sensitive-check` prints `platform`, `tool`, and `data` only; it does not echo the original text in CLI output.
|
|
133
141
|
|
|
134
142
|
For XHS outputs with a returned `note_url` field, when `note_url` is non-null, preserve it exactly as the full URL, including `xsec_token` query parameters, such as in final answers or display. Do not modify, truncate, redact, normalize, rebuild, or replace it with a link assembled from `note_id`. If `note_url` is null, do not synthesize a public link from `note_id`.
|
|
135
143
|
|
|
@@ -192,6 +200,7 @@ SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" node cli.mjs douyin search --keyword
|
|
|
192
200
|
SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" node cli.mjs kuaishou search --keyword "露营" --pretty
|
|
193
201
|
SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" node cli.mjs weibo search --keyword "露营" --pretty
|
|
194
202
|
SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" node cli.mjs wechat search --keyword "露营" --pretty
|
|
203
|
+
SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" node cli.mjs sensitive-check text --text "<content>" --platform xhs --pretty
|
|
195
204
|
```
|
|
196
205
|
|
|
197
206
|
### Docker Run
|
|
@@ -203,6 +212,7 @@ docker run --rm -i -e SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" socialdatax-sk
|
|
|
203
212
|
docker run --rm -i -e SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" socialdatax-skills kuaishou search --keyword "露营" --pretty
|
|
204
213
|
docker run --rm -i -e SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" socialdatax-skills weibo search --keyword "露营" --pretty
|
|
205
214
|
docker run --rm -i -e SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" socialdatax-skills wechat search --keyword "露营" --pretty
|
|
215
|
+
docker run --rm -i -e SOCIALDATAX_API_KEY="<SOCIALDATAX_API_KEY>" socialdatax-skills sensitive-check text --text "<content>" --platform xhs --pretty
|
|
206
216
|
```
|
|
207
217
|
|
|
208
218
|
If Docker Hub is slow from your network, keep the default image unchanged for normal use and override only during local builds:
|
|
@@ -245,6 +255,7 @@ npx -y socialdatax-skills@latest weibo hot-search --pretty
|
|
|
245
255
|
npx -y socialdatax-skills@latest weibo search --keyword "露营" --pretty
|
|
246
256
|
npx -y socialdatax-skills@latest wechat hot-search --pretty
|
|
247
257
|
npx -y socialdatax-skills@latest wechat search --keyword "露营" --pretty
|
|
258
|
+
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
248
259
|
```
|
|
249
260
|
|
|
250
261
|
Available skills:
|
|
@@ -256,6 +267,7 @@ Available skills:
|
|
|
256
267
|
- `media-transcript`: submit and check video 口播转文字 / speech-to-text transcript jobs through hosted MCP tools; supports XHS, Douyin, Kuaishou, Weibo, and WeChat Channels.
|
|
257
268
|
- `media-user-info`: retrieve creator profile information; supports XHS, Douyin, Kuaishou, Weibo, and WeChat Channels creators.
|
|
258
269
|
- `media-user-posts`: retrieve creator content lists; supports XHS notes, Douyin works, Kuaishou works, Weibo posts, WeChat Channels videos, and Douyin creator short-drama series.
|
|
270
|
+
- `sensitive-check`: run 敏感检测 text checks; supports `generic`, `xhs`, `douyin`, and `kuaishou` platform contexts.
|
|
259
271
|
|
|
260
272
|
Default install locations:
|
|
261
273
|
|
|
@@ -336,6 +348,13 @@ Current WeChat Channels / 视频号 workflows include:
|
|
|
336
348
|
- Fetch paginated creator video lists from a finder user_id or a video link/share text.
|
|
337
349
|
- Submit and check WeChat Channels / 视频号 video 口播转文字 / speech-to-text transcript jobs; submit tools 提交完成后最多短等 15 秒.
|
|
338
350
|
|
|
351
|
+
Current Sensitive Check workflows include:
|
|
352
|
+
|
|
353
|
+
- Check draft text for 敏感检测 / sensitive-content risks before publishing.
|
|
354
|
+
- Choose a platform context with `--platform generic`, `--platform xhs`, `--platform douyin`, or `--platform kuaishou`.
|
|
355
|
+
- Return structured fields such as `violation`, `risk_level`, `types`, `highlights`, `summary`, `platform`, and `suggestions` when available.
|
|
356
|
+
- Text checks are read-only. Image sensitive detection is reserved for a future separate tool.
|
|
357
|
+
|
|
339
358
|
## XHS Tools
|
|
340
359
|
|
|
341
360
|
| Tool | Public purpose |
|
|
@@ -432,6 +451,12 @@ Current WeChat Channels / 视频号 workflows include:
|
|
|
432
451
|
| `wechat_submit_video_speech_text_by_encrypted_object_id` | Submit a WeChat Channels / 视频号 video speech-to-text transcript job when encrypted_object_id is already known; submit waits up to 15 seconds. |
|
|
433
452
|
| `wechat_get_video_speech_text_job` | Check a WeChat Channels / 视频号 speech-to-text transcript job by job_id without creating a new task. |
|
|
434
453
|
|
|
454
|
+
## Sensitive Check Tools
|
|
455
|
+
|
|
456
|
+
| Tool | Public purpose |
|
|
457
|
+
| --- | --- |
|
|
458
|
+
| `check_sensitive_text` | Check text for 敏感检测 / sensitive-content risks with `generic`, `xhs`, `douyin`, or `kuaishou` context. |
|
|
459
|
+
|
|
435
460
|
## Quick Start
|
|
436
461
|
|
|
437
462
|
For agents that can execute shell commands, use the direct CLI. This is the recommended default for installed skills:
|
|
@@ -443,9 +468,10 @@ npx -y socialdatax-skills@latest douyin search --keyword "露营" --pretty
|
|
|
443
468
|
npx -y socialdatax-skills@latest kuaishou search --keyword "露营" --pretty
|
|
444
469
|
npx -y socialdatax-skills@latest weibo search --keyword "露营" --pretty
|
|
445
470
|
npx -y socialdatax-skills@latest wechat search --keyword "露营" --pretty
|
|
471
|
+
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
446
472
|
```
|
|
447
473
|
|
|
448
|
-
MCP client configuration belongs to platform MCP listings. For XHS, use the `xhs-insights` docs; for Douyin, use the `douyin-insights` listing; for Kuaishou, use the `kuaishou-insights` listing; for Weibo, use the `weibo-insights` listing; for WeChat Channels / 视频号, use the `wechat-channels-insights` listing.
|
|
474
|
+
MCP client configuration belongs to platform or capability MCP listings. For XHS, use the `xhs-insights` docs; for Douyin, use the `douyin-insights` listing; for Kuaishou, use the `kuaishou-insights` listing; for Weibo, use the `weibo-insights` listing; for WeChat Channels / 视频号, use the `wechat-channels-insights` listing; for 敏感检测, use the `sensitive-check` server.
|
|
449
475
|
|
|
450
476
|
Aily is treated as an OpenClaw / AgentSkills ecosystem channel for this package. Use the OpenClaw skill install flow for now; a dedicated `--target aily` will be added only after its official skill import or package format is confirmed.
|
|
451
477
|
|
|
@@ -461,7 +487,7 @@ Use the key as a Bearer token in the `Authorization` request header. Do not comm
|
|
|
461
487
|
|
|
462
488
|
Public metadata files in this repository:
|
|
463
489
|
|
|
464
|
-
- [skills](skills): AgentSkills-compatible skills split by
|
|
490
|
+
- [skills](skills): AgentSkills-compatible skills split by capability and currently backed by XHS, Douyin, Kuaishou, Weibo, WeChat Channels, and Sensitive Check tools.
|
|
465
491
|
|
|
466
492
|
## License
|
|
467
493
|
|
package/cli.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import { dirname, join, resolve } from "node:path";
|
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
|
|
9
9
|
const PACKAGE_NAME = "socialdatax-skills";
|
|
10
|
-
const PACKAGE_VERSION = "0.2.
|
|
10
|
+
const PACKAGE_VERSION = "0.2.12";
|
|
11
11
|
const PACKAGE_SPEC = `${PACKAGE_NAME}@latest`;
|
|
12
12
|
const LOG_PREFIX = `[${PACKAGE_NAME}]`;
|
|
13
13
|
const MIN_NODE_VERSION = "20.18.1";
|
|
@@ -58,6 +58,12 @@ const AVAILABLE_SKILLS = [
|
|
|
58
58
|
"Retrieve creator content lists for XHS, Douyin, Kuaishou, Weibo, and WeChat Channels, including Douyin creator short-drama series.",
|
|
59
59
|
emoji: "🗂️",
|
|
60
60
|
},
|
|
61
|
+
{
|
|
62
|
+
name: "sensitive-check",
|
|
63
|
+
summary:
|
|
64
|
+
"Check text content for generic, XHS, Douyin, and Kuaishou sensitive-content risks.",
|
|
65
|
+
emoji: "🛡️",
|
|
66
|
+
},
|
|
61
67
|
];
|
|
62
68
|
const AVAILABLE_SKILL_NAMES = AVAILABLE_SKILLS.map((skill) => skill.name);
|
|
63
69
|
const BOOLEAN_OPTIONS = new Set([
|
|
@@ -349,6 +355,17 @@ const WECHAT_OPTION_DISPLAY_NAMES = {
|
|
|
349
355
|
commentId: "--comment-id",
|
|
350
356
|
userId: "--user-id",
|
|
351
357
|
};
|
|
358
|
+
const SENSITIVE_CHECK_DIRECT_ACTION_OPTIONS = {
|
|
359
|
+
text: ["text", "platform", "pretty"],
|
|
360
|
+
};
|
|
361
|
+
const SENSITIVE_CHECK_DIRECT_ACTION_NAMES = Object.keys(
|
|
362
|
+
SENSITIVE_CHECK_DIRECT_ACTION_OPTIONS
|
|
363
|
+
).join(", ");
|
|
364
|
+
const SENSITIVE_CHECK_PLATFORMS = ["generic", "xhs", "douyin", "kuaishou"];
|
|
365
|
+
const SENSITIVE_CHECK_OPTION_DISPLAY_NAMES = {
|
|
366
|
+
text: "--text",
|
|
367
|
+
platform: "--platform",
|
|
368
|
+
};
|
|
352
369
|
const PLATFORMS = {
|
|
353
370
|
xhs: {
|
|
354
371
|
id: "xhs",
|
|
@@ -748,6 +765,27 @@ const PLATFORMS = {
|
|
|
748
765
|
},
|
|
749
766
|
],
|
|
750
767
|
},
|
|
768
|
+
"sensitive-check": {
|
|
769
|
+
id: "sensitive-check",
|
|
770
|
+
displayName: "Sensitive Check / 敏感检测",
|
|
771
|
+
status: "public",
|
|
772
|
+
registryName: "sensitive-check",
|
|
773
|
+
futureRegistryName: "com.socialdatax/sensitive-check",
|
|
774
|
+
endpoint: "https://mcp.52choujiang.com/sensitive-check/mcp",
|
|
775
|
+
apiKeyEnv: API_KEY_ENV_NAMES,
|
|
776
|
+
upstreamEnv: [
|
|
777
|
+
"SOCIALDATAX_SENSITIVE_CHECK_MCP_UPSTREAM_URL",
|
|
778
|
+
"SOCIAL_MEDIA_SENSITIVE_CHECK_MCP_UPSTREAM_URL",
|
|
779
|
+
"SOCIAL_MEDIA_MCP_UPSTREAM_URL",
|
|
780
|
+
],
|
|
781
|
+
tools: [
|
|
782
|
+
{
|
|
783
|
+
name: "check_sensitive_text",
|
|
784
|
+
description:
|
|
785
|
+
"Check text content for generic, XHS, Douyin, or Kuaishou sensitive-content risks.",
|
|
786
|
+
},
|
|
787
|
+
],
|
|
788
|
+
},
|
|
751
789
|
};
|
|
752
790
|
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
753
791
|
let mcpSdkModules;
|
|
@@ -787,6 +825,8 @@ if (isMainModule()) {
|
|
|
787
825
|
await runWeiboDirectCommand(cliArgs.slice(1));
|
|
788
826
|
} else if (command === "wechat") {
|
|
789
827
|
await runWechatDirectCommand(cliArgs.slice(1));
|
|
828
|
+
} else if (command === "sensitive-check") {
|
|
829
|
+
await runSensitiveCheckDirectCommand(cliArgs.slice(1));
|
|
790
830
|
} else if (command === "--platform" || command?.startsWith("--platform=") || command === "print-config") {
|
|
791
831
|
printRemovedMcpConfigHelp(command);
|
|
792
832
|
process.exitCode = 1;
|
|
@@ -947,6 +987,21 @@ function validateWechatDirectActionOptions(action, options) {
|
|
|
947
987
|
}
|
|
948
988
|
}
|
|
949
989
|
|
|
990
|
+
function validateSensitiveCheckDirectActionOptions(action, options) {
|
|
991
|
+
const allowedOptions = SENSITIVE_CHECK_DIRECT_ACTION_OPTIONS[action];
|
|
992
|
+
if (!allowedOptions) {
|
|
993
|
+
return;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
validateKnownOptions(options, allowedOptions);
|
|
997
|
+
validateFlagOption(options, "pretty", "--pretty");
|
|
998
|
+
for (const key of allowedOptions) {
|
|
999
|
+
if (!DIRECT_BOOLEAN_OPTIONS.has(key)) {
|
|
1000
|
+
requireOptionValue(options, key, SENSITIVE_CHECK_OPTION_DISPLAY_NAMES[key]);
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
|
|
950
1005
|
function validateDirectPaginationOptions(platformId, action, options) {
|
|
951
1006
|
validateFlagOption(options, "pretty", "--pretty");
|
|
952
1007
|
validateFlagOption(options, "all", "--all");
|
|
@@ -1615,6 +1670,9 @@ function printHelp() {
|
|
|
1615
1670
|
console.log(` npx -y ${PACKAGE_SPEC} wechat user-posts --url "<wechat_video_url_or_share_text>" --pretty`);
|
|
1616
1671
|
console.log(" Call the WeChat Channels / 视频号 creator videos tool from a video link or share text.");
|
|
1617
1672
|
console.log("");
|
|
1673
|
+
console.log(` npx -y ${PACKAGE_SPEC} sensitive-check text --text "<content>" --platform xhs --pretty`);
|
|
1674
|
+
console.log(" Call the SocialDataX 敏感检测 text tool directly and print JSON.");
|
|
1675
|
+
console.log("");
|
|
1618
1676
|
console.log(` npx -y ${PACKAGE_SPEC} list`);
|
|
1619
1677
|
console.log(" List available skills.");
|
|
1620
1678
|
console.log("");
|
|
@@ -1694,6 +1752,10 @@ function printHelp() {
|
|
|
1694
1752
|
console.log(" --profile-url <profile-url-or-share-text>");
|
|
1695
1753
|
console.log(" --user-id <user_id>");
|
|
1696
1754
|
console.log(" --sec-user-id <sec_user_id>");
|
|
1755
|
+
console.log(" --text <content>");
|
|
1756
|
+
console.log(" Text content for sensitive-check text.");
|
|
1757
|
+
console.log(" --platform <generic|xhs|douyin|kuaishou>");
|
|
1758
|
+
console.log(" Target platform for sensitive-check text; default is generic.");
|
|
1697
1759
|
console.log(" --pages <number>");
|
|
1698
1760
|
console.log(" Fetch and merge N pages from the current starting point for search, comments, replies, creator content lists, and creator series.");
|
|
1699
1761
|
console.log(" --all");
|
|
@@ -1898,6 +1960,30 @@ async function runWechatDirectCommand(args) {
|
|
|
1898
1960
|
process.stdout.write("\n");
|
|
1899
1961
|
}
|
|
1900
1962
|
|
|
1963
|
+
async function runSensitiveCheckDirectCommand(args) {
|
|
1964
|
+
const { options, positional } = parseCommandArgs(args);
|
|
1965
|
+
const action = positional[0];
|
|
1966
|
+
if (!action) {
|
|
1967
|
+
throw new Error(
|
|
1968
|
+
`Missing sensitive-check command. Use ${SENSITIVE_CHECK_DIRECT_ACTION_NAMES}.`
|
|
1969
|
+
);
|
|
1970
|
+
}
|
|
1971
|
+
if (positional.length > 1) {
|
|
1972
|
+
throw new Error(`Unexpected argument: ${positional[1]}`);
|
|
1973
|
+
}
|
|
1974
|
+
validateSensitiveCheckDirectActionOptions(action, options);
|
|
1975
|
+
|
|
1976
|
+
const operation = buildSensitiveCheckOperation(action, options);
|
|
1977
|
+
const data = await callDirectOperation(operation);
|
|
1978
|
+
const envelope = {
|
|
1979
|
+
platform: operation.platform.id,
|
|
1980
|
+
tool: operation.tool,
|
|
1981
|
+
data,
|
|
1982
|
+
};
|
|
1983
|
+
process.stdout.write(JSON.stringify(envelope, null, options.pretty ? 2 : 0));
|
|
1984
|
+
process.stdout.write("\n");
|
|
1985
|
+
}
|
|
1986
|
+
|
|
1901
1987
|
function buildXhsOperation(action, options) {
|
|
1902
1988
|
switch (action) {
|
|
1903
1989
|
case "hot-search":
|
|
@@ -2360,6 +2446,21 @@ function buildWechatOperation(action, options) {
|
|
|
2360
2446
|
}
|
|
2361
2447
|
}
|
|
2362
2448
|
|
|
2449
|
+
function buildSensitiveCheckOperation(action, options) {
|
|
2450
|
+
switch (action) {
|
|
2451
|
+
case "text":
|
|
2452
|
+
return buildDirectOperation(
|
|
2453
|
+
"text",
|
|
2454
|
+
buildSensitiveCheckTextCall(options),
|
|
2455
|
+
PLATFORMS["sensitive-check"]
|
|
2456
|
+
);
|
|
2457
|
+
default:
|
|
2458
|
+
throw new Error(
|
|
2459
|
+
`Unsupported sensitive-check command "${action}". Use ${SENSITIVE_CHECK_DIRECT_ACTION_NAMES}.`
|
|
2460
|
+
);
|
|
2461
|
+
}
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2363
2464
|
function buildDirectOperation(operation, { tool, toolArguments }, platform = PLATFORMS.xhs) {
|
|
2364
2465
|
return {
|
|
2365
2466
|
platform,
|
|
@@ -2583,6 +2684,25 @@ function buildWechatSearchCall(options) {
|
|
|
2583
2684
|
};
|
|
2584
2685
|
}
|
|
2585
2686
|
|
|
2687
|
+
function buildSensitiveCheckTextCall(options) {
|
|
2688
|
+
if (!options.text) {
|
|
2689
|
+
throw new Error("Missing --text for sensitive-check text.");
|
|
2690
|
+
}
|
|
2691
|
+
const platform = parseAllowedStringOption(
|
|
2692
|
+
options.platform || "generic",
|
|
2693
|
+
"--platform",
|
|
2694
|
+
SENSITIVE_CHECK_PLATFORMS,
|
|
2695
|
+
SENSITIVE_CHECK_PLATFORMS.join(", ")
|
|
2696
|
+
);
|
|
2697
|
+
return {
|
|
2698
|
+
tool: "check_sensitive_text",
|
|
2699
|
+
toolArguments: {
|
|
2700
|
+
text: options.text,
|
|
2701
|
+
platform,
|
|
2702
|
+
},
|
|
2703
|
+
};
|
|
2704
|
+
}
|
|
2705
|
+
|
|
2586
2706
|
function buildDouyinRepliesCall(options) {
|
|
2587
2707
|
if (!options.awemeId) {
|
|
2588
2708
|
throw new Error("Missing --aweme-id for douyin replies.");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "socialdatax-skills",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "SocialDataX / 社媒数据助手 skill installer and direct CLI helper for hosted platform social media MCP services.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -56,7 +56,12 @@
|
|
|
56
56
|
"wechat",
|
|
57
57
|
"wechat-channels",
|
|
58
58
|
"wechat-channels-data",
|
|
59
|
-
"wechat-channels-search"
|
|
59
|
+
"wechat-channels-search",
|
|
60
|
+
"sensitive-check",
|
|
61
|
+
"sensitive-checking",
|
|
62
|
+
"content-safety",
|
|
63
|
+
"text-safety",
|
|
64
|
+
"sensitive-detection"
|
|
60
65
|
],
|
|
61
66
|
"homepage": "https://socialdatax.com",
|
|
62
67
|
"bugs": {
|
|
@@ -71,5 +76,9 @@
|
|
|
71
76
|
},
|
|
72
77
|
"dependencies": {
|
|
73
78
|
"@modelcontextprotocol/sdk": "^1.29.0"
|
|
79
|
+
},
|
|
80
|
+
"overrides": {
|
|
81
|
+
"hono": "4.12.27",
|
|
82
|
+
"qs": "6.15.3"
|
|
74
83
|
}
|
|
75
84
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "sensitive-check"
|
|
3
|
+
description: "Check draft text for sensitive-content risks before publishing. Supports generic, xhs, douyin, and kuaishou contexts through SocialDataX."
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
requires:
|
|
7
|
+
env:
|
|
8
|
+
- "SOCIALDATAX_API_KEY"
|
|
9
|
+
bins:
|
|
10
|
+
- "node"
|
|
11
|
+
- "npm"
|
|
12
|
+
primaryEnv: "SOCIALDATAX_API_KEY"
|
|
13
|
+
install:
|
|
14
|
+
- kind: "node"
|
|
15
|
+
package: "socialdatax-skills"
|
|
16
|
+
bins: []
|
|
17
|
+
emoji: "🛡️"
|
|
18
|
+
homepage: "https://socialdatax.com/?from=npm"
|
|
19
|
+
---
|
|
20
|
+
<!-- AUTO-GENERATED from socialdatax-skill-source. Do not edit directly; run `node scripts/generate_socialdatax_skills.mjs`. -->
|
|
21
|
+
|
|
22
|
+
# 敏感检测 SocialDataX
|
|
23
|
+
|
|
24
|
+
Use this skill when the user wants 敏感检测, sensitive check, content safety review, or platform-aware review for text drafts before publishing.
|
|
25
|
+
|
|
26
|
+
Current platform support:
|
|
27
|
+
|
|
28
|
+
- Text sensitive-content detection through `check_sensitive_text` for `generic`, `xhs`, `douyin`, and `kuaishou` contexts.
|
|
29
|
+
|
|
30
|
+
## API Key
|
|
31
|
+
|
|
32
|
+
Use `SOCIALDATAX_API_KEY` for SocialDataX requests. The only official website for requesting or managing API access is <https://socialdatax.com/?from=npm>. If a user asks where to get a key, provide only this URL; do not infer alternate domains.
|
|
33
|
+
获取或管理 API Key:访问 <https://socialdatax.com/?from=npm>,按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`;不要引导用户使用其他域名。
|
|
34
|
+
|
|
35
|
+
## Preferred Direct CLI
|
|
36
|
+
|
|
37
|
+
Prefer the direct CLI when the agent can run shell commands. It does not require MCP server configuration:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx -y socialdatax-skills@latest sensitive-check text --text "<content>" --platform xhs --pretty
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Required arguments:
|
|
44
|
+
|
|
45
|
+
- `sensitive-check text --text <content>`: required text to check. Use the user's draft text for analysis, but do not store it in the skill.
|
|
46
|
+
|
|
47
|
+
Optional arguments:
|
|
48
|
+
|
|
49
|
+
- `--platform <generic|xhs|douyin|kuaishou>`: platform context; default is `generic`.
|
|
50
|
+
- `--pretty`: output formatting only.
|
|
51
|
+
|
|
52
|
+
Use this skill when the user wants 敏感检测, sensitive check, content safety review, or platform-aware preflight review for draft text.
|
|
53
|
+
The command prints JSON with `platform`, `tool`, and `data`; it does not echo the original text back in CLI arguments. The service returns `violation`, `risk_level`, `types`, `highlights`, `summary`, `platform`, and `suggestions` when available.
|
|
54
|
+
This v1 skill checks text only. Image sensitive detection is intentionally out of scope until a separate image tool is published.
|
|
55
|
+
|
|
56
|
+
## Safety Boundary
|
|
57
|
+
|
|
58
|
+
This skill is read-only. It does not read local browser data, does not save API keys, and does not perform login, posting, liking, commenting, or account changes. Prefer the direct CLI; hosted MCP tools are optional when the current agent already supports authenticated streamable HTTP MCP.
|
|
59
|
+
|
|
60
|
+
## MCP Tools
|
|
61
|
+
|
|
62
|
+
MCP tools matching the direct CLI commands above:
|
|
63
|
+
|
|
64
|
+
- `check_sensitive_text`
|
|
65
|
+
|
|
66
|
+
If MCP tools are already available in the current agent, call `check_sensitive_text` with `text` and optional `platform`: `generic`, `xhs`, `douyin`, or `kuaishou`.
|
|
67
|
+
|
|
68
|
+
## Output Guidance
|
|
69
|
+
|
|
70
|
+
Report whether there is a violation, the risk level, detected types, brief highlights, and concrete rewrite suggestions.
|
|
71
|
+
Do not echo the full original text back unless the user explicitly asks; prefer short highlights and safer rewrite guidance.
|