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 is a simple local meal-planning skill with some accuracy and language limitations, but no evidence of hidden or harmful behavior.
Install only if a Chinese-oriented, command-line weekly meal planner is acceptable. Treat the costs and shopping list as rough estimates, and run it in a directory where creating or overwriting menu_plan.json is fine.
Without declared permissions the skill's intent is opaque and cannot be validated.
All example user inputs and one expected-output scenario are written in Chinese, and the skill does not state that other languages are supported or give users a language/locale option. This can amount to a language policy issue because the skill appears to assume a specific language by default without opt-in or justification.
The manifest says the skill takes people count, budget, and taste preference to produce a weekly meal plan, implying the budget should influence the generated menu. However, generate_menu uses only taste and people to assemble a fixed 7-day sequence and merely calculates cost afterward, so budget does not affect meal selection at all.
This Python file contains user-facing natural-language strings entirely in Chinese, including the main title, labels, warnings, and save confirmation. Under the policy, forcing a specific language without user opt-in or a documented justification is a natural-language policy violation.
The title and usage description are written in Chinese, which imposes a language constraint on users. The file does not indicate that the skill is region-specific or provide an opt-in or alternative language, so this appears to violate the language-choice policy.
The docstring says generate_shopping_list creates a shopping list from the menu, and the manifest also promises a shopping list. In practice, the function returns dish names with counts and prices, which is not an actual ingredient-level shopping list and contradicts the documented intent of the function.
No suspicious patterns detected.