Vast Storage MCP Server

Um servidor MCP (Model Context Protocol) que permite que LLMs interajam com as APIs de armazenamento da VAST Data. Este servidor expõe endpoints de gerenciamento da VAST Data como ferramentas para gerenciamento e automação abrangentes da infraestrutura de armazenamento.

Documentação

Servidor MCP VAST

Um servidor MCP (Model Context Protocol) que permite que LLMs interajam com as APIs de armazenamento da VAST Data. Este servidor expõe os endpoints de gerenciamento da VAST Data como ferramentas para gerenciamento abrangente e automação da infraestrutura de armazenamento.

Visão Geral

Este projeto implementa um servidor MCP (Model Context Protocol) para a API de armazenamento da VAST Data, permitindo que LLMs como GitHub Copilot e Claude interajam com a infraestrutura de armazenamento VAST por meio de comandos em linguagem natural.

Arquitetura

  • TypeScript para implementação com segurança de tipos
  • @modelcontextprotocol/sdk para manipulação do protocolo MCP
  • Axios para comunicação HTTP/REST API
  • Winston para registro de logs (para stderr para evitar corrupção do protocolo)
  • Especificação OpenAPI 3.0 para geração automática de ferramentas

Recursos

Gerenciamento de Armazenamento

  • Views (4 ferramentas): Visualizações de sistemas de arquivos NFS, SMB e S3
  • Quotas (4 ferramentas): Quotas de diretório e usuário com limites rígidos/flexíveis

Rede e Infraestrutura

  • VIP Pools (4 ferramentas): Gerenciamento de pools de IP virtual
  • Clusters (2 ferramentas): Monitoramento e status do cluster
  • Nodes (2 ferramentas): Informações e saúde dos nós do cluster

Proteção de Dados

  • Protected Paths (3 ferramentas): Configuração de proteção de dados e replicação
  • Snapshots (4 ferramentas): Criação de snapshots e gerenciamento do ciclo de vida

Gerenciamento de Acesso

  • Users (4 ferramentas): Gerenciamento de contas de usuário
  • Tenants (4 ferramentas): Configuração de multi-tenancy

Monitoramento e Observabilidade

  • Alarms (4 ferramentas): Monitoramento, reconhecimento e gerenciamento de alarmes
  • Events (2 ferramentas): Consulta e filtragem de logs de eventos
  • Analytics (2 ferramentas): Análises de desempenho e capacidade com dados de séries temporais

Pré-requisitos

  • Node.js 18+ instalado
  • VSCode com GitHub Copilot ou Claude Desktop
  • Cluster VAST Data com acesso à API
  • Credenciais da API VAST (nome de usuário e senha)

Instalação

Passo 1: Build

npm install
npm run build

Passo 2: Configurar o Ambiente

Opção A: Configuração Interativa (Recomendada)

node setup.js

Opção B: Configuração Manual

cp .env.example .env
# Edit .env with your VAST cluster details

Variáveis de ambiente necessárias:

VAST_API_BASE_URL=https://your-vast-cluster.example.com
VAST_API_USERNAME=your-username
VAST_API_PASSWORD=your-password
VAST_SSL_VERIFY=false
LOG_LEVEL=info

Passo 3: Configurar o Cliente LLM

Para VSCode com GitHub Copilot

  1. Abra as Configurações do VSCode: Cmd+Shift+P → "Preferences: Open User Settings (JSON)"

  2. Adicione esta configuração ao seu settings.json:

{
  "github.copilot.chat.mcp.servers": {
    "vast": {
      "command": "node",
      "args": ["/path/to/vast_MCP/dist/main.js"],
      "env": {
        "VAST_API_BASE_URL": "https://your-vast-cluster.example.com",
        "VAST_API_USERNAME": "your-username",
        "VAST_API_PASSWORD": "your-password",
        "LOG_LEVEL": "info"
      }
    }
  }
}
  1. Recarregue o VS Code: Cmd+Shift+P → "Developer: Reload Window"

Para Claude Desktop

  1. Localize o arquivo de configuração do Claude Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Adicione esta configuração ao claude_desktop_config.json:

{
  "mcpServers": {
    "vast": {
      "command": "node",
      "args": ["/path/to/vast_MCP/dist/main.js"],
      "env": {
        "VAST_API_BASE_URL": "https://your-vast-cluster.example.com",
        "VAST_API_USERNAME": "your-username",
        "VAST_API_PASSWORD": "your-password",
        "LOG_LEVEL": "info"
      }
    }
  }
}
  1. Reinicie o aplicativo Claude Desktop

Ferramentas Disponíveis

O servidor MCP gera automaticamente ferramentas a partir da especificação da API VAST:

📁 Gerenciamento de Views (4 ferramentas)

  • viewsGetAll - Listar todas as visualizações de sistemas de arquivos
  • viewsGetById - Obter detalhes de uma visualização específica
  • viewsCreate - Criar novas visualizações de sistemas de arquivos (NFS, SMB, S3)
  • viewsUpdate - Atualizar configuração de visualização
  • viewsDelete - Excluir uma visualização

📊 Gerenciamento de Quotas (4 ferramentas)

  • quotasGetAll - Listar todas as quotas
  • quotasGetById - Obter detalhes de uma quota específica
  • quotasCreate - Criar novas quotas com limites rígidos/flexíveis
  • quotasUpdate - Atualizar configuração de quota
  • quotasDelete - Excluir uma quota

🌐 Gerenciamento de Rede (4 ferramentas)

  • vippoolsGetAll - Listar todos os VIP pools
  • vippoolsGetById - Obter detalhes de um VIP pool específico
  • vippoolsCreate - Criar novos VIP pools
  • vippoolsUpdate - Atualizar configuração de VIP pool
  • vippoolsDelete - Excluir um VIP pool

🖥️ Gerenciamento de Cluster (4 ferramentas)

  • clustersGetAll - Listar todos os clusters
  • clustersGetById - Obter detalhes do cluster
  • cnodesGetAll - Listar todos os nós do cluster
  • cnodesGetById - Obter detalhes e status do nó

🛡️ Proteção de Dados (4 ferramentas)

  • protectedPathsGetAll - Listar todos os caminhos protegidos
  • protectedPathsGetById - Obter detalhes do caminho protegido
  • protectedPathsCreate - Criar novos caminhos protegidos
  • protectedPathsDelete - Excluir caminho protegido

📸 Snapshots (4 ferramentas)

  • snapshotsGetAll - Listar todos os snapshots
  • snapshotsGetById - Obter detalhes do snapshot
  • snapshotsCreate - Criar novos snapshots
  • snapshotsDelete - Excluir um snapshot

👥 Gerenciamento de Usuários (4 ferramentas)

  • usersGetAll - Listar todos os usuários
  • usersGetById - Obter detalhes do usuário
  • usersCreate - Criar novos usuários
  • usersUpdate - Atualizar configuração do usuário
  • usersDelete - Excluir um usuário

🏢 Gerenciamento de Tenants (4 ferramentas)

  • tenantsGetAll - Listar todos os tenants
  • tenantsGetById - Obter detalhes do tenant
  • tenantsCreate - Criar novos tenants
  • tenantsUpdate - Atualizar configuração do tenant
  • tenantsDelete - Excluir um tenant

🚨 Gerenciamento de Alarmes (4 ferramentas)

  • alarmsGetAll - Listar todos os alarmes com filtragem por severidade, estado e categoria
  • alarmsGetById - Obter detalhes de um alarme específico
  • alarmsUpdate - Atualizar estado do alarme (reconhecer ou limpar alarmes)
  • alarmsDelete - Excluir um alarme

📋 Gerenciamento de Eventos (2 ferramentas)

  • eventsGetAll - Listar todos os eventos com filtragem por tipo, severidade, intervalo de tempo e categoria
  • eventsGetById - Obter detalhes de um evento específico

📊 Analytics (2 ferramentas)

  • analyticsGetAll - Listar métricas de análise com filtragem por tipo de métrica, intervalo de tempo e intervalo
  • analyticsGetById - Obter dados de análise específicos por ID

## Advanced Configuration

### Using with Multiple VAST Clusters

Configure multiple server instances in your LLM client:

```json
{
  "mcpServers": {
    "vast-prod": {
      "command": "node",
      "args": ["/path/to/vast_MCP/dist/main.js"],
      "env": {
        "VAST_API_BASE_URL": "https://prod-cluster.example.com",
        ...
      }
    },
    "vast-dev": {
      "command": "node",
      "args": ["/path/to/vast_MCP/dist/main.js"],
      "env": {
        "VAST_API_BASE_URL": "https://dev-cluster.example.com",
        ...
      }
    }
  }
}

Especificação OpenAPI Personalizada

Para usar uma especificação de API VAST personalizada ou estendida:

# In .env or client config
OPENAPI_SPEC_PATH=/path/to/custom_vast_spec.json

Referências