--- name: alibabacloud-mcp-core-script-generate description: > Generate Alibaba Cloud MCP Core RunScript-compatible Python scripts from natural-language cloud operation requests. Use when the user explicitly asks for RunScript scripts, MCP Core scripts, or sandbox-compatible cloud automation code. For standard SDK Python code with imports and credentials, use `alibabacloud-sdk-usage` instead. license: Apache-2.0 metadata: domain: aliyun-runscript owner: sdk-team contact: sdk-team@alibabacloud.com triggers: > RunScript, RunScript脚本, MCP脚本, 沙箱脚本, generate RunScript, MCP Core script, script recommend allowed-tools: "mcp__plugin_alibabacloud-core_alibabacloud-core__AlibabaCloud___SearchApis,mcp__plugin_alibabacloud-core_alibabacloud-core__AlibabaCloud___GetApiDefinition,mcp__plugin_alibabacloud-core_alibabacloud-core__AlibabaCloud___ListApis,mcp__plugin_alibabacloud-core_alibabacloud-core__AlibabaCloud___ListProducts" --- # Alibaba Cloud Script Generator Turn a natural-language Alibaba Cloud request into one RunScript-compatible Python script. The script must use `await call_cli(...)`, assign the final value to `result`, and pass `check_sandbox.py` validation before output. Do not execute the script unless the user asks. ## Scope Check Before You Start - **RunScript sandbox scripts** (this skill): generates `call_cli()`-based Python for the RunScript sandbox — no SDK imports, no credentials, no local execution. - **SDK project code** → `alibabacloud-sdk-usage`: generates typed/generic SDK code with imports, credential providers, and dependency management for user projects. - **Operational patterns** (batch ops, audits, rotations) → `alibabacloud-find-skills` first. ## Workflow 1. Split the request into atomic cloud operations. For each operation, you must call at least one of the following methods to discover API parameters before writing any code: **Method A — MCP tools** (preferred): call `AlibabaCloud___SearchApis` with a natural language description, then `AlibabaCloud___GetApiDefinition` with the confirmed product, action, and version. Batch search calls in one parallel round. **Method B — HTTP metadata** (when MCP tools return errors): The endpoint `https://next.api.aliyun.com/meta/v1/products/{product}/versions/{version}/api-docs.json` contains all API definitions for a product. If `WebFetch` cannot extract the target API (response too large), download the full JSON with `curl` and extract the target API's `parameters` array using `python3 -c "import json,sys; ..."` or `grep`. You must actually execute one of these methods — reading about them is not sufficient. Only if your tool call returns an error may you fall back to best-known parameter names, adding: `# WARNING: API parameters not verified — confirm before use`. 1. Generate one Python script body following the Sandbox Contract and Script Patterns below. Only whitelisted modules may be imported. When multiple tool calls are needed, batch them in parallel. Never repeat the same tool call with the same arguments. 1. Write to `/tmp/aliyun-runscript.py` and validate with the local sandbox checker (`/scripts/check_sandbox.py`): ```bash cat > /tmp/aliyun-runscript.py <<'PYEOF'