Skip to main content
Glama
XiangXi011

ODPS MCP Server

by XiangXi011

ODPS MCP 서버

Alibaba Cloud MaxCompute를 위한 읽기 전용 MCP 서버입니다.

ASGI 모드

HTTP 서버에는 create_app()을 사용하세요. 이 앱은 GET /health를 노출하고, /mcp에 표준 MCP Streamable HTTP 앱을 마운트하며, 이전 호출자를 위한 호환성 경로로 /를 유지합니다.

예시:

uvicorn odps_mcp_server.server:create_app --factory

엔드포인트:

  • 표준 MCP 엔드포인트: http://<host>:<port>/mcp

  • 호환성 MCP 엔드포인트: http://<host>:<port>/

  • 상태 확인: http://<host>:<port>/health

이 서비스는 내부 에이전트가 허용된 MaxCompute 테이블을 안전하게 쿼리할 수 있도록 streamable-http를 통해 원격 MCP 엔드포인트를 노출합니다.

환경

서버를 실행하기 전에 다음 환경 변수를 설정하세요:

  • ALIBABA_CLOUD_ACCESS_KEY_ID

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET

  • ODPS_ENDPOINT

  • ODPS_PROJECT

  • ODPS_ALLOWLIST_PATH

ODPS_ALLOWLIST_PATH는 정책 파일을 가리켜야 합니다. config/allowlist.example.yaml로 시작하여 샘플 프로젝트 및 테이블 이름을 승인된 허용 목록으로 바꾸세요.

로컬 원클릭 시작 흐름을 원하시면 .env.local.example.env.local로 복사하고 ODPS 자격 증명을 입력하세요. 이 파일은 git에서 무시됩니다.

로컬 설정

가상 환경에 종속성을 설치하세요:

python -m venv .venv
.venv\Scripts\activate
pip install -e .

uv를 선호하는 경우, 동일한 흐름은 다음과 같습니다:

uv venv
uv pip install -e .

정책 파일

허용 목록 파일은 MCP 서버가 액세스할 수 있는 MaxCompute 프로젝트와 테이블을 제어합니다. 예시:

projects:
  analytics:
    tables:
      sales_orders:
        allowed_columns:
          - order_id
          - order_date

default_limit: 100
max_limit: 200

MCP 서버 실행

다음 명령어로 서버를 실행하세요:

python -m odps_mcp_server.server

서버는 streamable-http 모드에서 MCP 전송을 시작하도록 구성되어 있습니다.

Windows에서의 로컬 개발을 위해 다음을 사용할 수도 있습니다:

.\scripts\start-local-mcp.ps1

.env.local 기반의 원클릭 시작 흐름을 선호하는 경우 다음을 사용하세요:

.\scripts\start-local-mcp-oneclick.ps1

내부 에이전트 통합

내부 에이전트는 표준 MCP 엔드포인트 http://<host>:<port>/mcp에 연결해야 합니다. 루트 경로 /는 하위 호환성을 위해서만 유지됩니다. 이 서비스는 다음 도구를 노출합니다:

  • list_allowed_tables

  • describe_table

  • preview_table

  • run_select_sql

권장 에이전트 흐름:

  1. 허용된 테이블 목록을 가져옵니다.

  2. 선택한 테이블의 스키마를 읽습니다.

  3. 필요한 경우 행을 미리 봅니다.

  4. 허용된 테이블에 대해 필터링된 SELECT 쿼리를 실행합니다.

수동 스모크 테스트

scripts/manual_smoke_test.py를 사용하여 비운영 MaxCompute 프로젝트에 대한 연결 및 정책 동작을 검증하세요.

예시:

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"

허용 목록 및 행 제한이 검토되기 전까지는 스모크 테스트를 운영 전용 프로젝트에 지정하지 마세요.

F
license - not found
-
quality - not tested
C
maintenance

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