Skip to main content
Glama
XiangXi011

ODPS MCP Server

by XiangXi011

ODPS MCP Server

MCP-сервер с правами только на чтение для Alibaba Cloud MaxCompute.

Режим ASGI

Используйте create_app() для HTTP-сервера. Приложение предоставляет GET /health, монтирует стандартное HTTP-приложение MCP Streamable по адресу /mcp и сохраняет / в качестве пути совместимости для старых клиентов.

Пример:

uvicorn odps_mcp_server.server:create_app --factory

Конечные точки:

  • Стандартная конечная точка MCP: http://<host>:<port>/mcp

  • Конечная точка совместимости MCP: http://<host>:<port>/

  • Проверка работоспособности: http://<host>:<port>/health

Этот сервис предоставляет удаленную конечную точку MCP через streamable-http, чтобы внутренний агент мог безопасно запрашивать разрешенные таблицы MaxCompute.

Окружение

Установите следующие переменные окружения перед запуском сервера:

  • 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 .

Файл политики

Файл списка разрешенных объектов контролирует, к каким проектам и таблицам MaxCompute может обращаться MCP-сервер. Пример:

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

default_limit: 100
max_limit: 200

Запуск MCP-сервера

Запустите сервер с помощью:

python -m odps_mcp_server.server

Сервер настроен на запуск транспорта MCP в режиме streamable-http.

Для локальной разработки в 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