Undeclared Tool Scope
- Category
- MCP Least Privilege
- Confidence
- 70% confidence
- Finding
Without declared permissions the skill's intent is opaque and cannot be validated.
- Content
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed Kuaishou public-data research tool that uses a third-party API token, sends requested search/profile/video inputs to that API, and saves returned results locally.
Install only if you are comfortable using GUAIKEI's third-party API with a GUAIKEI_API_TOKEN. The commands send your query or Kuaishou URL/ID and parameters to www.guaikei.com, then save returned public video/profile/comment data under logs; keep those logs out of source control or shared folders if the data should not be retained or redistributed.
Without declared permissions the skill's intent is opaque and cannot be validated.
The package.json description states the skill is for comparing brand performance, discussion trends, historical analysis, competitor analysis, and strategy optimization. This materially differs from the provided skill manifest, which scopes the skill to discovering and screening Kuaishou creators via keyword video search, creator work retrieval, and video comment analysis.
The declared scripts expose an additional post CLI capability that is not disclosed in the manifest's stated three abilities. Undocumented executable entry points increase risk because they may provide hidden functionality, expand the attack surface, or perform actions users and reviewers did not consent to evaluate.
The README states that all task results are automatically saved to the logs/ directory, but it does not clearly warn that scraped public account, video, and comment data will be persisted locally. This creates a real data-handling risk because users may unintentionally store potentially sensitive or regulated third-party data on disk, where it can be retained longer than expected, shared, synced, or exposed through backups and source control.
The calls to comment.createCommentTask and comment.getCommentTask transmit the normalized URL and limit to external API logic, but the script does not explicitly warn the user that their input will be sent over the network. While network use may be functionally expected, there is no visible disclosure in this file about the transmission of user-provided data.
The script persists the full output, including requested URL and retrieved comments, via log.taskWrite(...). Although the file path implies logging, there is no visible user-facing warning, confirmation, or inline disclosure near execution that the command will create a local artifact containing fetched data.
The code sends the provided profile URL, sort order, and limit to external service methods createPostTask and getPostTask. While network activity is central to the tool's purpose, this file does not clearly disclose that the supplied identifier/URL will be transmitted to a remote API, which is a privacy-relevant operation.
The script persists the full task output to disk via log.taskWrite, creating a file named from the timestamp and account identifier. Although the script logs progress and prints results, it does not explicitly disclose beforehand that it will also save the returned data locally, which may affect user data handling expectations.
Multiple error strings are presented only in Chinese, including validation and network/authentication errors, which imposes a specific language on users without opt-in. That is a natural-language locale policy concern because the file provides no mechanism to choose language or document a justified region-specific constraint.
This code sends JSON request bodies and a TOKEN header to a remote host via HTTPS, but there is no confirmation prompt, user-facing log, or warning comment/docstring indicating that user or system data may be transmitted off-box. For a generic request utility, this is a safety-relevant external data transfer that lacks visible disclosure in the file.
This JavaScript file contains multiple user-facing strings in Chinese, such as validation errors and examples, but provides no indication that the skill is intended only for Chinese-speaking users or that language selection is configurable. Per the policy, forcing a specific language without user opt-in is a natural-language policy concern.
The heading is entirely in Chinese and describes the skill in a way that implies a fixed language/locale presentation. Under the policy, forcing a specific language without user opt-in or a documented regional justification is a natural-language policy concern.
This markdown file contains user-facing instructions exclusively in Chinese and does not indicate any optional language support or user opt-in for locale. Under the policy rule for natural-language violations, forcing a specific language without choice can be a locale-policy issue.
The script reads process.env.GUAIKEI_API_TOKEN to authenticate, but this sensitive credential access is not disclosed in help text, prompts, or nearby comments. Under the rule, accessing credentials should have some form of visible warning unless clearly communicated as part of the skill behavior.
This file presents its command descriptions, help text, and runtime messages only in Chinese, which enforces a specific language for users. There is no indication of user opt-in, locale selection, or documentation that this is intentionally limited to a Chinese-only audience.
This code persists the full search output to disk via log.taskWrite(...), which is a file write affecting user/system data. While the script prints progress messages, there is no explicit disclosure here that results will be saved locally, and this file contains no comment or docstring warning about that behavior.
The file’s user-facing text and help/error messaging are written exclusively in Chinese, beginning with the top-level description. For a general-purpose CLI utility, this imposes a specific language/locale without any visible opt-in or documented scope limitation.
Throughout the parser, thrown errors and generated help text are hard-coded in Chinese, with no mechanism for user language selection. This can violate language/locale policy when the skill is intended for broader use and no opt-in or justification is provided.
The code emits all user-facing status and error messages in Chinese, such as validation errors and success/failure notices. This creates a language/locale policy concern because the file provides no user opt-in, alternative locale, or documentation that the skill is intentionally limited to Chinese users.
The thrown error string is hardcoded in Chinese ("重试${maxAttempts}次后失败"). If this skill is used in a broader product context without explicit locale selection, it forces a specific language on users and may conflict with organizational language/locale policies.
The file contains user-visible warning and info strings only in Chinese ("警告: 你的 GUAIKEI_API_TOKEN 未正确配置" and "已使用配置的私有TOKEN"). This can violate the language/locale policy because it forces a specific language without user opt-in or any indication that the skill is intentionally region-specific.
The banner text is fixed in Chinese ("快手运营全链路数据工具") with no visible mechanism for language selection or localization. This can violate language/locale policy expectations when a skill is used in multilingual environments without explicit user opt-in.
No suspicious patterns detected.