ODPS MCP Server
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_IDALIBABA_CLOUD_ACCESS_KEY_SECRETODPS_ENDPOINTODPS_PROJECTODPS_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_tablesdescribe_tablepreview_tablerun_select_sql
Рекомендуемый порядок работы агента:
Получить список разрешенных таблиц.
Прочитать схему выбранной таблицы.
Предварительно просмотреть строки, если необходимо.
Выполнить отфильтрованный запрос
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"Не направляйте дымовой тест на рабочий проект, пока не будут проверены список разрешенных объектов и ограничения на количество строк.
This server cannot be installed
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