MaxCompute MCP 服务使用文档

更新时间:
复制 MD 格式

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 权限。此时所有请求都会共享该身份的权限和审计主体,系统自身还需要负责用户鉴权、会话隔离和操作审计。

  • 不建议把主账号或具备 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.aliyun.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 中反馈