Token导航 LogoToken导航TokenDH.com
Ibm Flashsystems Mcpserver logo
AI代理stdio官方级别未说明来源级核验

Ibm Flashsystems Mcpserver

MCP Server

一个基于Model Context Protocol的服务器,使AI代理和LLM能够通过标准化接口管理IBM FlashSystem存储系统,实现存储卷、主机配置、快照和系统监控等功能。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
PythonClaudeAI自动化Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

IBM

提供方

IBM

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

IBM FlashSystem MCP服务器

![License](https://opensource.org/licenses/Apache-2.0) ![Python 3.12+](https://www.python.org/downloads/) ![Model Context Protocol](https://modelcontextprotocol.io)

一种模型上下文协议(MCP)服务器,使AI代理和LLM能够通过标准化接口管理IBM FlashSystem存储系统。该服务器弥合了人工智能自动化和企业存储管理之间的差距,使智能代理能够安全高效地执行存储操作。

🎯 概述

IBM FlashSystem MCP服务器为AI代理提供了以下能力:

  • 管理存储卷:创建、调整大小、重命名和组织卷
  • 配置主机:设置光纤通道、iSCSI和NVMe主机连接
  • 处理快照:创建和管理卷和卷组快照
  • 管理卷组:使用复制和快照策略组织卷
  • 监控系统:查询系统信息和运行状况
  • 控制分区:查看存储分区

建立在 模型上下文协议,此服务器可与兼容MCP的AI客户端(如Claude Desktop)无缝集成,允许与IBM FlashSystem存储基础架构进行自然语言交互。

📋 目录

🔧 先决条件

  • python:3.12或更高
  • IBM闪存系统:管理员访问一个或多个IBM FlashSystem系统
  • REST API访问:具有适当权限的有效凭据
  • 网络:与FlashSystem管理接口的HTTPS连接(默认端口7443)

支持的IBM FlashSystem代码级别

  • IBM存储虚拟化版本9.1.0及更高版本

📦 安装

步骤1:克隆存储库

git clone https://github.com/IBM/ibm-flashsystems-mcpserver.git
cd ibm-flashsystems-mcpserver

步骤2:选择安装方法

选项A:使用pip(全局或虚拟环境)

使用 pip 要安装到您的活动Python环境(全局Python或激活的虚拟环境)中:

# Create and activate a virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install the package in editable mode
pip install -e .

选项B:使用uv(快速、隔离开发)

使用 uv 对于具有自动虚拟环境管理的快速安装:

# uv automatically creates and manages a virtual environment
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install the package in editable mode (faster than pip)
uv pip install -e .

步骤3:验证安装

如果你使用pip(选项A):

python -c "import flashsystem_mcp; print('Installation successful!')"

如果您使用紫外线(选项B):

# Option 1: With activated virtual environment
python -c "import flashsystem_mcp; print('Installation successful!')"

# Option 2: Using uv run (without activating venv)
uv run python -c "import flashsystem_mcp; print('Installation successful!')"

🚀 快速开始

1.创建配置文件

创建配置文件 mcp_server_config.json:

{
  "flashsystems": {
    "production-fs": {
      "name": "production-fs",
      "rest_base_url": "https://flashsystem.example.com:7443",
      "rest_username": "admin",
      "rest_password_file": "/secure/path/to/password_file",
      "verify_tls": true,
      "description": "Production FlashSystem"
    }
  },
  "default_flashsystem": "production-fs"
}

2.创建安全密码文件

# Create password file with secure permissions
echo "your_password_here" > /secure/path/to/password_file
chmod 600 /secure/path/to/password_file

重要:密码文件必须具有仅限所有者的读/写权限(Unix/Linux上为0600或0400,Windows上为受限ACL)。

3.启动服务器

# Basic usage
python -m flashsystem_mcp_server mcp_server_config.json

# With custom log directory
python -m flashsystem_mcp_server mcp_server_config.json /path/to/logs

命令行参数:

  • 论点1 (必需):配置文件的路径
  • 论点2 (可选):日志目录的路径(默认: ./logs)

登录中: 服务器输出结构化的JSON日志,这些日志可以很容易地被纳入监控和可观察性平台:

  • 格式:JSON(每行一个日志条目)
  • 位置:可配置日志目录(默认: ./logs/flashsystem_mcp_server.log)
  • 整合:兼容Prometheus、Grafana Loki、ELK Stack、Splunk和其他日志聚合工具
  • 领域:包括时间戳(ISO 8601)、日志级别、相关性ID、操作细节和执行指标

日志条目示例:

{
  "timestamp": "2026-01-15T10:30:45.123456Z",
  "level": "info",
  "event": "Tool execution completed",
  "correlation_id": "01HQXYZ123ABC",
  "tool_name": "lsvdisk",
  "execution_time": 0.234,
  "api_execution_time": 0.189,
  "transport": "rest",
  "rest_base_url": "https://flashsystem.example.com:7443",
  "result_count": 15,
  "success": true
}

4.连接MCP客户端

Claude桌面配置

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "ibm-flashsystem": {
      "command": "python",
      "args": [
        "-m",
        "flashsystem_mcp_server",
        "/path/to/mcp_server_config.json",
        "/path/to/logs"
      ]
    }
  }
}

备注:第二个参数(日志目录)是可选的。如果省略,日志将写入 ./logs 在当前工作目录中。

⚙️ 配置

配置文件结构

{
  "flashsystems": {
    "system-name": {
      "name": "system-name",
      "rest_base_url": "https://hostname:7443",
      "rest_username": "username",
      "rest_password_file": "/path/to/password_file",
      "verify_tls": true,
      "description": "Optional description"
    }
  },
  "default_flashsystem": "system-name"
}

配置选项

选项类型必填描述
namestringFlashSystem的唯一标识符
rest_base_urlstring基本URL(例如。, https://10.0.0.5:7443)
rest_usernamestringREST API用户名
rest_password_filestring安全密码文件的路径
verify_tlsboolean启用TLS证书验证(默认值: true)
descriptionstring人类可读的描述

环境变量

您可以使用环境变量覆盖配置:

export FLASHSYSTEM_REST_BASE_URL="https://flashsystem.example.com:7443"
export FLASHSYSTEM_REST_USERNAME="admin"
export FLASHSYSTEM_REST_PASSWORD_FILE="/secure/path/to/password_file"

多闪光灯系统

为多站点管理配置多个系统:

{
  "flashsystems": {
    "site-a": {
      "name": "site-a",
      "rest_base_url": "https://site-a.example.com:7443",
      "rest_username": "admin",
      "rest_password_file": "/secure/site-a-password",
      "verify_tls": true
    },
    "site-b": {
      "name": "site-b",
      "rest_base_url": "https://site-b.example.com:7443",
      "rest_username": "admin",
      "rest_password_file": "/secure/site-b-password",
      "verify_tls": true
    }
  },
  "default_flashsystem": "site-a"
}

🛠️ 可用工具

服务器公开了20多个MCP工具用于存储管理:

卷管理

工具说明
ibm_flashsystem_list_volumes列出所有卷或获取特定卷的详细信息
ibm_flashsystem_create_volume创建具有指定大小和池的新卷
ibm_flashsystem_rename_volume更改现有卷的名称
ibm_flashsystem_resize_volume扩大或缩小体积
ibm_flashsystem_change_volume_volumegroup将卷移动到其他卷组
ibm_flashsystem_list_storage_pools列出可用存储池(mdisk组)

主机管理

工具说明
ibm_flashsystem_list_hosts列出所有主机或获取特定主机的详细信息
ibm_flashsystem_create_host_fc创建光纤通道主机
ibm_flashsystem_create_host_iscsi创建iSCSI主机
ibm_flashsystem_create_host_nvme创建NVMe主机
ibm_flashsystem_map_volume_to_host将卷映射到主机以供访问
ibm_flashsystem_modify_host修改主机属性
ibm_flashsystem_list_portsets列出可用端口集

主机群集管理

工具说明
ibm_flashsystem_create_host_cluster创建主机群集以实现高可用性
ibm_flashsystem_list_host_clusters列出所有主机群集
ibm_flashsystem_add_host_to_cluster将主机添加到现有群集中
ibm_flashsystem_map_volume_to_host_cluster将卷映射到主机群集

卷组管理

工具说明
ibm_flashsystem_create_volume_group创建新的卷组
ibm_flashsystem_list_volume_groups列出所有卷组
ibm_flashsystem_rename_volume_group重命名卷组
ibm_flashsystem_modify_volumegroup_replication_policy更改复制策略
ibm_flashsystem_modify_volumegroup_snapshot_policy更改快照策略

快照管理

工具说明
ibm_flashsystem_create_snapshot创建卷或卷组的快照
ibm_flashsystem_list_volume_snapshots列出特定卷的快照
ibm_flashsystem_list_volumegroup_snapshots列出卷组的快照
ibm_flashsystem_list_snapshot_policies列出可用快照策略

系统管理

工具说明
ibm_flashsystem_get_system_info获取系统信息和运行状况
ibm_flashsystem_list_partitions列出存储分区
ibm_flashsystem_list_replication_policies列出复制策略

💡 使用示例

示例1:列出所有卷

用户请求:

"List all volumes on the FlashSystem"

MCP工具调用:

ibm_flashsystem_list_volumes

请求:

{
  "volume_name": null,
  "flashsystem_name": null
}

答复:

{
  "success": true,
  "data": [
    {
      "name": "volume1",
      "capacity": "100GB",
      "volume_group_name": "prod-vg"
    },
    {
      "name": "volume2",
      "capacity": "500GB",
      "volume_group_name": "dev-vg"
    }
  ],
  "error_message": null,
  "error_type": null
}

示例2:创建新卷

用户请求:

"Create a 200MB volume in mdg0 pool and add it to volumegroup1"

MCP工具调用:

ibm_flashsystem_create_volume

请求:

{
  "pool": "mdg0",
  "size": 200,
  "unit": "mb",
  "volume_group": "volumegroup1"
}

答复:

{
  "success": true,
  "data": [
    {
      "id": "24",
      "message": "Volume created successfully"
    }
  ],
  "error_message": null,
  "error_type": null
}

示例3:列出存储池

用户请求:

"Show me all the volume pools"

MCP工具调用:

ibm_flashsystem_list_storage_pools

请求:

{}

答复:

{
  "success": true,
  "data": [
    {
      "name": "mdg0",
      "free_capacity": "21.16TB"
    },
    {
      "name": "mdg0_child0",
      "free_capacity": "440.00GB"
    },
    {
      "name": "mdg0_child1",
      "free_capacity": "433.00GB"
    }
  ],
  "error_message": null,
  "error_type": null
}

示例4:创建卷组

用户请求:

"Make me a volume group in myPartition"

MCP工具调用:

ibm_flashsystem_create_volume_group

请求:

{
  "partition": "myPartition"
}

答复:

{
  "success": true,
  "data": [
    {
      "id": "12",
      "message": "Volume group created successfully"
    }
  ],
  "error_message": null,
  "error_type": null
}

示例5:多系统管理

用户请求:

"List volumes on site-b FlashSystem"

MCP工具调用:

ibm_flashsystem_list_volumes

请求:

{
  "volume_name": null,
  "flashsystem_name": "site-b"
}

答复:

{
  "success": true,
  "data": [
    {
      "name": "site-b-vol1",
      "capacity": "1TB",
      "volume_group_name": "backup-vg"
    }
  ],
  "error_message": null,
  "error_type": null
}

🔒 安全

密码文件安全

服务器对密码文件执行严格的安全要求:

Unix/Linux/macOS:

  • 文件必须具有权限 0600 (仅限所有者读/写)或 0400 (所有者只读)
  • 不允许任何组或其他权限

窗户:

  • 文件必须具有ACL,仅限制所有者和受信任的系统帐户的访问
  • 其他用户或组无法访问

TLS/SSL配置

在生产环境中始终使用TLS验证:

{
  "verify_tls": true
}

对于具有自签名证书的开发/测试:

{
  "verify_tls": false
}

🔨 发展

设置开发环境

# Clone the repository
git clone https://github.com/IBM/ibm-flashsystems-mcpserver.git
cd ibm-flashsystems-mcpserver

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

项目结构

ibm-flashsystems-mcpserver/
├── src/
│   ├── flashsystem_mcp/          # Main MCP server implementation
│   │   ├── server.py             # Server initialization
│   │   ├── config.py             # Configuration management
│   │   ├── executor.py           # Tool execution logic
│   │   ├── client_factory.py     # FlashSystem client factory
│   │   └── tools/                # MCP tool implementations
│   ├── flashrest/                # REST API client
│   │   ├── client.py             # HTTP client
│   │   ├── endpoints.py          # API endpoints
│   │   └── api_result.py         # Result types
│   ├── fs_core/                  # Core types and utilities
│   │   ├── fs_requests.py        # Request models
│   │   ├── fs_responses.py       # Response models
│   │   └── fs_types.py           # Type definitions
│   └── config_models.py          # Configuration models
├── tests/                        # Test suite
├── pyproject.toml               # Project metadata and dependencies
└── README.md                    # This file

代码质量工具

# Format code
ruff format .

# Lint code
ruff check .

# Type checking
mypy src/

# Run all checks
ruff check . && ruff format --check . && mypy src/

🧪 测试

运行测试

# Run all tests
pytest

# Run with coverage
pytest --cov=src --cov-report=html

# Run specific test file
pytest tests/test_mcp_tools/test_volume_tools.py

# Run with verbose output
pytest -v

# Run and stop on first failure
pytest -x

测试结构

  • tests/test_mcp_tools/ -MCP工具集成测试
  • tests/test_client_endpoints/ -REST API端点测试
  • tests/test_configuration/ -配置验证测试
  • tests/test_security/ -安全和权限测试

🐛 故障排除

调试日志记录

启用调试日志以进行故障排除:

import logging
logging.basicConfig(level=logging.DEBUG)

或者设置环境变量:

export LOG_LEVEL=DEBUG

📄 许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

Copyright 2026 IBM Corporation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

📞 支持

IBM支持

有关IBM FlashSystem产品支持,请通过您的正常支持渠道联系IBM支持部门。

🙏 致谢

目录标签

目录标签

PythonClaudeAI自动化存储管理本地部署企业存储MCP协议IBMFlashSystem

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP