VASTOps MCP Server
VASTOps MCP Server
VASTOps MCP Server — это сервер протокола Model Context Protocol (MCP) для задач администрирования VAST Data. Он предоставляет ИИ-ассистентам инструменты для взаимодействия с кластерами VAST для выполнения операций мониторинга, перечисления и управления. Поддерживается как для администраторов кластеров, так и для администраторов арендаторов.
Возможности
Интеграция с MCP: Полная реализация MCP-сервера для интеграции с ИИ-ассистентами
Управление кластером: Перечисление и мониторинг кластеров VAST
Метрики производительности: Получение данных о производительности объектов кластера и генерация графиков
Функции динамического списка: Автоматическая генерация функций MCP из YAML-шаблонов для внесения изменений конечными пользователями
Безопасные учетные данные: Безопасное хранение паролей с использованием keyring
Режимы «только чтение» и «чтение-запись»: Контроль уровня доступа (режим «чтение-запись» для операций создания)
Related MCP server: MCP Server Kubernetes
Быстрый старт
1. Установка
Установите vastops-mcp:
# If installed via pip
pip install vastops-mcp
2. Первоначальная настройка
Настройте подключение к вашему кластеру VAST:
# If installed via pip
vastops-mcp setup
This will prompt you for:
- Cluster address (IP, FQDN, or URL like `https://host:port`)
- Username and password
- Tenant (for tenant admins)
- Tenant (for super admins - which tenant context to use)3. Настройка MCP-сервера в вашем ИИ-ассистенте
Используйте mcpsetup для получения инструкций для популярных инструментов ИИ-ассистентов:
# create the syntax for popular ai assistances (currently has builtin support for cursor,claude-desktop,windsurf,vscode)
vastops-mcp mcpsetup vscode
🔧 Configuring MCP server for: vscode
Detected command: vastops-mcp
Detected args: ['mcp']
📋 VSCode Configuration Instructions
Config file location: /Users/user/.vscode/mcp.json
Create a new file if not exists, or add the VASTOps MCP entry to the existing 'servers' section:
{
"servers": {
"VASTOps MCP": {
"command": "vastops-mcp",
"args": [
"mcp"
]
}
}
}
📝 Next steps:
1. Edit or create the config file at the location shown above
2. Restart VSCode
3. The MCP server should be available in VSCode's MCP tools
4. Test by asking VSCode to list VAST clusters** Добавьте флаг --read-write в качестве второго аргумента, чтобы иметь возможность вносить изменения в кластеры VAST
Примеры промптов
Для режима «только чтение»
List all VAST clusters
List all views on cluster cluster1
Show me all tenants across all clusters
Create bandwidth and iops graph for cluster1 over the last hour
create dataflow diagram for cluster1 for /path view on the tenant3 tenant for the last hour
show me dataflow diagram for 172.21.224.139 on cluster1
Show me the hardware topology for cluster cluster1
Are there any issues with my configured data protection relationships ?
Create mini support bundle on cluster1 and name it bundle1. Timeframe should be yesterday at midnight for 4m. Generate it only for cnodes prefixed by cnode-128 and upload it to support without private data.
Find all users prefixed with "s3" on cluster cluster1 tenant tenant1
Are there any critical alerts on my clusters that were not acknoledged ?
List all snapshots for view path /data/app1 on cluster cluster1 tenant tenant1
Show me all quotas configured for tenant tenant1 on cluster cluster1
Get performance metrics for cnodes on cluster cluster1 over the last 7 day
Show me all view policies on cluster cluster1 that support S3
First, get all available clusters. Then compare views with path "/" across all clusters, showing capcity information
Show me all tenants on cluster cluster1, for each tenant show me the 5 views with the highest used capacity
Get performance metrics for cluster cluster1, then get metrics for all cnodes, and finally get metrics for top 3 views. Show me a summary of IOPS and bandwidth for each object type
Find all views where logical used capacity is greater than 1TB. For each of these views, get their performance metrics over the last 24 hours and show which views have the highest IOPSДля режима «чтение-запись»
Create a new NFS view on cluster cluster1 with path /data/newview in tenant tenant1
Create a view on cluster cluster1 with path /shared/data in tenant tenant1 that supports both NFS and S3 protocols
Create a snapshot named "backup-2024-01-15" for view path /data/app1 on cluster cluster1, tenant tenant1 and keep it for 24h
Create a clone from snapshot "backup-2024-01-15" of view /data/app1. The clone should be at path /data/app1-clone in tenant tenant1 on cluster cluster1
Set a hard quota of 10TB for view path /data/app1 on cluster cluster1, tenant tenant1
Create 3 new views for vmware based on template.
Create a indestructible snapshot named resrote-point_<view name> for all vmware views on cluster1
Refresh a clone from most recent snapshot of view /data/app1 at path /data/app1-clone in tenant tenant1 on cluster cluster1Установка
Предварительные требования
Python 3.10+
jq: Процессор JSON командной строки (требуется для преобразования полей в YAML-шаблонах)
Установка jq
macOS:
brew install jqLinux (Ubuntu/Debian):
sudo apt-get install jqLinux (RHEL/CentOS):
sudo yum install jqБазовая установка
pip install vastops-mcpДля получения пошагового руководства (предварительные требования, vastops-mcp setup, интеграция в Claude Desktop / Claude Code, дымовые тесты) см. docs/user-guide/installation.md.
CLI
Вы можете протестировать функции:
Список доступных команд
vastops-mcp list
# Or
./vastops-mcp.sh listВыполнение динамической команды
# List views
vastops-mcp list views --cluster vast3115-var
# List tenants with JSON output
vastops-mcp list tenants --format json
# List views with filters
vastops-mcp list views --cluster cluster1 --tenant mytenant
# Save output to file
vastops-mcp list views --cluster cluster1 --output views.csv --format csvСтатические команды
# List clusters
vastops-mcp clusters
# List performance metrics
vastops-mcp performance --object-name tenant --cluster vast3115-var
# Query users
vastops-mcp query-users --cluster vast3115-var --prefix userКоманды создания
# Create a view
vastops-mcp create view --cluster cluster1 --path /myview --protocols NFS
# Create a view from template
vastops-mcp create view-from-template --cluster cluster1 --template-name mytemplate
# Create a snapshot
vastops-mcp create snapshot --cluster cluster1 --path /myview --name mysnapshot
# Create a clone
vastops-mcp create clone --cluster cluster1 --source-path /myview --source-snapshot mysnapshot --destination-path /myclone
# Create or update quota
vastops-mcp create quota --cluster cluster1 --path /myview --hard-limit 10GBФорматы вывода
table(по умолчанию): Удобочитаемый табличный форматjson: Вывод в формате JSONcsv: Формат CSV
Инструменты MCP
Инструменты статического списка
list_clusters_vast: Получение информации о кластерах VAST, их статусе, емкости и использовании
list_performance_vast: Получение метрик производительности для объектов кластера VAST
query_users_vast: Запрос имен пользователей из кластера VAST
Инструменты динамического списка
Дополнительные инструменты списка автоматически регистрируются из файла YAML-шаблона, расположенного по адресу ~/.vastops-mcp/mcp_list_cmds_template.yaml. Эти инструменты следуют шаблону именования list_{command_name}_vast.
Примечание: Команды с параметром create_mcp_tool: false в YAML-шаблоне не будут зарегистрированы как отдельные инструменты MCP. Их по-прежнему можно использовать в объединенных командах и через CLI, но они не будут отображаться в списке инструментов MCP.
Инструменты создания
Следующие инструменты создания доступны, когда MCP-сервер запущен с флагом --read-write:
create_view_vast: Создание нового представления (view) VAST
create_view_from_template_vast: Создание представлений на основе предопределенного шаблона
create_snapshot_vast: Создание снимка (snapshot) для представления VAST
create_clone_vast: Создание клона из снимка
create_quota_vast: Создание или обновление квоты для определенного пути и арендатора
Примечание: Инструменты создания всегда зарегистрированы (видны LLM), но вызовут ошибку, если будут вызваны, когда сервер не находится в режиме «чтение-запись».
Конфигурация
Файл конфигурации:
~/.vastops-mcp/config.json(конфигурации кластера, без переопределения через переменные окружения)Файл шаблона по умолчанию:
mcp_list_cmds_template.yamlв корне проекта (поставляемый шаблон)Файл модификаций шаблона:
~/.vastops-mcp/mcp_list_template_modifications.yaml(пользовательские настройки)Файл шаблонов представлений:
~/.vastops-mcp/view_templates.json(для создания на основе шаблонов представлений). Этот файл можно изменить на основе примера шаблонаview_templates_example.yamlв корне проекта (поставляемый шаблон)Файлы журналов:
~/.vastops-mcp/vastops_mcp.log
Переменные окружения
Пути к файлам шаблонов
Пути к файлам шаблонов можно переопределить с помощью переменных окружения:
VASTOPS_MCP_DEFAULT_TEMPLATE_FILE: Переопределить путь к файлу шаблона по умолчаниюVASTOPS_MCP_TEMPLATE_MODIFICATIONS_FILE: Переопределить путь к файлу модификаций шаблонаVASTOPS_MCP_VIEW_TEMPLATE_FILE: Переопределить путь к файлу шаблонов представлений
Пример:
export VASTOPS_MCP_DEFAULT_TEMPLATE_FILE=/custom/path/default_template.yaml
export VASTOPS_MCP_TEMPLATE_MODIFICATIONS_FILE=/custom/path/modifications.yaml
export VASTOPS_MCP_VIEW_TEMPLATE_FILE=/custom/path/view_templates.json
vastops-mcp list viewsКонфигурация прокси
Сервер поддерживает прокси HTTP/HTTPS и SOCKS для доступа к кластерам VAST через корпоративные или корпоративные сетевые среды. Прокси настраиваются с помощью стандартных переменных окружения:
HTTPS_PROXYилиhttps_proxy— наивысший приоритет (рекомендуется для VAST, так как API использует HTTPS)HTTP_PROXYилиhttp_proxy— резервный вариантALL_PROXYилиall_proxy— универсальный, рекомендуется для прокси SOCKS
Обход прокси (NO_PROXY):
Используйте NO_PROXY (или no_proxy), чтобы перечислить хосты, которые должны подключаться напрямую, без использования прокси. Разделяйте несколько записей запятыми. Подстановочный знак * обходит прокси для всех хостов.
# Skip proxy for internal VAST clusters
export NO_PROXY=vast-cluster1.internal,10.0.0.5Примеры прокси HTTP/HTTPS:
# Basic HTTP proxy
export HTTPS_PROXY=http://proxy.example.com:8080
# Proxy with authentication
export HTTPS_PROXY=http://username:password@proxy.example.com:8080
# Run commands as normal — proxy is picked up automatically
vastops-mcp clusters
vastops-mcp list views --cluster cluster1Поддержка прокси SOCKS:
Прокси SOCKS (SOCKS4, SOCKS4a, SOCKS5, SOCKS5h) поддерживаются, но требуют дополнительной библиотеки PySocks:
# Install PySocks for SOCKS proxy support
pip install 'vastops-mcp[socks]'
# — or directly —
pip install pysocks
# SOCKS5 proxy (client-side DNS resolution)
export ALL_PROXY=socks5://proxy.example.com:1080
# SOCKS5h proxy (remote DNS resolution — recommended for internal hostnames)
export ALL_PROXY=socks5h://proxy.example.com:1080
# SOCKS5 with authentication
export ALL_PROXY=socks5h://username:password@proxy.example.com:1080
# SOCKS4 proxy
export ALL_PROXY=socks4://proxy.example.com:1080Краткий обзор типов прокси:
Тип | Описание | Переменная окружения | Зависимость |
HTTP/HTTPS | Стандартные корпоративные прокси |
| Встроено |
SOCKS5 | SOCKS5 с DNS на стороне клиента |
| PySocks |
SOCKS5h | SOCKS5 с удаленным DNS (рекомендуется для конфиденциальности) |
| PySocks |
SOCKS4 | Устаревший протокол SOCKS4 |
| PySocks |
SOCKS4a | SOCKS4 с удаленным DNS |
| PySocks |
Примечание: Любая переменная окружения прокси будет работать с любым типом прокси, но использование
ALL_PROXYдля прокси SOCKS соответствует стандартным соглашениям и делает вашу конфигурацию понятной.
Белый список API
Белый список API обеспечивает безопасность, ограничивая доступ к конечным точкам API VAST и методам HTTP. Он настраивается в разделе api_whitelist файла YAML-шаблона.
Поведение по умолчанию
Простой формат (
- views): По умолчанию только GETС методами (
- views: [post]): Разрешает GET + указанные методыПример:
- views: [post]включает как GET, так и POST для конечной точки viewsПример:
- quotas: [post, patch]включает GET, POST и PATCH для конечной точки quotas
Конфигурация
Белый список определяется в файле YAML-шаблона:
api_whitelist:
# Simple format - GET only
- clusters
- tenants
# With methods - GET + specified methods
- views: [post] # GET + POST for create operations
- snapshots: [post] # GET + POST for create operations
- quotas: [post, patch] # GET + POST + PATCH for create/update operationsМодель безопасности
Ограничительный по умолчанию: Если конечная точка отсутствует в белом списке, доступ к ней запрещен
Проверка методов: Разрешены только указанные методы HTTP
Поддержка под-конечных точек: Если родительская конечная точка внесена в белый список (например,
monitors), все под-конечные точки разрешены (например,monitors.ad_hoc_query)
Почему это важно
Все вызовы API проверяются по белому списку. Это гарантирует:
Доступ возможен только к одобренным конечным точкам
Можно использовать только одобренные методы HTTP
Операции создания требуют явной настройки белого списка (например,
- views: [post])
Структура YAML-шаблона
Файл YAML-шаблона определяет функции динамического списка. Полную документацию см. в TEMPLATE_STRUCTURE.md.
Каждая команда в файле YAML определяет:
api_endpoints: Какие конечные точки API VAST вызывать
per_row_endpoints (необязательно): Конечные точки, вызываемые для каждой строки в базовом наборе данных, с параметрами запроса, полученными из данных строки с использованием синтаксиса
$field_namefields: Поля вывода с преобразованиями (jq, преобразование единиц измерения, сводки)
arguments: Параметры инструмента MCP с проверкой
description: Описание инструмента для контекста MCP
Подробные примеры и лучшие практики см. в TEMPLATE_STRUCTURE.md.
Архитектура
Сервер использует:
fastmcp: Фреймворк сервера MCP
vastpy: Клиент API VAST
template_parser: Парсинг YAML-шаблонов
command_executor: Выполнение динамических команд
jq: Системный инструмент командной строки для преобразований JSON (требуется для выражений jq в YAML-шаблонах)
Функции создания
Сервер включает функции создания для создания объектов VAST. Эти функции доступны, когда MCP-сервер запущен с флагом --read-write:
create_view_vast: Создание нового представления VAST
create_view_from_template_vast: Создание представлений на основе предопределенного шаблона
create_snapshot_vast: Создание снимка для представления VAST
create_clone_vast: Создание клона из снимка
create_quota_vast: Создание или обновление квоты для определенного пути и арендатора
Важно: Функции создания требуют, чтобы MCP-сервер был запущен с флагом --read-write. Если они будут вызваны в режиме «только чтение», пользователь LLM получит уведомление о том, что требуется режим «чтение-запись».
Безопасность: Все функции создания используют белый список API, чтобы гарантировать доступ только к разрешенным конечным точкам и методам HTTP. Подробности см. в разделе Белый список API.
Сообщество и поддержка
VASTOps MCP Server приветствует вопросы, отзывы и запросы на добавление функций. Присоединяйтесь к обсуждению на https://community.vastdata.com/
Лицензия
Apache License 2.0
Подробности см. в файле LICENSE.
Автор
Haim Marko haim.marko@vastdata.com
This server cannot be deployed
Maintenance
Related MCP Connectors
- HAVNOAuthapp.havnre
Read-only AI access to HAVN properties, leads, tasks, files, media, and analytics.
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
- FullmaktOAuthai.fullmakt
Credential broker for AI agents: scoped, revocable API access with policy enforcement and audit.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to Kubernetes clusters for AI assistants.23MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive Kubernetes cluster management through kubectl operations, Helm chart deployments, pod troubleshooting, and node management. Supports both read-only and full cluster administration capabilities with built-in safety features.8,720 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Databricks workspaces programmatically, providing comprehensive tools for cluster management, notebook operations, job orchestration, Unity Catalog data governance, user management, permissions control, and FinOps cost analytics.534 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to securely query VAST Data databases for schema, metadata, and sample data via read-only SQL and MCP resources.MIT