Install
openclaw skills install odps-sqlUse this skill when the user wants to query, analyze, or explore data in Alibaba Cloud ODPS (MaxCompute / 阿里云大数据计算服务). This skill executes SQL queries, lists...
openclaw skills install odps-sqlCopy the credential template and fill in your values:
cd mcp-odps/
cp config.example.env .env
# Edit .env with your Alibaba Cloud credentials
Activate your Python environment and install dependency:
# conda users:
conda activate <your-env>
# venv users:
source .venv/bin/activate
pip install pyodps
Activate your Python environment first, then run all commands from the project root with:
SCRIPT=mcp-odps/scripts/odps_helper.py
python $SCRIPT --list-tables
Filter by name:
python $SCRIPT --list-tables --pattern <keyword>
python $SCRIPT --describe <table_name>
python $SCRIPT --query "<SQL statement>" [--limit <n>]
Default limit is 100 rows.
Follow this pattern when the user asks about ODPS data:
--list-tables --pattern <keyword> to find it.--describe <table> to understand columns, types, and partition structure.--query. Always add a partition filter (WHERE dt = '...') for partitioned tables to avoid full scans.| Feature | Standard SQL | ODPS SQL |
|---|---|---|
| String concat | a || b | CONCAT(a, b) |
| Current time | NOW() | GETDATE() |
| Null coalesce | IFNULL(x,y) | NVL(x, y) |
| Regex match | REGEXP | RLIKE |
| Date literal | '2024-01-01' | TO_DATE('2024-01-01','yyyy-mm-dd') |
Partition filter is required for partitioned tables (partition column is usually dt):
SELECT * FROM table_name WHERE dt = '2024-01-01' LIMIT 100
See mcp-odps/references/odps_sql_guide.md for a full SQL reference.
pyodps not found → Run install command in Setup step abovemcp-odps/.env exists and all four fields are filled in--list-tables --pattern to find the correct name