可信 — 风险评分 5/100
上次扫描:1 天前 重新扫描
5 /100
linguistic-landscape-analyzer
语言景观分析 MCP 工具 - 小红书情感分析与关键词提取,支持语言学/社会学研究
Clean MCP skill implementing local-only sentiment analysis and keyword extraction with proper documentation and security practices.
技能名称linguistic-landscape-analyzer
分析耗时26.8s
引擎pi
可以安装
No action required. The skill is safe to use as documented.

安全发现 1 项

严重性 安全发现 位置
低危
Dependencies use caret version ranges 供应链
package.json dependencies use ^ prefix allowing minor version updates, which could introduce breaking changes
"@modelcontextprotocol/sdk": "^1.27.1"
→ Consider pinning exact versions (remove ^) for reproducible builds
package.json:20
资源类型声明权限推断权限状态证据
文件系统 READ READ ✓ 一致 server.js:47-52 - reads CSV files from data/ directory only
文件系统 WRITE WRITE ✓ 一致 server.js:260-263 - writes reports to skill directory only
网络访问 NONE NONE No network requests in server.js
命令执行 NONE NONE No shell execution in main code
环境变量 NONE NONE No environment variable access
技能调用 ADMIN ADMIN ✓ 一致 Standard MCP tool invocation
96 项发现
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/@hono/node-server/-/node-server-1.19.11.tgz
package-lock.json:20
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/@modelcontextprotocol/sdk/-/sdk-1.27.1.tgz
package-lock.json:32
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz
package-lock.json:72
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ajv/-/ajv-8.18.0.tgz
package-lock.json:85
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ajv-formats/-/ajv-formats-3.0.1.tgz
package-lock.json:101
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/body-parser/-/body-parser-2.2.2.tgz
package-lock.json:118
🔗
中危 外部 URL 外部 URL
https://opencollective.com/express
package-lock.json:137
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz
package-lock.json:142
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz
package-lock.json:151
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz
package-lock.json:164
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/content-disposition/-/content-disposition-1.0.1.tgz
package-lock.json:180
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz
package-lock.json:193
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/cookie/-/cookie-0.7.2.tgz
package-lock.json:202
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.2.2.tgz
package-lock.json:211
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/cors/-/cors-2.8.6.tgz
package-lock.json:220
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz
package-lock.json:237
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz
package-lock.json:251
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz
package-lock.json:268
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz
package-lock.json:277
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz
package-lock.json:291
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz
package-lock.json:297
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz
package-lock.json:306
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz
package-lock.json:315
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz
package-lock.json:324
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz
package-lock.json:336
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz
package-lock.json:342
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/eventsource/-/eventsource-3.0.7.tgz
package-lock.json:351
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/eventsource-parser/-/eventsource-parser-3.0.6.tgz
package-lock.json:363
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/express/-/express-5.2.1.tgz
package-lock.json:372
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/express-rate-limit/-/express-rate-limit-8.3.1.tgz
package-lock.json:415
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz
package-lock.json:433
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/fast-uri/-/fast-uri-3.1.0.tgz
package-lock.json:439
🔗
中危 外部 URL 外部 URL
https://opencollective.com/fastify
package-lock.json:448
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/finalhandler/-/finalhandler-2.1.1.tgz
package-lock.json:455
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz
package-lock.json:476
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/fresh/-/fresh-2.0.0.tgz
package-lock.json:485
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz
package-lock.json:494
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz
package-lock.json:503
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz
package-lock.json:527
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz
package-lock.json:540
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz
package-lock.json:552
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz
package-lock.json:564
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/hono/-/hono-4.12.8.tgz
package-lock.json:576
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/http-errors/-/http-errors-2.0.1.tgz
package-lock.json:585
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.2.tgz
package-lock.json:605
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz
package-lock.json:621
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ip-address/-/ip-address-10.1.0.tgz
package-lock.json:627
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz
package-lock.json:636
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/is-promise/-/is-promise-4.0.0.tgz
package-lock.json:645
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz
package-lock.json:651
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/jose/-/jose-6.2.1.tgz
package-lock.json:657
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz
package-lock.json:666
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-8.0.2.tgz
package-lock.json:672
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/keyword-extractor/-/keyword-extractor-0.0.28.tgz
package-lock.json:678
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz
package-lock.json:686
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/media-typer/-/media-typer-1.1.0.tgz
package-lock.json:695
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz
package-lock.json:704
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz
package-lock.json:716
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/mime-types/-/mime-types-3.0.2.tgz
package-lock.json:725
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz
package-lock.json:741
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/negotiator/-/negotiator-1.0.0.tgz
package-lock.json:747
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz
package-lock.json:756
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz
package-lock.json:765
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz
package-lock.json:777
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/once/-/once-1.4.0.tgz
package-lock.json:789
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz
package-lock.json:798
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz
package-lock.json:807
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz
package-lock.json:816
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/pkce-challenge/-/pkce-challenge-5.0.1.tgz
package-lock.json:826
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz
package-lock.json:835
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/qs/-/qs-6.15.0.tgz
package-lock.json:848
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz
package-lock.json:863
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/raw-body/-/raw-body-3.0.2.tgz
package-lock.json:872
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz
package-lock.json:887
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/router/-/router-2.2.0.tgz
package-lock.json:896
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz
package-lock.json:912
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/send/-/send-1.2.1.tgz
package-lock.json:918
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/sentiment/-/sentiment-5.0.2.tgz
package-lock.json:944
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/serve-static/-/serve-static-2.2.1.tgz
package-lock.json:953
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz
package-lock.json:972
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz
package-lock.json:978
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz
package-lock.json:990
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz
package-lock.json:999
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz
package-lock.json:1018
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz
package-lock.json:1034
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz
package-lock.json:1052
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/statuses/-/statuses-2.0.2.tgz
package-lock.json:1071
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz
package-lock.json:1080
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/type-is/-/type-is-2.0.1.tgz
package-lock.json:1089
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz
package-lock.json:1103
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz
package-lock.json:1112
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/which/-/which-2.0.2.tgz
package-lock.json:1121
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz
package-lock.json:1136
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/zod/-/zod-4.3.6.tgz
package-lock.json:1142
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz
package-lock.json:1151
🔗
中危 外部 URL 外部 URL
https://clawhub.ai/skills/linguistic-landscape-analyzer
交付报告.md:32

目录结构

9 文件 · 86.6 KB · 2944 行
Markdown 4f · 1225L JSON 2f · 1186L JavaScript 2f · 524L CSV 1f · 9L
├─ 📁 data
│ └─ 📄 sample.csv CSV 9L · 883 B
├─ 📁 src
│ ├─ 📁 test
│ │ └─ 📜 full-test.js JavaScript 134L · 3.1 KB
│ └─ 📜 server.js JavaScript 390L · 11.6 KB
├─ 📝 01-技术方案.md Markdown 518L · 11.9 KB
├─ 📋 package-lock.json JSON 1159L · 40.4 KB
├─ 📋 package.json JSON 27L · 673 B
├─ 📝 SKILL.md Markdown 234L · 6.9 KB
├─ 📝 交付报告.md Markdown 250L · 5.8 KB
└─ 📝 第一阶段报告.md Markdown 223L · 5.4 KB

依赖分析 4 项

包名版本来源已知漏洞备注
@modelcontextprotocol/sdk ^1.27.1 npm Official MCP SDK
sentiment ^5.0.2 npm Standard sentiment analysis library
keyword-extractor ^0.0.28 npm Keyword extraction library
zod ^4.3.6 npm Schema validation library

安全亮点

✓ Official MCP SDK used for protocol implementation
✓ All file operations restricted to skill directory (reports/ subfolder)
✓ No network requests or external data exfiltration
✓ No credential or sensitive path access
✓ No obfuscation or base64-encoded payloads
✓ Zod schema validation for all tool inputs
✓ Clear documentation matching implementation
✓ Legitimate sentiment analysis and keyword extraction functionality
✓ Proper error handling with try-catch blocks