Skip to main content
Glama
XiangXi011

ODPS MCP Server

by XiangXi011

ODPS MCP-Server

Schreibgeschützter MCP-Server für Alibaba Cloud MaxCompute.

ASGI-Modus

Verwenden Sie create_app() für den HTTP-Server. Die App stellt GET /health bereit, bindet die standardmäßige MCP Streamable HTTP-App unter /mcp ein und behält / als Kompatibilitätspfad für ältere Aufrufer bei.

Beispiel:

uvicorn odps_mcp_server.server:create_app --factory

Endpunkte:

  • Standard-MCP-Endpunkt: http://<host>:<port>/mcp

  • Kompatibilitäts-MCP-Endpunkt: http://<host>:<port>/

  • Gesundheitsprüfung: http://<host>:<port>/health

Dieser Dienst stellt einen Remote-MCP-Endpunkt über streamable-http bereit, sodass ein interner Agent sicher MaxCompute-Tabellen auf der Zulassungsliste abfragen kann.

Umgebung

Setzen Sie diese Umgebungsvariablen, bevor Sie den Server starten:

  • ALIBABA_CLOUD_ACCESS_KEY_ID

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET

  • ODPS_ENDPOINT

  • ODPS_PROJECT

  • ODPS_ALLOWLIST_PATH

ODPS_ALLOWLIST_PATH sollte auf Ihre Richtliniendatei verweisen. Beginnen Sie mit config/allowlist.example.yaml und ersetzen Sie die Beispielprojekt- und Tabellennamen durch Ihre genehmigte Zulassungsliste.

Wenn Sie einen lokalen One-Click-Startablauf wünschen, kopieren Sie .env.local.example nach .env.local und geben Sie Ihre ODPS-Anmeldedaten ein. Die Datei wird von git ignoriert.

Lokale Einrichtung

Installieren Sie die Abhängigkeiten in einer virtuellen Umgebung:

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

Wenn Sie uv bevorzugen, ist der entsprechende Ablauf:

uv venv
uv pip install -e .

Richtliniendatei

Die Zulassungslistendatei steuert, auf welche MaxCompute-Projekte und -Tabellen der MCP-Server zugreifen kann. Beispiel:

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

default_limit: 100
max_limit: 200

Den MCP-Server ausführen

Starten Sie den Server mit:

python -m odps_mcp_server.server

Der Server ist so konfiguriert, dass der MCP-Transport im streamable-http-Modus gestartet wird.

Für die lokale Entwicklung unter Windows können Sie auch Folgendes verwenden:

.\scripts\start-local-mcp.ps1

Wenn Sie einen One-Click-Startablauf bevorzugen, der auf .env.local basiert, verwenden Sie:

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

Integration interner Agenten

Ihr interner Agent sollte eine Verbindung zum Standard-MCP-Endpunkt http://<host>:<port>/mcp herstellen. Der Stammpfad / bleibt nur aus Gründen der Abwärtskompatibilität verfügbar. Der Dienst stellt diese Tools bereit:

  • list_allowed_tables

  • describe_table

  • preview_table

  • run_select_sql

Empfohlener Agent-Ablauf:

  1. Zulässige Tabellen auflisten.

  2. Das Schema für eine ausgewählte Tabelle lesen.

  3. Zeilen bei Bedarf in der Vorschau anzeigen.

  4. Eine gefilterte SELECT-Abfrage gegen die Tabelle auf der Zulassungsliste ausführen.

Manueller Rauchtest

Verwenden Sie scripts/manual_smoke_test.py, um die Konnektivität und das Richtlinienverhalten gegenüber einem Nicht-Produktions-MaxCompute-Projekt zu validieren.

Beispiele:

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"

Verweisen Sie den Rauchtest nicht auf ein reines Produktionsprojekt, bevor die Zulassungsliste und die Zeilenbeschränkungen überprüft wurden.

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