ODPS MCP Server
Read-only access to Alibaba Cloud MaxCompute tables, providing tools to list allowed tables, describe table schemas, preview rows, and run SELECT queries against allowlisted tables.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ODPS MCP ServerDescribe the sales_orders table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ODPS MCP Server
Read-only MCP server for Alibaba Cloud MaxCompute.
ASGI Mode
Use create_app() for the HTTP server. The app exposes GET /health, mounts the standard MCP Streamable HTTP app at /mcp, and keeps / as a compatibility path for older callers.
Example:
uvicorn odps_mcp_server.server:create_app --factoryEndpoints:
Standard MCP endpoint:
http://<host>:<port>/mcpCompatibility MCP endpoint:
http://<host>:<port>/Health check:
http://<host>:<port>/health
This service exposes a remote MCP endpoint over streamable-http so an internal agent can query allowlisted MaxCompute tables safely.
Environment
Set these environment variables before running the server:
ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRETODPS_ENDPOINTODPS_PROJECTODPS_ALLOWLIST_PATH
ODPS_ALLOWLIST_PATH should point to your policy file. Start with config/allowlist.example.yaml and replace the sample project and table names with your approved allowlist.
If you want a local one-click startup flow, copy .env.local.example to .env.local and fill in your ODPS credentials. The file is ignored by git.
Local Setup
Install dependencies in a virtual environment:
python -m venv .venv
.venv\Scripts\activate
pip install -e .If you prefer uv, the equivalent flow is:
uv venv
uv pip install -e .Policy File
The allowlist file controls which MaxCompute projects and tables the MCP server can access. Example:
projects:
analytics:
tables:
sales_orders:
allowed_columns:
- order_id
- order_date
default_limit: 100
max_limit: 200Run The MCP Server
Run the server with:
python -m odps_mcp_server.serverThe server is configured to start the MCP transport in streamable-http mode.
For local development on Windows, you can also use:
.\scripts\start-local-mcp.ps1If you prefer a one-click startup flow backed by .env.local, use:
.\scripts\start-local-mcp-oneclick.ps1Internal Agent Integration
Your internal agent should connect to the standard MCP endpoint http://<host>:<port>/mcp. The root path / remains available only for backwards compatibility. The service exposes these tools:
list_allowed_tablesdescribe_tablepreview_tablerun_select_sql
Recommended agent flow:
List allowed tables.
Read the schema for a chosen table.
Preview rows if needed.
Run a filtered
SELECTquery against the allowlisted table.
Manual Smoke Test
Use scripts/manual_smoke_test.py to validate connectivity and policy behavior against a non-production MaxCompute project.
Examples:
python scripts/manual_smoke_test.py list-tables --project analytics
python scripts/manual_smoke_test.py describe-table --project analytics --table sales_orders
python scripts/manual_smoke_test.py run-sql --project analytics --sql "SELECT order_id FROM analytics.sales_orders LIMIT 10"Do not point the smoke test at a production-only project until the allowlist and row limits are reviewed.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/XiangXi011/MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server