Skip to main content

MCP server for AWS EBS volume initialization

Project description

EBS Initialization MCP Server

A Model Context Protocol (MCP) server for automating AWS EBS volume initialization. This server provides tools to initialize EBS volumes attached to EC2 instances using AWS Systems Manager.

Features

  • 🔍 Volume Discovery: Automatically discover all EBS volumes attached to an EC2 instance
  • 🚀 Automated Initialization: Initialize volumes using fio (recommended) or dd
  • 📊 Progress Monitoring: Check initialization status and view detailed logs
  • 🌐 Multi-Region Support: Works across all AWS regions
  • 🔒 Secure Execution: Uses AWS Systems Manager for secure remote execution

Installation

Using uvx (Recommended)

# Run directly without installation (latest version)
uvx ebs-initializer-mcp@latest

# Or run specific version
uvx ebs-initializer-mcp==0.4.5

# Install globally
uv tool install ebs-initializer-mcp

# Upgrade to latest version
uvx --upgrade ebs-initializer-mcp

From GitHub

uvx --from git+https://github.com/username/ebs-init-mcp.git ebs-mcp-server

Usage

As MCP Server

Add to your MCP configuration (mcp_config.json):

{
  "mcpServers": {
    "ebs-initializer": {
      "command": "uvx",
      "args": ["ebs-initializer-mcp@latest"],
      "env": {
        "AWS_REGION": "us-west-2"
      }
    }
  }
}

Available Tools

  1. get_instance_volumes: Get all EBS volumes attached to an instance
  2. initialize_all_volumes: Initialize all volumes on an instance (parallel processing)
  3. initialize_volume_by_id: Initialize a specific volume by its volume ID
  4. check_initialization_status: Monitor initialization progress and view detailed logs

Example Usage with Claude Code

"Initialize all EBS volumes for instance i-1234567890abcdef0 using fio"
"Initialize volume vol-1234567890abcdef0 using fio"
"Check the status of the newly attached volume vol-abcdef1234567890"

The MCP server will:

  1. Discover all attached EBS volumes
  2. Install fio on the target instance
  3. Run initialization commands in parallel
  4. Provide status updates and logs

Prerequisites

  • AWS CLI configured with appropriate permissions
  • EC2 instances must have Systems Manager agent installed
  • Required IAM permissions:
    • ec2:DescribeVolumes
    • ssm:SendCommand
    • ssm:GetCommandInvocation

AWS IAM Permissions

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVolumes",
                "ssm:SendCommand",
                "ssm:GetCommandInvocation"
            ],
            "Resource": "*"
        }
    ]
}

Configuration

Environment Variables

The server automatically detects AWS region from environment variables:

# Option 1: AWS_DEFAULT_REGION (preferred)
export AWS_DEFAULT_REGION=ap-northeast-2

# Option 2: AWS_REGION (also supported)  
export AWS_REGION=ap-northeast-2

Priority order:

  1. AWS_DEFAULT_REGION environment variable
  2. AWS_REGION environment variable
  3. Fallback to us-east-1

MCP Configuration

{
  "mcpServers": {
    "ebs-initializer": {
      "command": "uvx",
      "args": ["ebs-initializer-mcp@latest"],
      "env": {
        "AWS_DEFAULT_REGION": "ap-northeast-2"
      }
    }
  }
}

Development

git clone <repository>
cd ebs-init-mcp
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black src/
ruff check src/

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ebs_initializer_mcp-0.4.8.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ebs_initializer_mcp-0.4.8-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file ebs_initializer_mcp-0.4.8.tar.gz.

File metadata

  • Download URL: ebs_initializer_mcp-0.4.8.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ebs_initializer_mcp-0.4.8.tar.gz
Algorithm Hash digest
SHA256 87303007f131add41a5ff89689a8a3fc6a549f9b20138e231092e314f37b1b11
MD5 4a84010d0e1e557313ce6afc0ba62999
BLAKE2b-256 41693b711952e996eaac61eaac69e18452364f7d254f3a385b2893e5b1fd8a2b

See more details on using hashes here.

File details

Details for the file ebs_initializer_mcp-0.4.8-py3-none-any.whl.

File metadata

File hashes

Hashes for ebs_initializer_mcp-0.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 61f4547cfbd12149462e957eb9cf650b4f27c1a502ed0210b635e465fd0e221e
MD5 87072548c471140a0eb545cc8593f32f
BLAKE2b-256 ccbef4b02994151325e1a35485c5fadd3a443c757590e85e53f4d5ff35869261

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page