VAST MCP服务器
MCP(模型上下文协议)服务器,使LLM能够与VAST数据存储API交互。此服务器将VAST数据管理端点作为全面存储基础架构管理和自动化的工具。
概述
该项目为VAST数据存储API实现了一个模型上下文协议(MCP)服务器,允许像GitHub Copilot和Claude这样的LLM通过自然语言命令与VAST存储基础设施交互。
建筑
- TypeScript 用于类型安全实施
- @模型上下文协议/sdk 用于MCP协议处理
- 阿西奥斯 用于HTTP/REST API通信
- 温斯顿 用于记录(到stderr以避免协议损坏)
- OpenAPI 3.0 自动刀具生成规范
特性
存储管理
- 视图 (4个工具):NFS、SMB和S3文件系统视图
- 配额 (4个工具):具有硬/软限制的目录和用户配额
网络和基础设施
- VIP泳池 (4个工具):虚拟IP池管理
- 集群 (2个工具):集群监控和状态
- 节点 (2个工具):集群节点信息和健康状况
数据保护
- 受保护的路径 (3个工具):数据保护和复制设置
- 快照 (4个工具):快照创建和生命周期管理
访问管理
- 用户 (4个工具):用户帐户管理
- 租户 (4个工具):多租户配置
监测和可观察性
- 警报 (4个工具):报警监控、确认和管理
- 事件 (2个工具):事件日志查询和过滤
- 分析 (2个工具):使用时间序列数据进行性能和容量分析
先决条件
- 已安装Node.js 18+
- 使用GitHub Copilot或Claude Desktop的VSCode
- 具有API访问权限的VAST数据群集
- VAST API凭据(用户名和密码)
安装
第一步:构建
npm install
npm run build步骤2:配置环境
选项A:交互式设置(推荐)
node setup.js选项B:手动设置
cp .env.example .env
# Edit .env with your VAST cluster details所需的环境变量:
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步骤3:配置LLM客户端
使用GitHub Copilot进行VSCode
- 打开VSCode设置:
Cmd+Shift+P→ “首选项:打开用户设置(JSON)”
- 将此配置添加到您的
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"
}
}
}
}- 重新加载VS代码:
Cmd+Shift+P→ “开发人员:重新加载窗口”
适用于克劳德桌面
- 找到您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 将此配置添加到
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"
}
}
}
}- 重新启动Claude Desktop应用程序
可用工具
MCP服务器根据VAST API规范自动生成工具:
📁 视图管理(4个工具)
- viewsGetAll -列出所有文件系统视图
- 查看GetById -获取特定视图详细信息
- 视图创建 -创建新的文件系统视图(NFS、SMB、S3)
- 查看更新 -更新视图配置
- 查看删除 -删除视图
📊 配额管理(4个工具)
- 报价单 -列出所有配额
- 报价表 -获取特定配额详细信息
- 配额创建 -创建具有硬/软限制的新配额
- 报价更新 -更新配额配置
- 配额删除 -删除配额
🌐 网络管理(4个工具)
- vippoolsGetAll -列出所有VIP池
- vippoursGetById -获取特定VIP池详细信息
- vippools创建 -创建新的VIP池
- vippoolsUpdate -更新VIP池配置
- vippours删除 -删除VIP池
🖥️ 集群管理(4个工具)
- clustersGetAll -列出所有集群
- clustersGetById -获取集群详细信息
- cnodesGetAll -列出所有群集节点
- cnodesGetById -获取节点详细信息和状态
🛡️ 数据保护(4个工具)
- protectedPaths_GetAll -列出所有受保护的路径
- protectedPathsGetById -获取受保护路径详细信息
- 受保护的路径创建 -创建新的受保护路径
- 受保护的路径删除 -删除受保护的路径
📸 快照(4个工具)
- 快照GetAll -列出所有快照
- 快照GetById -获取快照详细信息
- 快照创建 -创建新快照
- 快照删除 -删除快照
👥 用户管理(4个工具)
- usersGetAll -列出所有用户
- 用户GetById -获取用户详细信息
- users创建 -创建新用户
- 用户更新 -更新用户配置
- 用户删除 -删除用户
🏢 租户管理(4个工具)
- 租户GetAll -列出所有租户
- 租户GetById -获取租户详细信息
- 租户创建 -创建新租户
- 租户更新 -更新租户配置
- 租户删除 -删除租户
🚨 报警管理(4个工具)
- alarmsGetAll -列出所有警报,并按严重性、状态和类别进行过滤
- alarmsGetById -获取特定报警详细信息
- 报警更新 -更新报警状态(确认或清除报警)
- 报警删除 -删除警报
📋 事件管理(2个工具)
- eventsGetAll -列出所有事件,并按类型、严重性、时间范围和类别进行筛选
- 事件GetById -获取特定事件详细信息
📊 分析(2个工具)
- analyticsGetAll -列出分析指标,并按指标类型、时间范围和间隔进行筛选
- analyticsGetById -按ID获取特定分析数据
## Advanced Configuration
### Using with Multiple VAST Clusters
Configure multiple server instances in your LLM client:
{ "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", ... } } } }
### 自定义OpenAPI规范
要使用自定义或扩展的VAST API规范,请执行以下操作:
In .env or client config
OPENAPI_SPEC_PATH=/path/to/custom_vast_spec.json
## 参考文献
- [VAST数据API文档](https://support.vastdata.com/s/api-docs)
- [模型上下文协议](https://modelcontextprotocol.io)
- [OpenAPI规范3.0](https://swagger.io/specification/)
- [超结构MCP参考](https://github.com/jim-coyne/hyperfabric_MCP)