Zadara存储MCP服务器
MCP(模型上下文协议)服务器,提供对Zadara存储API的访问,包括VPSA存储阵列和对象存储端点。
特性
VPSA存储阵列支持
- 列出、创建、获取和删除卷
- 列出存储池
- 列出已连接的服务器
- 创建并列出快照
- 获取性能指标
- 列出控制器
- 针对任何VPSA终结点的自定义API请求
对象存储支持
- 列出、创建和删除存储桶
- 计算铲斗尺寸和统计数据
- 将对象上传到存储桶(使用AWS Signature V4身份验证)
- 从存储桶下载对象(使用AWS Signature V4身份验证)
- 从存储桶中删除对象(使用AWS Signature V4身份验证)
- 在bucket中列出对象
- 获取和设置bucket策略
- 获取和设置bucket版本控制
- 任何对象存储终结点的自定义API请求
安装
- 克隆或下载此存储库
- 安装依赖项:
pip install -r requirements.txt配置
服务器需要环境变量进行身份验证:
VPSA存储阵列
export ZADARA_VPSA_URL="https://your-vpsa-hostname.com"
export ZADARA_VPSA_API_KEY="your-api-key"对象存储
export ZADARA_OBJECT_STORAGE_URL="https://your-object-storage-url.com"
export ZADARA_OBJECT_ACCESS_KEY="your-access-key"
export ZADARA_OBJECT_SECRET_KEY="your-secret-key"运行服务器
单独模式
python server.py使用克劳德桌面
将此配置添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"zadara-storage": {
"command": "python",
"args": ["/path/to/zadara-mcp-server/server.py"],
"env": {
"ZADARA_VPSA_URL": "https://your-vpsa-hostname.com",
"ZADARA_VPSA_API_KEY": "your-api-key",
"ZADARA_OBJECT_STORAGE_URL": "https://your-object-storage-url.com",
"ZADARA_OBJECT_ACCESS_KEY": "your-access-key",
"ZADARA_OBJECT_SECRET_KEY": "your-secret-key"
}
}
}
}可用工具
VPSA存储阵列工具
vpsa_list_volumes
列出VPSA存储阵列中的所有卷。
参数:
limit(可选):要返回的最大卷数offset(可选):分页偏移量
vpsa_create_volume
在VPSA存储阵列中创建新卷。
参数:
name(必填):卷名capacity(必填):容量(GB)pool(必填):存储池名称或IDblock_size(可选):块大小(KB)
vpsa_get_volume
获取特定卷的详细信息。
参数:
volume_id(必填):卷ID或名称
vpsa_delete_volume
从VPSA存储阵列中删除卷。
参数:
volume_id(必填):要删除的卷ID或名称
vpsa_list_pools
列出VPSA中的所有存储池。
vpsa_list_servers
列出连接到VPSA的所有服务器。
vpsa_create_snapshot
创建卷的快照。
参数:
volume_id(必需):要快照的卷IDsnapshot_name(必填):快照的名称
vpsa_list_snapshots
列出所有快照。
参数:
volume_id(可选):按卷ID筛选
vpsa_get_performance
获取VPSA的性能指标。
参数:
interval(可选):时间间隔(例如“1h”、“24h”、“7d”)
vpsa_list_controllers
列出VPSA中的所有控制器。
vpsa_custom_request
向VPSA存储阵列发出自定义API请求。
参数:
method(必需):HTTP方法(GET、POST、PUT、DELETE)endpoint(必需):API端点路径(不带/API/前缀)data(可选):请求正文数据params(可选):查询参数
对象存储工具
object_list_buckets
列出对象存储中的所有存储桶。
object_create_bucket
在对象存储中创建一个新的bucket。
参数:
bucket_name(必填):要创建的bucket的名称region(可选):桶的区域
object_delete_bucket
从对象存储中删除存储桶。
参数:
bucket_name(必填):要删除的bucket的名称
object_get_bucket_sizes
计算所有桶或特定桶的总尺寸。
参数:
bucket_names(可选):用于计算大小的特定存储桶名称数组。如果省略,则计算所有桶的大小。
退货:
- 每个存储桶统计信息:名称、总大小(以字节为单位)、格式化大小字符串、对象计数
- 摘要统计:所有存储桶的总大小、总对象计数、成功存储桶计数
- 在每个存储桶的基础上优雅地处理错误
特征:
- 自动处理具有>1000个对象的桶的分页
- 支持计算所有桶或特定子集的大小
- 人类可读的大小格式(字节、KB、MB、GB)
- 如果一个桶失败,则继续处理剩余的桶
示例响应:
{
"buckets": [
{
"bucket": "backup",
"total_size_bytes": 1073741824,
"size_formatted": "1.00 GB",
"object_count": 1523,
"error": null
}
],
"summary": {
"total_size_bytes": 5368709120,
"size_formatted": "5.00 GB",
"total_objects": 4567,
"bucket_count": 11
}
}object_list_objects
列出bucket中的对象。
参数:
bucket_name(必填):桶的名称prefix(可选):对象键的前缀过滤器max_keys(可选):要返回的最大密钥数
object_upload
将对象上传到对象存储。
参数:
bucket_name(必填):桶的名称object_key(必填):对象键/路径(例如,“document.pdf”或“folder/file.txt”)content_base64(必填):Base64编码文件内容content_type(可选):MIME类型(默认:应用程序/八位字节流)
注: 此工具使用AWS Signature V4身份验证进行安全上传。
object_download
从对象存储中下载对象。
参数:
bucket_name(必填):桶的名称object_key(必填):对象键/路径
退货: 带元数据的Base64编码文件内容
注: 此工具使用AWS Signature V4身份验证进行安全下载。
object_delete
从对象存储中删除对象。
参数:
bucket_name(必填):桶的名称object_key(必填):要删除的对象键/路径
注: 此工具使用AWS Signature V4身份验证进行安全删除。
object_get_bucket_policy
得到一个桶的政策。
参数:
bucket_name(必填):桶的名称
object_set_bucket_policy
设置bucket策略。
参数:
bucket_name(必填):桶的名称policy(必填):Bucket策略JSON
object_get_bucket_versioning
获取bucket的版本配置。
参数:
bucket_name(必填):桶的名称
object_set_bucket_versioning
设置bucket的版本配置。
参数:
bucket_name(必填):桶的名称status(必填):版本控制状态(启用或挂起)
object_custom_request
向对象存储发出自定义API请求。
参数:
method(必需):HTTP方法(GET、POST、PUT、DELETE)endpoint(必需):API终结点路径data(可选):请求正文数据params(可选):查询参数
使用示例
一旦配置了Claude Desktop,您就可以使用自然语言与服务器交互:
"List all volumes in my VPSA storage"
"Create a new volume named 'backup-vol' with 100GB capacity in pool 'pool-1'"
"Show me all buckets in my object storage"
"Create a snapshot of volume 'vol-123' named 'snapshot-2024'"
"List all objects in bucket 'my-data-bucket'"API文档
有关API的详细文档,请参阅:
- VPSA存储阵列:https://api-doc.zadarastorage.com/?urls.primaryName=VPSA%20Storage%20Array%20-%20VPSA%20Flash%20阵列
- 对象存储:https://api-doc.zadarastorage.com/?urls.primaryName=Object%20Storage
认证
VPSA存储阵列
VPSA API通过 X-Access-Key 头球
对象存储
对象存储API使用与AWS S3-兼容的身份验证 AWS签名版本4:
- 访问密钥和密钥用于生成请求签名
- 每个请求都用HMAC-SHA256签名
- Payload哈希确保数据完整性
- 规范标头包括主机、日期和内容哈希
- 与标准S3身份验证兼容
对象操作(上传、下载、删除) 使用AWS Signature V4可增强安全性,并与S3兼容工具兼容。
错误处理
在以下情况下,服务器将返回错误消息:
- 缺少或无效的凭据
- API终结点无效
- 网络连接问题
- API速率限制
- 无效参数
发展
要使用其他工具扩展此服务器,请执行以下操作:
- 将工具定义添加到
list_tools()功能 - 在中实现工具处理程序
call_tool()功能 - 使用
ZadaraClient类方法以发出API请求
安全说明
- 切勿将API密钥或凭据提交到版本控制
- 对所有敏感配置使用环境变量
- 确保您的VPSA和对象存储端点使用HTTPS
- 定期旋转API键
- 创建API密钥时遵循最小权限原则
故障排除
连接问题
- 验证您的VPSA_URL和OBJECT_STORAGE_URL是否正确
- 检查与Zadara端点的网络连接
- 确保防火墙规则允许出站HTTPS连接
身份验证错误
- 验证API密钥是否正确
- 检查您的API密钥是否具有必要的权限
- 确保密钥未过期
工具不工作
- 检查服务器日志以获取详细的错误消息
- 验证工具参数是否与预期架构匹配
- 使用curl或Postman直接测试API端点
许可证
此MCP服务器按原样提供,用于Zadara存储系统。
支持
有关Zadara Storage API支持,请参阅Zadara官方文档或联系Zadara支持。
有关MCP服务器问题,请查看MCP文档,网址为https://modelcontextprotocol.io/
