全部產品
Search
文件中心

MaxCompute:MaxCompute MCP 服務使用文檔

更新時間:Sep 02, 2026

MaxCompute MCP Server(MCMCP)基於 MCP(Model Context Protocol)協議,將MaxCompute 的中繼資料、計算和表管理能力封裝為 Agent 可以理解和調用的結構化工具。通過MCMCP,AI Agent可以直接完成大規模資料分析、多模資料加工處理和智能化營運。
本文介紹託管版 Remote MCP Server (推薦)和本地 Local MCP Server。

重要

功能概述

Agent通過標準MCP協議直接調用MCMCP提供的結構化工具,無需額外的SDK或驅動。MCMCP覆蓋從中繼資料瀏覽、SQL分析到表管理的完整資料操作鏈結路。

核心能力

  • Catalog中繼資料瀏覽與搜尋:按專案、Schema、表、欄位、分區層級瀏覽,支援自然語言搜尋。

  • 表管理與中繼資料維護:建立表(支援生命週期、主鍵、部分列更新等選項)、插入少量資料、更新表注釋/標籤/列描述。

  • 身份與許可權檢查:查看當前帳號身份,並結合 MaxCompute 授權資訊排查訪問問題。

  • 認證與授權

    • Remote MCP 使用阿里雲 OAuth 授權;

    • Local MCP 支援 AK/SK、STS、Credentials URI、ECS RAM Role 以及阿里雲預設憑證鏈。

  • 服務端用戶端註冊(Client ID Metadata Documents,CIMD)

    已啟用該能力的環境支援服務端或自託管用戶端以 HTTPS 中繼資料文檔 URL 作為 client_id,跳過動態用戶端註冊(Dynamic Client Registration,DCR),但仍需在登入後的授權確認頁明確同意。詳見佈建服務端用戶端(Client ID Metadata Documents)

  • SQL分析與執行

    支援語句校正、掃描資料量和計算單元(Compute Unit,CU)用量預估、唯讀或寫入 SQL 執行、執行個體狀態查詢及結果讀取。寫入 SQL 和中繼資料變更需要使用者確認。

  • 智能分析

    根據自然語言產生唯讀 SQL 草稿、診斷作業問題、分析計算配額(Quota)的使用方式,並在結果中說明證據範圍和處理建議。

  • 表中繼資料分析

    檢查表結構和分區中繼資料,不掃描表資料。

  • SemanticSpec 管理

    建立和維護用於描述資料語義的 SemanticSpec 草稿、查看發行版本,並通過語義發現 DataScan 產生和應用建議。

  • 知識庫搜尋與問答

    Remote MCP 內建 MaxCompute 文檔知識庫,支援關鍵詞搜尋和自然語言問答,返回帶引用的回答。

  • Skill 發現與讀取:Remote MCP 內建 MCP Skill 資源,用戶端可通過 tools/list 發現並讀取 Skill 內容,用於 Information Schema 語義分析、反饋指引等情境。

  • Information Schema 營運與治理分析

    • Remote MCP 已內建 Information Schema 語義包;

    • Local MCP 需要額外安裝對應 Skill。

  • 多語言工具資訊:Remote MCP 在 tools/list 中提供簡體中文、繁體中文和英文的工具標題及簡介,並單獨圖章工具是否依賴模型。

架構概覽

image

MCMCP採用分層架構設計,從上到下分為以下層級:

  • 使用者Agent生態:支援 Claude Code、Codex、Qwen Code、Cursor、Qoder 等 MCP 用戶端接入。

  • MaxCompute Skills集合:Agent 可以結合語義包、常用命令、開發模板和使用限制完成更複雜的任務。

  • MCMCP服務:把 MaxCompute OpenAPI、StorageAPI、CatalogAPI 等能力封裝成 MCP 工具。

  • MaxCompute底層能力:覆蓋 Metadata、Compute Engines 和 Storage 等產品能力。

接入方式

  • Remote MCP Server 是預設推薦路徑。它不需要使用者在本地運行 MCP Server,也不需要在本地MCP 進程裡儲存 AccessKey。

  • Local MCP Server 保留給自託管、stdio、本地開發調試或直接控制憑證的情境。

使用情境

接入方式

說明

MCP 用戶端支援 Streamable HTTP 和瀏覽器 OAuth

直連 Remote MCP

無需安裝本地服務,也無需配置 AccessKey。

需要使用 AccessKey、STS 臨時憑證、憑證 URI、ECS 執行個體 RAM 角色或預設憑證鏈

本地啟動器的 default 模式

優先使用 Remote MCP;Remote MCP 不可用時使用原有本地 SDK 工具。

必須固定使用託管服務,且失敗時不能切換到本地工具

本地啟動器的 remote 模式

固定使用 Remote MCP;Remote MCP 不可用時返回錯誤。

自託管、本地開發調試或必須使用原有 SDK 工具

本地啟動器的 local 模式

安裝 PyPI 包的 local 可選依賴組。

MCP 用戶端支援瀏覽器 OAuth 時,建議直接連接 Remote MCP。使用 AccessKey 或 STS 臨時憑證時,建議安裝本地啟動器並保留預設的 default 模式。

使用瀏覽器 OAuth 直連 Remote MCP

Remote MCP 使用 Streamable HTTP(基於 HTTP 的 MCP 傳輸方式)提供服務。直連用戶端需要支援 Streamable HTTP 和瀏覽器 OAuth。

選擇服務地址

根據用戶端所在網路和阿里雲帳號網站選擇服務地址。同一個用戶端配置應保持 MCP 服務地址不變,請勿混用公網和專用網路(Virtual Private Cloud,VPC)服務地址。

公網Endpoint

  • 不需要固定服務地區時,選擇與帳號網站匹配的預設入口:

    帳號網站

    MCP 服務地址

    中國站

    https://mcp.maxcompute.aliyun.com/mcp

    國際站

    https://mcp-intl.maxcompute.aliyun.com/mcp

  • 需要固定服務地區時,按帳號網站和地區 ID 產生服務地址:

    帳號網站

    地區固定公網 MCP 服務地址

    中國站

    https://mcp.<regionId>.maxcompute.aliyun.com/mcp

    國際站

    https://mcp-intl.<regionId>.maxcompute.aliyun.com/mcp

網域名稱規則僅用於產生服務地址,不能用於判斷服務是否已在對應地區開通。請選擇已開通服務的地區。訪問其他地區的專案時,請在對話或工具參數中明確提供目標地區 ID。

帳號網站選擇僅適用於瀏覽器 OAuth 直連。本地啟動器不需要配置帳號網站,只需配置地區和網路類型。

VPC Endpoint

在已開通 VPC 服務的地區,按帳號網站產生服務地址:

帳號網站

地區固定 VPC MCP 服務地址

中國站

https://mcp.<regionId>-vpc.maxcompute.aliyun-inc.com/mcp

國際站

https://mcp-intl.<regionId>-vpc.maxcompute.aliyun-inc.com/mcp

無論選擇公網還是 VPC Endpoint,未在對話或工具參數中說明地區時,服務預設按當前已連線的服務地區處理。如當前串連 cn-hangzhou Endpoint 時,預設地區為 cn-hangzhou;串連 cn-hongkong Endpoint 時,預設地區為 cn-hongkong

前提條件

  • 可訪問上述入口網域名稱的網路環境。

  • 支援 MCP Streamable HTTP 和瀏覽器 OAuth 授權的 MCP Client。

  • 具有 MaxCompute 存取權限的阿里雲帳號。

使用限制

  • 許可權範圍:可訪問的 project、schema、table 和 instance 由 MaxCompute / RAM 許可權決定。

  • 寫操作確認:寫操作須在用戶端側獲得使用者明確確認,網關不提供互動式二次確認

用戶端配置

不同 MCP 用戶端使用的配置欄位可能不同。請將 MCP 服務地址配置為所選入口。下面的樣本使用不帶地區的中國站公網服務地址。

  • 需要固定地區時,請從公網Endpoint表格中選擇與服務地區和帳號網站匹配的地址。

  • 如果用戶端運行在 VPC 環境,請使用VPC Endpoint小節中的 /mcp地址。

通用配置形態如下。

{
  "mcpServers": {
    "maxcompute-mcp": {
      "type": "streamable-http",
      "url": "https://mcp.cn-hangzhou.maxcompute.aliyun.com/mcp"
    }
  }
}

如果用戶端使用endpointserver_urltransport等欄位名,按用戶端文檔填寫,URL 仍使用上表中的服務地址/mcp 地址。

Claude Code

推薦使用命令列添加 HTTP MCP server:

claude mcp add --transport http --scope user maxcompute-mcp \
  https://mcp.cn-hangzhou.maxcompute.aliyun.com/mcp

添加後可以查看串連狀態:

claude mcp list
claude mcp login maxcompute-mcp

也可以在 Claude Code 會話內輸入 /mcp 查看並觸發登入。若只希望在當前專案使用,可以把 --scope user 改成 --scope local 或按團隊約定使用 project scope。

Codex

推薦使用命令列添加 Streamable HTTP MCP server:

codex mcp add maxcompute-mcp \
  --url https://mcp.cn-hangzhou.maxcompute.aliyun.com/mcp

添加後查看服務列表並發起登入:

codex mcp list
codex mcp login maxcompute-mcp

如果需要手工配置,在 ~/.codex/config.toml 中加入:

[mcp_servers."maxcompute-mcp"]
url = "https://mcp.cn-hangzhou.maxcompute.aliyun.com/mcp"

Qwen Code

推薦使用命令列添加 HTTP MCP server:

qwen mcp add --transport http --scope user maxcompute-mcp \
  https://mcp.cn-hangzhou.maxcompute.aliyun.com/mcp

如果當前用戶端發行版使用了不同命令名,請把上面的 qwen 替換成實際命令名。添加後動 Qwen Code,並在會話內輸入 /mcp 查看串連狀態和可用工具。也支援通過在 ~/.qwen/settings.json 中手工加入:

{
  "mcpServers": {
    "maxcompute-mcp": {
      "httpUrl": "https://mcp.cn-hangzhou.maxcompute.aliyun.com/mcp"
    }
  }
}

如果檔案裡已經有其他配置,只需要合并 mcpServers 這一段,不要覆蓋已有設定。
除非用戶端或企業環境有其他需求,否則不需要手工配置 Authorization header;首次串連會通過 OAuth 流程完成登入。

首次串連和 OAuth 授權

首次串連時,MCP Client 會自動發起 OAuth 授權流程,並在瀏覽器中開啟阿里雲授權頁面。

授權流程

  1. 首次串連時完成第三方應用授權

    • 授權範圍:這裡的授權是maxcompute-mcp OAuth 應用,不是給 MaxCompute 資料授權。

    • 授權帳號:必須由主帳號,或具備 AliyunRAMFullAccess 許可權的 RAM 管理員完成。管理員權限只用於完成第三方應用授權,不應作為日常訪問 MaxCompute 資料的運行身份。後續每個登入身份能訪問哪些 project、schema、table 和 instance,仍由其自身的 MaxCompute / RAM 許可權決定。

    • 應用在該主帳號下完成一次授權後,該帳號下的其他 RAM 使用者可以分別登入並完成自己的 OAuth 認證,不需要每個 RAM 使用者都擁有 AliyunRAMFullAccess

  2. 在 MCP Client 中添加 MaxCompute MCP Server 並發起串連。第一次串連 /mcp,或第一次調用 tools/list / tool。

  3. 用戶端檢測到登入要求,自動開啟瀏覽器跳轉至阿里雲 OAuth 頁面。

  4. 由使用者確認頁面上的帳號和授權資訊無誤並點擊同意或授權。

  5. 瀏覽器完成回調,用戶端儲存令牌並自動重連 MCP 服務。同一會話內通常無需再次授權。

注意事項

  • 驗證頁面來源:OAuth 頁面應來自阿里雲官方網域名稱,若網域名稱、帳號或授權資訊異常,請勿繼續。

  • 使用正確帳號:用有權訪問目標 MaxCompute 資料的阿里雲帳號完成授權,可訪問的 project和表與該帳號綁定,切換帳號後結果可能不同。

  • 保護敏感資訊:不要將 access token、refresh token、授權碼或回調 URL 中的參數泄露給他人。

  • 如果授權頁提示“調用未被授權”,並說明當前授權需要具有 AliyunRAMFullAccess 許可權的管理員執行,表示當前登入的 RAM 使用者沒有完成主帳號範圍內第三方應用授權的許可權。請讓主帳號或具備該許可權的 RAM 管理員在該主帳號下重新發起 MaxCompute MCP 登入並點擊“授權”。如果頁面仍保留此前失敗的授權狀態,請由管理員在存取控制產品控制台的 OAuth 應用管理中刪除該應用,再從 MCP Client 重新發起登入和授權。不建議為了繞過該提示,給日常使用帳號長期授予 AliyunRAMFullAccess

企業共用系統的帳號選擇

為企業內部 Agent 或其他多人共用系統接入 Remote MCP 時,應先確定是否需要保留終端使用者身份:

  • 如果需要按員工許可權隔離資料並保留使用者級審計,應讓每個使用者分別完成 OAuth 登入。
    MCP 調用會使用各自的阿里雲身份,能訪問的資料由各自的 MaxCompute / RAM 許可權決定。

  • 如果系統只能使用一個共用登入身份,可以建立專用 RAM 使用者,並只授予業務所需的最小 MaxCompute 許可權。此時所有請求都會共用該身份的許可權和審計主體,系統自身還需要負責使用者鑒權、會話隔離和Action Trail。

  • 不建議把主帳號或具備 AliyunRAMFullAccess 的管理員帳號作為 LLM、企業內部 Agent 或共用MCP Client 的長期運行身份。首次應用授權和日常資料訪問應使用不同許可權邊界。

佈建服務端用戶端(Client ID Metadata Documents)

企業內部 Agent 平台、Web 服務或其他服務端 MCP 用戶端通常沒有瀏覽器外的本地回調能力,也不適合為每個部署執行個體做 DCR 動態註冊。對已啟用 Client ID Metadata Documents(CIMD)能力的環境,這類用戶端可以把一個 HTTPS 中繼資料文檔 URL 直接作為 client_id 使用:

  1. 在用戶端可穩定訪問的公網 HTTPS 地址託管用戶端中繼資料文檔。文檔的client_id欄位必須與該 URL 完全一致,redirect_uris 必須列全實際使用的回調地址:

    {
      "client_id": "https://client.example.com/oauth/client.json",
      "client_name": "樣本企業 Agent",
      "redirect_uris": ["https://client.example.com/oauth/callback"]
    }
  2. 在 MCP 用戶端的 OAuth 配置中把文檔 URL 填為 client_id(欄位名以用戶端說明為準)。

    • 支援 CIMD 的用戶端會跳過 DCR,直接以文檔 URL 發起授權;

    • 不支援的用戶端會按原有註冊方式工作。

  3. 使用者發起串連時仍在瀏覽器完成阿里雲 OAuth 登入;登入後服務展示授權確認頁,列明文檔聲明的應用程式名稱、client_id URL 和回調網域名稱,使用者明確單擊同意後才會簽發授權碼。

  4. 每次授權時服務都會重新校正文檔:文檔必須經 HTTPS 可達、client_id 必須回應要求URL、回調地址必須與 redirect_uris 精確匹配。任一條件不滿足時授權被拒絕。

說明

約束與說明:

  • 該能力按環境啟用。用戶端可通過/.well-known/oauth-authorization-server 響應中的client_id_metadata_document_supported 欄位判斷當前入口是否支援;欄位不存在時自動回退 DCR 或手工註冊。

  • 僅支援公用用戶端:文檔不得包含 client_secret 等機密配置,用戶端必須使用 PKCE。

  • 在開放參與模式下,授權確認頁是信任邊界:不要代表他人單擊同意,也不要把確認頁、回調連結轉寄給他人。

  • 中繼資料文檔是公開資訊,不要在文檔中寫入令牌、密鑰、內部網域名稱或內網地址。

驗證串連

授權完成後,建議按以下順序驗證串連和許可權。

在 AI Agent 中依次輸入:

  1. “檢查 MaxCompute MCP 是否串連正常。”

  2. “列出當前身份可見的 MaxCompute 專案,先返回前 10 個。”

  3. “檢查 <project> 下有哪些 Schema 和表。”

如果專案列表為空白或返回許可權錯誤,請檢查當前阿里雲帳號是否具有目標 MaxCompute 專案的許可權。

使用本地啟動器接入

本地啟動器適用於僅支援標準輸入輸出(stdio)的 MCP 用戶端、需要在本機提供 Streamable HTTP 服務的情境,或需要使用 AccessKey、STS 臨時憑證、憑證 URI、ECS 執行個體 RAM 角色和阿里雲預設憑證鏈的情境。

運行模式

模式

行為

適用情境

default

優先使用 Remote MCP;

Remote MCP 不可用時使用原有本地 SDK 工具

大多數 AccessKey 或 STS 接入情境

remote

固定使用 Remote MCP;

不可用時返回錯誤

不允許切換到本地工具的情境

local

固定使用原有本地 SDK 工具

自託管和本地開發調試

三種模式都支援 stdio 和 Streamable HTTP。

可以通過 CLI --mode、環境變數 MAXCOMPUTE_MCP_MODE 或 JSON 頂層欄位 mode 選擇模式;未配置時使用 default

安裝

  • 需要Python 3.10及更高版本。

  • 使用 pipuv 從 Python 軟體包索引(Python Package Index,PyPI)安裝基礎包。

    • 使用 pip 安裝:

      python -m pip install alibabacloud-maxcompute-mcp-server
    • 或使用 uv 安裝到獨立環境:

      uv tool install alibabacloud-maxcompute-mcp-server

    驗證命令列入口:

    alibabacloud-maxcompute-mcp-server --help
  • 需要 local 模式或 default 模式的本地回退能力時,需安裝 local 可選依賴。

    • 使用 pip安裝:

      python -m pip install "alibabacloud-maxcompute-mcp-server[local]"
    • 或使用 uv 安裝到獨立環境:

      uv tool install "alibabacloud-maxcompute-mcp-server[local]"

配置地區、網路和憑證

最簡配置

只需指定地區和網路類型

{
  "maxcompute": {
    "region": "cn-hangzhou",
    "network": "public"
  }
}

network 支援 publicvpcdefaultProject 是可選的預設專案。Remote MCP 接入不需要配置 protocolnamespaceId 或 Remote MCP 地址。

設定檔

將配置儲存到本機受保護的路徑,並通過 --config 或環境變數MAXCOMPUTE_CATALOG_CONFIG 指定。也可以不建立 JSON 檔案,改用環境變數:MAXCOMPUTE_REGIONMAXCOMPUTE_NETWORK 和可選的 MAXCOMPUTE_DEFAULT_PROJECT

憑證配置

憑證應來自 MCP 進程環境或阿里雲預設憑證鏈。靜態 AccessKey 僅建議在開發調試時使用:

export ALIBABA_CLOUD_ACCESS_KEY_ID="<accessKeyId>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<accessKeySecret>"

# 使用 STS 時同時設定
export ALIBABA_CLOUD_SECURITY_TOKEN="<securityToken>"

# 動態憑證服務可以替代上述靜態環境變數
export ALIBABA_CLOUD_CREDENTIALS_URI="<credentialsUri>"

ECS 執行個體 RAM 角色等環境可以直接使用阿里雲預設憑證鏈。

安全提醒

不要將 AccessKey、STS 安全性權杖、憑證 URI 或存取權杖放入 MCP 用戶端的args,也不要將這些憑證提交到代碼倉庫。

相容原有配置

原有的頂層 MaxCompute、頂層 odps、configs 命名配置及純環境變數配置繼續有效。啟動器可從標準 FE 或 CatalogAPI 服務地址中識別地區和網路類型:

  • 公網地址對應同地區公網 MCP

  • VPC 地址對應同地區 VPC MCP。

  • 若配置中的地區或網路類型與實際不一致,啟動器將返回配置錯誤。

地區與網域名稱規則:使用 region 和 network 配置時,啟動器按地區自動產生 FE、CatalogAPI 和 MCP 服務地址。

  • 中國內地地區使用 mcp 網域名稱

  • 中國香港及海外地區使用 mcp-intl 網域名稱,無需手動設定帳號網站。

注意:網域名稱規則不能用於判斷服務是否已在對應地區開通,請選擇已開通服務的地區。

配置MCP用戶端

通過設定檔啟動 default 模式:

{
  "mcpServers": {
    "maxcompute-mcp": {
      "command": "alibabacloud-maxcompute-mcp-server",
      "args": [
        "--config",
        "/path/to/config.json"
      ]
    }
  }
}

如果可執行檔不在 MCP 用戶端的 PATH 中,請將 command 改為實際安裝路徑。

切換運行模式

在 args 中通過 --mode 指定運行模式:

  • --mode remote:強制使用 Remote MCP。

  • --mode local:強制使用本地 SDK 工具,需先安裝 local 可選依賴組。

Streamable HTTP 傳輸

alibabacloud-maxcompute-mcp-server \
  --config /path/to/config.json \
  --mode default \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8000

啟動後將 MCP 用戶端的服務地址設定為 http://127.0.0.1:8000/mcp。啟動器預設監聽本機迴環地址 127.0.0.1,僅當其他可信主機需要訪問本進程時才修改監聽地址。

MCP工具能力

使用時通常無需手工填寫工具參數,直接用自然語言描述目標即可。

瀏覽器 OAuth 直連和本地啟動器的 Remote MCP 模式發布相同的工具;只有 local 模式發布原有本地 SDK 工具。兩組工具名不同,但能力域和使用情境基本一致。

下表用於快速選擇工具;原始參數、完整結果欄位和進階流程以 tools/list 返回的工具定義及本節後續說明為準。

能力

Remote MCP 工具

Local MCP 工具

關鍵使用邊界

串連檢查

maxcompute_health_ping

通過 tools/list 或任意唯讀工具驗證

用戶端實際可用工具以 tools/list 返回為準。

網關能力

maxcompute_gateway_capabilities

不適用

查看網關版本、支援的 MCP 協議以及可用外掛程式和工具。

專案和 Schema 查看

maxcompute_schema_list_projects, maxcompute_schema_get_project, maxcompute_schema_list_schemas, maxcompute_schema_get_schema

list_projects, get_project, list_schemas, get_schema

可見範圍由當前身份的 MaxCompute 和 RAM 許可權決定。

傳統 2 層專案通常可省略 schema;3 層模型應顯式指定。

表和分區中繼資料

maxcompute_schema_search_metadata, maxcompute_schema_list_tables, maxcompute_schema_describe_table, maxcompute_schema_list_partitions, maxcompute_schema_get_table_ddl

list_tables, get_table_schema, get_partition_info, search_meta_data

先搜尋候選表,再讀取欄位和分區資訊。

Catalog 搜尋必須指定對象 typeregionproject 條件不能混用。

local 模式的 search_meta_data 還需要配置 namespaceId

查詢包含資料的最大一級分區時,在實際查詢中直接使用 MAX_PT('<table>');需要完整多級分區組合時,使用標準 SQL 子查詢。

SQL 分析與執行個體

maxcompute_sql_validate, maxcompute_sql_estimate_cost, maxcompute_sql_execute, maxcompute_sql_get_status, maxcompute_sql_fetch_result, maxcompute_sql_cancel, maxcompute_sql_get_logview, maxcompute_sql_list_instances, maxcompute_sql_list_queueing

cost_sql, execute_sql, get_instance_status, get_instance

查詢建議先校正或預估掃描資料量和 CU 用量。

maxcompute_sql_validate 對文法、語義、對象缺失和許可權問題返回真實後端錯誤;

MaxCompute 內部失敗(如資源用量預估任務失敗)會返回分類後的工具錯誤,不會被誤判為 SQL 無效。

Remote MCP 寫 SQL 必須顯式使用 mode=write,並由用戶端先獲得使用者確認;

Local MCP 的 execute_sql 僅允許唯讀。大查詢使用非同步狀態和結果續查。

maxcompute_sql_execute 不調用模型。

自然語言 SQL 草稿

maxcompute_generate_sql

不適用

必須傳原始 question;可選 regionsourcesanalysis_context,使用後兩者時必須同時指定 region

sources 限制可使用的資料範圍。工具只產生和校正 SQL,不執行 SQL。

模型分析可能消耗 MaxAgent Credits。

作業診斷

maxcompute_diagnose_job

不適用

使用 instance_idproject,或使用 Logview URL 指定作業。

工具根據作業狀態、執行明細和日誌給出診斷建議,不執行、重試或取消作業。

證據不完整時返回 partial

配額查看

maxcompute_quota_list, maxcompute_quota_get

不適用

通過當前身份綁定的 FE 介面返回有權查看的計算配額(Quota)列表和詳情,不修改配額。

配額分析

maxcompute_analyze_quota_usage

不適用

分析所選地區最近 7 天的配額和作業資源消耗。

只有具有固定容量的訂用帳戶二級配額會返回容量利用率;隨用隨付和 Spot 配額不返回容量百分比。工具唯讀,模型分析可能消耗 MaxAgent Credits。

表中繼資料健康分析

maxcompute_analyze_table

不適用

唯讀取當前身份有權訪問的表和分區中繼資料,不掃描表資料,也不調用模型或消耗 MaxAgent Credits。無法由中繼資料證明的結論會列入 missing_evidence

帳號和許可權檢查

maxcompute_access_check

check_access

只檢查當前身份和已有授權,不授予或修改許可權。

SemanticSpec CRUDL

maxcompute_semanticspec_create, maxcompute_semanticspec_get, maxcompute_semanticspec_list, maxcompute_semanticspec_list_published_revisions, maxcompute_semanticspec_get_published_revision, maxcompute_semanticspec_update, maxcompute_semanticspec_delete

暫無對應工具

namespace 固定來自當前認證身份的 MaxCompute account_id

Published-revision 工具唯讀取不可變的發行快照;

建立、更新和刪除屬於寫操作,Draft 內容更新使用 revision 做並發控制。

SemanticSpec 建議與發布

maxcompute_semanticspec_refresh_suggestions, maxcompute_datascan_get_latest_job_status, maxcompute_semanticspec_apply_suggestions, maxcompute_semanticspec_publish

暫無對應工具

refresh 只觸發 DataScan,不會自動 apply 或 publish;apply 和 publish 需要顯式調用並按寫操作確認。

表管理與中繼資料維護

maxcompute_schema_create_table, maxcompute_schema_update_table, maxcompute_table_insert_values

create_table, insert_values, update_table

會修改 MaxCompute 資源或中繼資料,調用前應展示目標 project、table 和變更摘要並獲得使用者確認。

知識庫搜尋與問答

maxcompute_kb_search, maxcompute_kb_ask

不適用

搜尋 MaxCompute 文檔片段,或從文檔中檢索資訊並回答問題。可選 region 指定模型調用地區;省略時使用服務預設地區。回答中的事實應結合返回引用核對。

Skill 發現與讀取

maxcompute_skill_list, maxcompute_skill_read

不適用

Skill 是否可用取決於當前服務配置和 tools/list;用戶端不自動載入資源時需要顯式讀取。

Information Schema 語義分析

內建 Information Schema 語義包

需要額外安裝 alibabacloud-odps-information-schema Skill

需要租戶級 Information Schema 許可權和同地區可執行 project。歷史視圖存在延遲和查詢範圍限制,不用於判斷秒級即時狀態。

本地會話配置

不適用

list_configs, get_current_config, use_config

配置切換作用於 Local MCP 進程,更適合 stdio 或單用戶端使用。

工具列表顯示資訊

  • 多語言工具顯示資訊

    Remote MCP 在 tools/list 的每個工具對象中提供面向使用者介面的多語言顯示資訊。支援該擴充的用戶端可讀取 _meta["com.aliyun.maxcompute/display"],按介面語言顯示簡體中文(zh-CN)、繁體中文(zh-TW)或英文(en)標題和簡介。

    用戶端應以每次 tools/list 返回的工具集合為準,不維護獨立的工具清單。所選語言缺失或擴充版本不受支援時,回退到標準 titlenamedescription 欄位。需要顯示模型依賴標識時,僅在 _meta["com.aliyun.maxcompute/model_backed"]true 時標記為依賴 MaxAgent。顯示資訊僅用於介面呈現,不能作為許可權、計費或調用安全判斷的依據。

  • 智能分析能力

    自然語言 SQL、作業診斷和配額分析是 Remote MCP 的三項智能分析工具,均為唯讀:不會自動執行產生的 SQL,不會重跑或取消作業,也不會修改配額容量和調度配置。

    模型分析可能消耗 MaxAgent Credits,一次工具調用可能觸發多次模型調用。當模型能力或所需證據不可用時,工具可能返回 partial 結果,應結合 warningsmissing_evidence 判斷可用結論。

智能分析工具使用前準備

使用上述三個工具前,請確認以下條件:

  • MCP 用戶端已通過瀏覽器 OAuth 或本地啟動器串連 Remote MCP。

  • 當前認證身份具有目標 MaxCompute 專案、作業或配額的相應存取權限。

  • 請求中的 region 與目標資源所在地區一致。

  • 使用 MaxAgent 模型能力時,當前身份在所選地區具有有效 MaxAgent 配額和充足的 Credits。

  • 使用 Generate SQL 查詢租戶中繼資料或歷史作業時,當前身份滿足相應的Information Schema 要求訪問條件。

  • 如需配額歷史容量利用率或作業消耗資料,當前服務地區需支援相應的歷史觀測能力。

說明
  • 配額分析不要求 Information Schema 許可權或可執行專案。

  • 模型能力不可用時,工具可能返回 partial 結果,並保留已取得的確定性證據。

通常只需在對話中說明目標,由 Agent 選擇工具並填寫參數;也可以按照本文的 JSON 樣本直接調用 MCP 工具。

智能分析工具結果說明

三個工具都返回 MCP 結構化結果。重點關注以下欄位:

  • ok:工具調用協議是否正常完成。ok=true 不代表證據一定完整。

  • data:SQL 草稿、診斷結果、配額觀測結果等業務資料。

  • meta.outcomemetadata.outcome:業務結果狀態。

  • warnings:非致命限制或降級說明。

  • missing_evidence:未取得的證據及原因。

  • usage:模型調用次數及模型報告的 Token 用量。

常見 outcome

狀態

含義

succeeded

已取得足夠證據並完成分析。

partial

工具正常完成,但部分計劃、日誌、歷史資料或許可權證據不可用。仍可使用已返回的事實。

needs_input

問題或資料範圍不夠明確,需要使用者補充。

rejected

輸入、授權範圍或產生內容不符合唯讀安全約束。

timeout

模型或 MaxCompute 查詢超過限定時間。

failed

後端或模型調用失敗,未形成可用結果。

不要把 partial 當作“介面調用失敗”。應根據 missing_evidence 判斷當前結論能回答哪些問題,以及是否需要補充許可權、範圍或進一步診斷。排障時不要複製認證資訊或完整後端響應。

產生 SQL

適用情境

  • 根據業務問題產生查詢 SQL。

  • 在多個 project 或 schema 中產生跨表關聯 SQL。

  • 在執行前檢查欄位、表引用、唯讀屬性和 MaxCompute 方言。

  • 在已知執行 project 時,同時完成後端 SQLCost 校正和資源用量預估。

  • 根據中繼資料、作業歷史、配額用量、許可權或治理問題產生租戶級 Information Schema SQL。

輸入參數

參數

必填

說明

question

使用者原始問題,最多 2000 個字元。不要拼接 DDL、表結構或額外提示詞。

region

一個 MaxCompute 地區。省略時使用服務預設地區。

sources

資料發現的硬範圍,最多 16 項,可限定到 project、project/schema 或精確表;所有 source 中最多合計指定 20 張精確表。

analysis_context

調用者有權建立查詢 Instance 的執行內容。業務表 SQL 用於後端 SQLCost 校正;Information Schema SQL 用於形成可複用的後續執行參數。它不是資料發現範圍。

sources 是範圍限制,不是檢索建議。提供 sources 後,工具強制在指定的 project、schema 或表範圍內查詢,不會越過這些邊界搜尋資料。當問題可能跨多個 project 或 schema 時,可提供多個 source,但所有 source 必須位於同一地區。

省略 sources 時,工具根據問題語義自動判斷是發現業務表還是讀取受支援的租戶級 Information Schema 視圖。工具不會因關鍵詞匹配或調用方參數而自動授予系統檢視表的存取權限。

樣本:已知資料範圍

自然語言問法:

在 cn-shanghai 的 sales_dw.dwd 中,產生一條 SQL,統計最近 30 天各渠道的支付訂單數和支付金額,
按支付金額降序排列。只產生並校正 SQL,先不要執行。

等價工具參數:

{
  "question": "統計最近 30 天各渠道的支付訂單數和支付金額,按支付金額降序排列",
  "region": "cn-shanghai",
  "sources": [
    {
      "project": "sales_dw",
      "schema": "dwd"
    }
  ],
  "analysis_context": {
    "project": "sales_dw",
    "schema": "dwd"
  }
}

樣本:精確限制表

{
  "question": "找出每場比賽積分最高的車隊,並統計賽季累計積分",
  "region": "cn-shanghai",
  "sources": [
    {
      "project": "analytics",
      "schema": "formula_1",
      "tables": ["constructors", "constructorresults", "races"]
    }
  ]
}

樣本:產生歷史作業分析 SQL

{
  "question": "查詢最近 7 天 CU 消耗最高的 20 個作業,返回 Instance ID、專案、提交人和 CU 小時",
  "region": "cn-shanghai",
  "analysis_context": {
    "project": "<當前身份在該地區可建立查詢 Instance 的 project>"
  }
}

該情境不傳 sources。工具會載入內建的 Information Schema Skill 及目標視圖的欄位文檔,產生針對 SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY 的查詢,並強制添加不超過 14 天的 ds 分區視窗和 LIMIT(範圍 1~100)。

產生的 SQL 需通過白名單校正(系統檢視表白名單、唯讀、單語句、完整限定名及範圍限制),校正通過後才會返回 SQL 草稿和可選的 execute_args。

由於 MaxCompute SQLCost 當前不支援租戶級 Information Schema,該模式明確跳過資源用量預估。實際執行時,maxcompute_sql_execute 會再次執行相同的安全校正。

結果與後續執行

工具返回以下內容:query_domain、經過結構校正的唯讀 SQL、使用的物理表或系統檢視表、假設、警告,以及可選的資源用量預估結果。工具不會執行 SQL。若返回結果中包含 execute_args,使用者確認後可將其原樣傳給 maxcompute_sql_execute

用戶端無需自行構造或解釋 Information Schema 的內部執行設定——執行工具會自動識別系統檢視表、補齊服務端設定,並再次獨立校正 SQL。SQL 請求的 OBO policy 定義委託授權的上界,所有查詢仍以當前 MCP 調用者對應的 MaxCompute 身份提交,由 MaxCompute 按實際許可權校正。

推薦流程

  1. 先產生並審核 SQL,查看假設、表選擇理由和校正結果。

  2. 對資源消耗較高或範圍較大的查詢,檢查掃描資料量和 CU 用量預估。

  3. 使用者明確同意後再執行。

常見問題

  • 業務表問題沒有產生 SQL

    問題過於寬泛,且沒有提供 sources;補充 project、schema 或精確表。Information Schema 問題不應為了繞過發現失敗而添加業務表 source,應明確要分析的對象、指標和時間視窗。

  • 發現多個相似資料集

    不要讓 Agent 猜測,明確選擇正確的資料範圍。

  • SQLCost 未執行

    業務表模式通常是未提供 analysis_context;Information Schema 模式因MaxCompute SQLCost 當前不支援租戶級系統檢視表而始終跳過,資源用量預估結果為 unavailable。

  • 返回 rejected

    產生內容包含寫操作、多語句或越過 sources 的表引用。

  • Information Schema SQL 被拒絕

    查詢使用未知或混合物理表、未使用完整系統檢視表名、缺少LIMIT,或歷史視圖缺少 1 至 14 天的標準 ds 視窗。

作業診斷

適用情境

  • 定位 SQL 編譯錯誤、欄位不存在或語法錯誤。

  • 分析失敗作業、長時間運行作業或資源消耗異常作業。

  • 查看執行計畫、階段進度、資源用量摘要和時間軸中的異常訊號。

  • 在首輪結論不足時繼續深挖失敗 Worker 日誌或其他可用證據。

輸入方式

一次調用只能選擇一種作業引用方式:

  1. instance_idproject;或

  2. 一個受支援的 HTTPS Logview URL。

參數

必填

說明

instance_id

條件必填

MaxCompute Instance ID。使用該欄位時必須同時提供 project

project

條件必填

Instance 所屬 project。Logview URL 已包含 project 時可省略。

logview_url

條件必填

受支援的 Logview URL。服務僅在本地解析,不會請求或跳轉該 URL。

schema

作業執行 schema。傳統兩層 project 通常省略。

region

作業所在地區。

history_window_days

歷史對比視窗,預設 7 天,取值範圍為 1 至 30 天。

depth

standarddeep。繼續深挖時使用 deep

不要把原始日誌、執行計畫、已有診斷結論或 Logview 令牌單獨拼入參數。Logview URL 中的臨時令牌屬于敏感資訊,不應複製到工單、文檔或聊天記錄。

樣本:診斷失敗作業

{
  "instance_id": "<INSTANCE_ID>",
  "project": "sales_dw",
  "region": "cn-shanghai",
  "depth": "standard"
}

自然語言問法:

診斷 sales_dw 中的作業 <INSTANCE_ID>。先判斷失敗階段和最可能原因,給出可執行檔修複建議,
不要重跑或取消作業。

樣本:繼續深挖

繼續深挖這個作業。首輪結論還不能解釋根因,請檢查可用的失敗 Worker 日誌和階段證據,
並區分已確認事實、推斷和仍缺失的證據。

Agent 應在下一次調用中使用同一個作業引用,並設定 depth=deep。深挖仍受讀取數量、日誌大小和逾時限制,不會無限讀取日誌。

如何閱讀結果

  • root_cause.kind:歸類後的主要原因,例如 SQL 文法、資料扭曲、全表掃描、慢 UDF、資源等待、長時間運行或執行開銷。

  • root_cause.confidence:當前證據支援程度,不是成功機率。

  • findings:已發現的問題和嚴重程度。

  • recommendations:唯讀修複建議,例如修改 SQL、檢查資料分布或調整執行安排。

  • evidence:支撐結論的狀態、計劃、階段、日誌和時間軸證據。

  • missing_evidence:計劃、階段進度、Worker 日誌或歷史對比不可用時的明確說明。

作業已成功不代表一定存在問題。小型成功作業可能主要由編譯、調度和啟動開銷構成,此時工具可以返回“執行開銷佔主導”,而不應偽造資源瓶頸。

配額分析

適用情境

  • 查看訂用帳戶二級配額的當前 CPU 使用量和歷史容量利用率。

  • 尋找最近 7 天內有實際作業的計算配額,包括訂用帳戶、隨用隨付和 Spot。

  • 按實際作業消耗比較配額,並尋找 CPU 使用量較高的作業。

  • 分析訂用帳戶配額的容量水位;隨用隨付和 Spot 配額只分析作業消耗和異常作業。

  • 對高消耗或異常作業繼續執行作業診斷。

輸入參數

參數

必填

說明

region

配額所在地區。

quota_nickname

使用者可見的精確計算配額 Nickname。省略時尋找所選地區最近 7 天內有實際作業的配額。

question

希望分析的資源問題。省略時尋找資源消耗最高的作業。

工具只接受上述三個選擇性參數,不接受 project、使用者、表結構、預先產生的 SQL、閾值或診斷上下文。工具不會提交 Information Schema SQL,也不要求當前身份具有 Information Schema 許可權或可執行 project。

作業分析視窗最長為 7 天。結果只覆蓋本次返回的作業範圍;證據不完整時,工具通過 partialwarningsmissing_evidence 說明缺失內容。歷史容量利用率只適用於具有固定容量的訂用帳戶二級配額。隨用隨付和 Spot 配額沒有固定容量分母,因此不返回容量百分比或容量規劃建議。

配額的 Name 與 Nickname

MaxCompute 配額同時存在兩個標識:

  • Nickname:使用者可見名稱,也是 quota_nickname 參數和 SQL 執行時選擇配額使用的值,例如 team_etl_quota

  • Name:配額 API 返回的內部實體名稱,用於標識配額對象,不能作為 quota_nickname 的值。

指定 quota_nickname 時,必須傳入精確的 Nickname。省略該參數時,工具從最近 7 天的作業中尋找實際使用的配額。返回範圍受限時,結果會明確說明未覆蓋的部分。

樣本:分析一個配額

{
  "region": "cn-shanghai",
  "quota_nickname": "team_etl_quota",
  "question": "分析最近 7 天 CPU 資源最高的 10 個作業,並說明可驗證的異常訊號"
}

自然語言問法:

分析 cn-shanghai 的 team_etl_quota。找出最近 7 天 CPU 限定最高的作業;只有存在直接作業異常訊號時才歸因為異常作業,否則明確為原因未知。只給建議,不要修改配額或作業。

樣本:比較視窗內活躍配額

省略 quota_nickname

{
  "region": "cn-shanghai",
  "question": "比較最近 7 天有實際作業的計算配額,按作業 CPU 使用量排序;訂用帳戶另列容量利用率,按量和 Spot 不計算容量百分比"
}

自然語言問法:

比較我在 cn-shanghai 最近 7 天有實際作業的計算配額,包括訂用帳戶、隨用隨付和 Spot;
按作業 CPU 使用量排序並列出高消耗作業,只對訂用帳戶配額補充容量利用率。

當前快照、歷史消耗與歷史利用率

這三個概念不能混用:

資料

含義

當前支援情況

current_cpu_usage

當前 CPU 使用量,不是 0 到 1 的百分比。

僅適用於訂用帳戶配額,且僅在 current_cpu_usage_available=true 時有效。

高消耗作業

最近 7 天內作業的 CPU 和記憶體累計消耗。

支援訂用帳戶、隨用隨付和 Spot 配額。未知值不會參與排序或匯總。

歷史配額利用率

固定容量隨時間對應的平均、峰值和 P90 水位。

僅適用於具有固定容量的訂用帳戶二級配額。

作業的 CPU 和記憶體累計消耗不等同於配額的歷史利用率。沒有固定容量或歷史資料時,工具不會根據作業消耗推斷平均水位、峰值或 P90,也不會為隨用隨付或 Spot 配額產生容量規劃建議。

Information Schema 要求

Generate SQL 可以使用租戶級 Information Schema 視圖。配額分析的容量利用率和作業證據均不使用 Information Schema。Generate SQL 僅允許服務端白名單中的視圖,例如:

  • SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS

  • SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY

Generate SQL 使用這些視圖時需要滿足以下條件

  1. 當前認證身份具有租戶級 Information Schema 讀取許可權。主帳號通常具備預設訪問能力;RAM 使用者或 RAM 角色是否可訪問取決於租用戶系統管理員配置。

  2. 當前身份在目標地區至少有一個可見的 MaxCompute project,可用於提交唯讀 Information SchemaSQL,並具有建立查詢 Instance 要求的權限。

  3. 目標地區已經提供上述租戶級視圖及其後端依賴。

安全和範圍限制

  • Generate SQL 允許讀取內建 Skill 記錄的租戶級視圖,但不能指定未知系統檢視表或與物理表混合查詢。

  • Generate SQL 在模型選擇系統檢視表前載入 Information Schema 根 Skill,用視圖的資料粒度、時效和欄位判斷所需事實來源;選擇完成後再載入對應視圖的完整欄位文檔。

  • Generate SQL 的系統檢視表草稿必須包含時間範圍和 LIMIT

  • 查詢始終為唯讀,不會修改配額、調度配置或作業。

資料延遲

TASKS_HISTORY 不是即時介面,通常約有 5 分鐘的資料同步延遲。剛完成的作業可能暫時查不到,應稍後重試。不同地區、視圖和資料量下延遲可能更長,因此不要用歷史視圖判斷秒級即時狀態;即時作業狀態應使用 SQL Instance 狀態或作業診斷工具。

許可權和視圖錯誤

  • 調用者缺少租戶級許可權:Generate SQL 會明確返回 Information Schema 許可權錯誤。

  • 沒有同地區執行 project:Generate SQL 提示缺少可執行 Information Schema 查詢的 caller-visible project。

  • 系統檢視表後端依賴不可用:結果提示視圖不可用。錯誤文本中出現系統檢視表 owner 不等同於當前認證身份;不要據此把問題錯誤歸因到調用者帳號。

智能分析工具組合情境

從業務問題到執行再到診斷

1. 用 maxcompute_generate_sql 產生並校正最近 30 天渠道收入 SQL。
2. 使用者審核並確認後,用 maxcompute_sql_execute 執行 execute_args。
3. 如果作業失敗或明顯變慢,用 maxcompute_diagnose_job 分析該 Instance。

從配額熱點到作業根因

1. 省略 quota_nickname,用 maxcompute_analyze_quota_usage 尋找最近 7 天內有作業的計算配額。
2. 按實際作業消耗尋找高消耗作業;只對訂用帳戶配額查看容量利用率。
3. 對存在異常訊號的 Instance 調用 maxcompute_diagnose_job。
4. 根據作業證據最佳化 SQL 或調度;不要僅憑歷史消耗自動擴容。

對一個已知配額做歷史作業分析

分析 team_etl_quota 最近 7 天失敗作業的 owner 分布和 CPU 限定;
對 CPU 限定最高的失敗 Instance 深挖原因。

配額分析不會產生或執行 Information Schema SQL。返回結果可能只覆蓋部分高消耗作業,不能據此計算完整失敗作業數量;如需進一步分析某個 Instance,再調用作業診斷工具。

智能分析工具使用建議

  • 只提供當前工具支援的範圍欄位:Generate SQL 使用 regionsources 和可選 analysis_context;作業診斷使用 project 和 Instance ID 或 Logview URL;配額分析使用region 和精確配額 Nickname。不要把其他工具的內容欄位混入當前調用。

  • SQL 產生時,已知資料範圍就提供 sources,避免寬泛發現得到零候選或多個歧義資料集。

  • 作業診斷先用 standard,只有結論不足或明確要求繼續調查時再用 deep

  • 配額分析先比較已返回的作業消耗,再對少量熱點配額和 Instance 深挖;不要把部分結果稱為全量清單。

  • 始終區分已確認事實、模型判斷和 missing_evidence

  • 任何擴容、調度、遷移、SQL 執行、重跑或取消操作都應由使用者單獨確認。

通用調用規則

  • 工具只能訪問當前身份有權訪問的 MaxCompute 資源;不要把工具可見度等同於資源授權。

  • 發現候選表後,應讀取準確的表結構再產生或執行 SQL,不要根據表名猜測欄位、分區或 schema。

  • 寫 SQL、建立表、插入資料、更新中繼資料、修改 SemanticSpec 等寫操作必須由用戶端先獲得使用者明確確認。網關不會替用戶端完成互動式二次確認。

  • 大結果集應使用分頁、縮小查詢範圍或非同步執行個體讀取。Local MCP 還可以通過本地 file://output_uri 寫入檔案;該路徑屬於 Local MCP 所在機器,不是 MCP 用戶端所在機器。

  • maxcompute_sql_executeexecution_mode 預設為 wlm。使用 MaxQA(MCQA v2)時必須顯式傳execution_mode=maxqa 和互動式 quota_name,且不能同時傳settings.odps.task.wlm.quota。後續狀態、結果或取消調用只需傳正常的 projectinstance_id,不應傳遞或儲存服務端使用的 MaxQA connection 或 cookie。

常見使用情境

  • 瀏覽專案和表

    列出我能訪問的 MaxCompute 專案,並查看 my_project 下有哪些 schema。
    查看 my_project 專案 default schema 下 user_info 表的欄位、分區鍵和表注釋。
  • 安全執行 SQL 查詢

    先查看 orders 表的結構,再預估這條 SQL 的掃描資料量和 CU 用量:
    SELECT COUNT(*) FROM orders WHERE dt='2026-05-01'
    在 my_project 專案執行唯讀查詢:
    SELECT * FROM default.orders WHERE dt='2026-05-01' LIMIT 100
  • 大查詢建議讓 Agent 走非同步流程

    非同步執行這個查詢,返回 instanceId 後幫我輪詢狀態,完成後讀取前 100 行結果。
  • 匯出大結果(僅 Local MCP)

    同步執行這個查詢,並把完整結果寫到 file:///tmp/maxcompute-result/orders.jsonl;
    響應裡只需要給我預覽和最終 outputPath。

    output_uri 寫入的是 Local MCP 所在機器的本地檔案系統,不是 MCP 用戶端所在機器。Remote MCP不提供服務端本地檔案寫入;應使用 maxcompute_sql_fetch_result 的分頁參數逐頁讀取結果。

  • 檢查身份和許可權

    查看當前 MCP 使用的 MaxCompute 身份,並列出我在 my_project 專案中的許可權。
  • 搜尋中繼資料

    在 Catalog 中搜尋名稱包含 orders 的表,只看 my_project 專案。
  • 查看配額

    列出我當前身份可用的 MaxCompute 配額,並查看預設配額的詳情。
  • 知識庫搜尋與問答

    MaxCompute 中如何使用動態分區插入?請搜尋文檔並給出帶引用的回答。
    ODPS 的聚簇表和普通表有什麼區別?在什麼情境下適合使用聚簇表?
  • 使用 Information Schema 做治理和營運分析

    分析當前租戶中佔用儲存最大的前 10 張表。
    最近一周計算資源消耗最高的任務有哪些?按 owner 和 project 匯總。

    Remote MCP 已內建 Information Schema 語義包,可以直接使用這類問法。Local MCP 需要先在用戶端或 Agent 環境中安裝對應 Skill,安裝後再使用這些情境。

  • 維護表業務中繼資料

    先讀取 default.orders 的當前表結構,然後把表注釋改為“訂單事實表”,
    並把列 buyer_id 的注釋改為“買家 ID”。

    update_table 支援的修改範圍包括:

    • 表注釋:description

    • 標籤:labels

    • 生命週期:expiration.daysexpiration.partitionDays

    • 列注釋:columns.setComments

    • 頂層列從非空改為可空:columns.setNullable

    • 追加新列:columns.add

    MaxCompute 不支援通過該工具刪除列、修改列類型、重排列、在中間插入列、把可空列改為非空列,或修改嵌套列的可空性。

  • 建立表和插入少量資料

    在 my_project.default 下建立一張測試表 demo_user,
    欄位包括 id BIGINT、name STRING、dt STRING 分區欄位,生命週期 7 天。
    向 demo_user 插入兩行測試資料,dt 分區值為 2026-05-18。

    這類操作會修改 MaxCompute 資源,建議只授予測試 project 或受控 project 許可權。

  • 管理 SemanticSpec

    建立名為 sales_metrics 的 SemanticSpec,引用 my_project.default.orders,
    描述為“銷售指標語義層”,並添加 certified 標籤。
    讀取 sales_metrics 的 USER_DRAFT 中的 dataReferences、semanticModel 和 metricDefinitions;
    然後把返回的 revision_id 作為 expected_draft_revision_id 更新指標定義。

    SemanticSpec 內容更新需要使用讀取結果中的當前 revision,避免覆蓋並發修改。建議產生、應用和發布是三個獨立步驟:refresh 只觸發 DataScan,不會自動 apply 或 publish。

    完整 section 格式、revision 衝突處理和 DataScan 狀態輪詢規則由 Remote MCP 的 maxcompute-semantic-spec Skill 提供。用戶端不自動載入 Skill resource 時,先調用 maxcompute_skill_list 確認該 Skill 可用,再用 maxcompute_skill_read 讀取入口和引用檔案;實際可用性以 tools/list 返回結果為準。

故障排查

失敗資訊包含 Request ID 時,排障可以記錄 Request ID、工具名、帶時區的時間和脫敏後的錯誤碼。不要記錄或傳播令牌、授權碼、敏感業務 SQL、帳號敏感資訊或不應外發的 Logview 內容。

MCP 用戶端看不到工具

  • 瀏覽器 OAuth 直連時,確認 Remote MCP 服務地址包含 /mcp,並且同一個用戶端配置沒有混用公網與 VPC 服務地址。

  • 確認瀏覽器 OAuth 直連所用用戶端支援 Streamable HTTP、OAuth 和 tools/list

  • 本地啟動器的 command 是否指向已安裝的 alibabacloud-maxcompute-mcp-server,以及在同一運行環境中執行 alibabacloud-maxcompute-mcp-server --help 是否成功。

  • MAXCOMPUTE_CATALOG_CONFIG 是否指向可讀的設定檔,或 MAXCOMPUTE_REGIONMAXCOMPUTE_NETWORK 是否同時設定。

  • default 是否因 Remote MCP 不可用而選擇了 local。缺少本地依賴時,按錯誤提示安裝alibabacloud-maxcompute-mcp-server[local]

  • 實際工具列表是否包含目標工具。Remote MCP 使用 maxcompute_* 工具名;local模式使用原有 SDK 工具名,兩者不能直接互換。

  • 修改配置後,重啟 Cursor、Claude Code 或對應的 MCP 用戶端。

認證、串連或許可權失敗

  • 瀏覽器 OAuth 直連時,是否已經由使用者本人完成阿里雲 OAuth 授權。如果 OAuth頁面沒有開啟,檢查用戶端是否支援 MCP OAuth,以及本機瀏覽器或回調連接埠是否被攔截。

  • 瀏覽器 OAuth 直連出現 401 時,重新授權並確認用戶端儲存的存取權杖未到期或被清理。

  • 確認本地啟動器已取得有效 AccessKey、STS 臨時憑證、憑證 URI 或預設憑證鏈憑證,並確認 STS 安全性權杖未到期。本地啟動器不需要瀏覽器 OAuth。

  • regionnetwork 是否與目標 MaxCompute 環境一致;原有配置中的 FE 與 CatalogAPI 服務地址是否指向同一地區和網路類型。

  • 確認 VPC 環境可以訪問同一地區的 CatalogAPI VPC 服務地址和 MCP VPC 服務地址。VPC配置不能切換到公網 MCP。

  • remote 模式在 Remote MCP 不可用時返回錯誤;default 模式會嘗試使用本地 SDK 工具。

  • 出現 403 時,確認當前阿里雲帳號已獲得目標專案的 MaxCompute 和 RAM 許可權。

  • 確認對話或工具參數中的目標地區 ID 正確;未顯式指定時,服務使用當前入口的預設地區。

  • 使用憑證 URI 時,確認啟動器所在機器可以訪問 ALIBABA_CLOUD_CREDENTIALS_URI

  • 先用 Remote MCP 的 maxcompute_access_checklocal 模式的 check_access 驗證當前身份,再排查具體工具。

中繼資料搜尋失敗

Remote MCP 的 maxcompute_schema_search_metadatalocal 模式的 search_meta_data 使用相同的 Catalog 查詢文法。常見錯誤原因包括:

  • 使用 local 模式的 search_meta_data,但未配置 namespaceIdMAXCOMPUTE_NAMESPACE_ID。Remote MCP 不需要該配置。

  • 查詢語句缺少 type=TABLEtype=RESOURCEtype=SCHEMA

  • 同時使用了不相容的 project 和 region 條件。

SQL 解析、執行或結果讀取失敗

如果 SQL 表名解析失敗,先用 Remote MCP 的 maxcompute_schema_describe_table 或 Local MCP 的 get_table_schema 讀取表結構,讓 Agent 使用返回的準確表引用。3 層模型常見表名格式是schema.tableproject.schema.table;2 層模型常見表名格式是 tableproject.table

如果 Remote MCP 將 SQL 拒絕為寫操作,確認這確實是使用者希望執行的寫入,並在獲得使用者確認後顯式使用 mode=write;不要為了繞過唯讀校正而修改模式。

如果 SQL 執行逾時或結果被截斷:

  • 優先使用非同步執行。

    • Remote MCP 通過 maxcompute_sql_get_statusmaxcompute_sql_fetch_result 續查;

    • Local MCP 通過 get_instance_statusget_instance 續查。

  • Remote MCP 使用 limitcursor 分頁並縮小查詢範圍。Local MCP 還可以使用output_uri=file:///path/to/result.jsonl 寫入 Local MCP 所在機器。

  • 執行前先調用對應的資源用量預估工具,並根據 tools/list 中的參數定義限制資源消耗。

Information Schema語義包

Information Schema 語義包面向系統營運和治理情境,使用 MaxCompute 租戶級 INFORMATION_SCHEMA 中繼資料視圖構建。它把底層中繼資料轉化為 Agent 可以直接理解和查詢的指標、實體和操作手冊。

Remote MCP 已內建 Information Schema 語義包,使用者完成 Remote MCP 接入後,可以直接在 Agent 中發起儲存、成本、許可權、作業等治理和營運類問題,無需額外安裝 Skill。配額分析使用獨立的唯讀資料路徑,不執行 Information Schema SQL。

Local MCP 只提供本地 MaxCompute MCP 工具。使用 Local MCP 時,需要在用戶端或Agent 環境中額外安裝以下 Skill,然後再使用這些語義化情境:

https://skills.alibabacloud.com/skills/alibabacloud-odps-information-schema

典型情境包括:

情境

能力

儲存壓力診斷

盤點儲存 TOP 表,識別分區膨脹風險和資料新鮮度問題。

成本壓力診斷

按 owner、project、任務類型拆解計算消耗,定位高耗資源任務。

任務失敗激增分析

按類型、owner、project 下鑽失敗任務,輔助定位失敗根因。

許可權暴露審計

審計表級授權分布,識別高許可權帳號和過度授權風險。

熱點表觀測

根據訪問頻次識別熱表,並結合最後訪問時間發現長期未訪問的表。

中繼資料治理缺口分析

統計表和欄位注釋覆蓋率,定位治理薄弱點。

作業效能分析

分析平均耗時和 P99 耗時,識別長尾慢任務和排隊異常。

資料通道審計

統計 Tunnel 上傳下載量,輔助檢查異常傳輸行為。

使用者角色審計

梳理使用者和角色映射,檢查管理員角色分配合理性。

分區生命週期分析

監控分區數量增長趨勢,檢查生命週期策略生效情況。

安全注意事項

普通使用者優先使用 Remote MCP Server,不要為了試用而在本地 MCP Server 中配置長期 AccessKey。

  • 使用可信用戶端

    只通過受信任的 MCP Client 配置和訪問生產入口,不要在不可信頁面中發起 MCP請求。

  • 親自完成 OAuth 授權

    OAuth 確認頁須由本人操作,不要讓他人代為點擊。

  • 使用最小許可權帳號

    MCP 可訪問的 MaxCompute 資源由帳號許可權決定,建議使用僅具備必要許可權的帳號接入。

  • 不泄露敏感憑證

    • 不要在聊天、工單、文檔或截圖中泄露 token、refresh、token、授權碼、密鑰或回調 URL。

    • 不要把 AccessKey、STS token、config.json 或憑證服務 URI 提交到 Git。

  • 寫操作須顯式確認

    執行前確認用戶端已展示目標 project、table、SQL或變更摘要,核查無誤再繼續。

反饋渠道

如需反饋 Remote MCP 服務、用戶端相容性、工具錯誤、文檔問題或功能建議,可通過以下入口提交:

也可以讓 Agent 讀取 skill://maxcompute-mcp-feedback/SKILL.md,擷取 issue模板連結、建議提供的診斷欄位和脫敏規則。該資源不會代替建立 GitHub issue,也不會上傳日誌或儲存反饋內容。

提交前請確認 issue 中不包含以下內容:token、Cookie、AccessKey、帶 query 參數的 OAuth callback URL、敏感 SQL、客戶資料或敏感 Logview 內容。

帳號級許可權、賬單、SLA、生產故障、安全性漏洞或機密資料問題,請聯絡阿里雲官方支援或安全渠道,不要在公開 issue 中反饋