Skip to main content

MCP for ODPS

MaxCompute (ODPS) API工具,用于获取表的详细信息,包括表名、字段信息、分区信息和DDL。

环境变量配置

在使用本工具之前,请配置以下环境变量:

必需的环境变量

  • MAXCOMPUTE_PROJECT_NAME: MaxCompute项目名称

可选的环境变量

  • MAXCOMPUTE_SCHEMA_NAME: Schema名称(默认值:default)
  • MAXCOMPUTE_BASE_URL: MaxCompute API基础URL(默认值:https://maxcompute.cn-hangzhou.aliyuncs.com)

OAuth认证环境变量(如果需要OAuth认证)

  • OAUTH_CLIENT_ID: OAuth客户端ID
  • OAUTH_CLIENT_SECRET: OAuth客户端密钥
  • OAUTH_REDIRECT_URI: OAuth重定向URI
  • OAUTH_SCOPE: OAuth授权范围(默认值:odps.readonly)

配置示例

# 在 .env 文件中配置
MAXCOMPUTE_PROJECT_NAME=your_project_name
MAXCOMPUTE_SCHEMA_NAME=default
MAXCOMPUTE_BASE_URL=https://maxcompute.cn-hangzhou.aliyuncs.com

# OAuth认证配置(可选)
OAUTH_CLIENT_ID=your_oauth_client_id
OAUTH_CLIENT_SECRET=your_oauth_client_secret
OAUTH_REDIRECT_URI=your_redirect_uri
OAUTH_SCOPE=odps.readonly

或者在命令行中设置:

export MAXCOMPUTE_PROJECT_NAME=your_project_name
export MAXCOMPUTE_SCHEMA_NAME=default
export MAXCOMPUTE_BASE_URL=https://maxcompute.cn-hangzhou.aliyuncs.com

# OAuth认证配置(可选)
export OAUTH_CLIENT_ID=your_oauth_client_id
export OAUTH_CLIENT_SECRET=your_oauth_client_secret
export OAUTH_REDIRECT_URI=your_redirect_uri
export OAUTH_SCOPE=odps.readonly

使用方法

获取表信息

# 使用全局配置获取表信息
result = await get_table_info(['table1', 'table2'])

API功能

  • 并发请求: 支持同时获取多个表的信息,提高查询效率
  • 完整信息: 返回表的完整信息,包括字段、分区、DDL等
  • 错误处理: 详细的错误信息和日志记录
  • JSON格式: 返回结构化的JSON数据

返回数据格式

{
  "success": [
    {
      "tableName": "表名",
      "projectName": "项目名",
      "schema": "schema名",
      "owner": "所有者",
      "type": "表类型",
      "creationTime": "创建时间",
      "lastModifiedTime": "最后修改时间",
      "lifecycle": "生命周期",
      "comment": "表注释",
      "createTableDDL": "建表DDL",
      "columns": [
        {
          "name": "字段名",
          "type": "字段类型",
          "comment": "字段注释",
          "isNullable": true
        }
      ],
      "partitionColumns": [
        {
          "name": "分区字段名",
          "type": "分区字段类型",
          "comment": "分区字段注释",
          "isNullable": false
        }
      ]
    }
  ],
  "failed": [
    {
      "tableName": "失败的表名",
      "error": "错误信息"
    }
  ]
}

🧪 测试

项目包含完整的集成测试客户端,用于验证所有功能:

运行测试

# 进入测试客户端目录
cd client

# 运行所有测试
python run_test.py

测试内容

  • ✅ get_table_info 工具功能测试
  • ✅ execute_sql 工具功能测试(开发中)
  • ✅ OAuth环境变量 配置测试
  • ✅ MCP连接 和通信测试

测试客户端使用Mock数据,无需真实的MaxCompute环境即可完成功能验证。详细说明请参考 client/README.md。

开发

项目结构

mcp_for_odps/
├── application.py          # MCP工具主文件
├── component/
│   ├── __init__.py        # 组件导出
│   ├── token_manager.py   # OAuth认证管理
│   └── get_table_info.py  # 表信息获取API
├── client/                 # 测试客户端
│   ├── mcp_client.py      # 主测试客户端
│   ├── run_test.py        # 测试运行脚本
│   ├── config.json        # Mock数据配置
│   ├── test_config.env    # 测试环境变量
│   └── README.md          # 测试说明文档
├── main.py
├── pyproject.toml
└── README.md

依赖

  • httpx: HTTP客户端
  • mcp[cli]: MCP框架
  • openai: OpenAI客户端

注意事项

  1. 确保设置了正确的环境变量
  2. MaxCompute项目需要有相应的访问权限
  3. 网络环境需要能够访问MaxCompute API
  4. 建议在生产环境中使用适当的日志级别

Metadata

Release files for mcp-for-odps 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-for-odps 0.1.3
File Size Uploaded Provenance
mcp_for_odps-0.1.3.tar.gz 11.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-for-odps 0.1.3
File Interpreter ABI Platform
mcp_for_odps-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 24.1 kB

Release files / mcp_for_odps-0.1.3.tar.gz

Download URL mcp_for_odps-0.1.3.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
80ad3dac13262725d2969a06f09671a4f288bcbc056287ec811ca76462660def
BLAKE2b-256 checksum
How to use checksums
1fcb81bc463967b2b771837fda67a63e9c8ce6fc817ddb18558b5adb83791222
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / mcp_for_odps-0.1.3-py3-none-any.whl

Download URL mcp_for_odps-0.1.3-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9652f6b7e620a1f267e36dc150e596cca2a0ff0cb0e29ff05a32b172d824839f
BLAKE2b-256 checksum
How to use checksums
1317b8fdfef177d0e6de398bcf2f90712412d051c29952bf7deab4f459ff6652
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for mcp-for-odps 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page