Provides tools for managing and monitoring Ceph storage clusters, including health status checks, host management, detailed diagnostics, and troubleshooting of cluster issues.
Enables configuration through environment variables using the python-dotenv library for loading Ceph credentials and connection settings.
Uses MQTT for communication as indicated by the dependency 'asyncio-mqtt' in the installation instructions.
Leverages Pydantic for data validation and parsing of responses from the Ceph API.
Supports testing through pytest and pytest-asyncio for validating the MCP server functionality.
Built on Python 3.11+ to create the bridge between AI tools and Ceph infrastructure.
Integrates with Ruff for code linting and quality checks in the development workflow.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ceph MCP ServerHow is my Ceph cluster doing?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ceph MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with Ceph storage clusters through natural language. This server provides a bridge between AI tools and your Ceph infrastructure, making storage management more accessible and intuitive.
๐ Features
Health Monitoring: Get comprehensive cluster health status and diagnostics
Host Management: Monitor and manage cluster hosts and their services
Detailed Analysis: Access detailed health checks for troubleshooting
Secure Communication: Authenticated access to Ceph Manager API
Structured Responses: AI-friendly output formatting for clear communication
Async Architecture: Non-blocking operations for better performance
Related MCP server: Filesystem MCP Server
๐ Prerequisites
Python 3.11 or higher
UV package manager
Access to a Ceph cluster with Manager API enabled
Valid Ceph credentials with appropriate permissions
๐ ๏ธ Installation
Clone and setup the project:
# Create the project directory
mkdir ceph-mcp-server
cd ceph-mcp-server
# Initialize UV project
uv init --python 3.11
# Add dependencies
uv add mcp httpx pydantic python-dotenv structlog asyncio-mqtt
uv add --dev pytest pytest-asyncio black isort mypy ruffSet up your environment:
# Copy the example environment file
cp .env.example .env
# Edit .env with your Ceph cluster details
nano .envConfigure your Ceph connection:
# .env file contents
CEPH_MANAGER_URL=https://192.16.0.31:8443
CEPH_USERNAME=admin
CEPH_PASSWORD=your_ceph_password
CEPH_SSL_VERIFY=false # Set to true in production with proper certificates๐โโ๏ธ Quick Start
Start the MCP server:
uv run python -m ceph_mcp.serverTest the connection: The server will log its startup and any connection issues. Look for messages indicating successful connection to your Ceph cluster.
๐ง Configuration
Environment Variables
Variable | Description | Default | Required |
| Ceph Manager API endpoint |
| Yes |
| Ceph username for API access |
| Yes |
| Ceph password for authentication | - | Yes |
| Enable SSL certificate verification |
| No |
| Path to custom SSL certificate | - | No |
| Logging level (DEBUG, INFO, WARNING, ERROR) |
| No |
| Rate limiting for API requests |
| No |
Security Considerations
Production Usage: Always enable SSL verification (
CEPH_SSL_VERIFY=true) in productionCredentials: Store credentials securely and never commit them to version control
Network Access: Ensure the MCP server can reach your Ceph Manager API endpoint
Permissions: Use a dedicated Ceph user with minimal required permissions
๐ฏ Available Tools
The MCP server provides four main tools for AI assistants:
1. get_cluster_health
Get comprehensive cluster health status including overall health, warnings, and statistics.
Use cases:
"How is my Ceph cluster doing?"
"Are there any storage issues I should know about?"
"What's the current status of my cluster?"
2. get_host_status
Retrieve information about all hosts in the cluster including online/offline status and service distribution.
Use cases:
"Which hosts are online in my cluster?"
"What services are running on each host?"
"Are any hosts having problems?"
3. get_health_details
Get detailed health check information for troubleshooting specific issues.
Use cases:
"What specific warnings does my cluster have?"
"Give me detailed information about cluster errors"
"Help me troubleshoot this storage issue"
4. get_host_details
Get comprehensive information about a specific host.
Parameters:
hostname: The name of the host to examine
Use cases:
"Tell me about host ceph-node-01"
"What services are running on this specific host?"
"Get detailed specs for this host"
๐ Example Interactions
Health Check
AI Assistant: "How is my Ceph cluster doing?"
Response: โ
Cluster is healthy. All 3 hosts are online. OSDs: 12/12 up.
๐ข Overall Status: HEALTH_OK
๐ฅ๏ธ Hosts: 3/3 online
๐พ OSDs: 12/12 upTroubleshooting
AI Assistant: "What warnings does my cluster have?"
Response: ๐ก Cluster has 2 warning(s) requiring attention.
๐ก Warnings requiring attention:
- OSD_NEARFULL: 1 osd(s) are getting full
- POOL_BACKFILLFULL: 1 pool(s) are backfill full๐งช Development
Running Tests
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=ceph_mcp
# Run specific test types
uv run pytest -m "not integration" # Skip integration testsCode Quality
# Format code
uv run black src/ tests/
uv run isort src/ tests/
# Lint code
uv run ruff check src/ tests/
uv run mypy src/
# All checks
uv run ruff check src/ tests/ && uv run mypy src/ && uv run pytestProject Structure
ceph-mcp-server/
โโโ src/ceph_mcp/
โ โโโ __init__.py # Package initialization
โ โโโ server.py # Main MCP server
โ โโโ api/
โ โ โโโ ceph_client.py # Ceph API client
โ โโโ config/
โ โ โโโ settings.py # Configuration management
โ โโโ handlers/
โ โ โโโ health_handlers.py # Request handlers
โ โโโ models/
โ โ โโโ ceph_models.py # Data models
โ โโโ utils/ # Utility functions
โโโ tests/ # Test suite
โโโ .env.example # Environment template
โโโ pyproject.toml # Project configuration
โโโ README.md # This file๐ Troubleshooting
Common Issues
Connection Refused
Check if Ceph Manager is running and accessible
Verify the URL and port in your configuration
Ensure network connectivity between MCP server and Ceph cluster
Authentication Failed
Verify username and password are correct
Check that the user has appropriate permissions
Ensure the Ceph user account is active
SSL Certificate Errors
For development: Set
CEPH_SSL_VERIFY=falseFor production: Use proper SSL certificates or specify
CEPH_CERT_PATH
Permission Denied
Ensure the Ceph user has read permissions for health and host information
Check Ceph user capabilities:
ceph auth get client.your-username
Debugging
Enable debug logging to get more detailed information:
LOG_LEVEL=DEBUG uv run python -m ceph_mcp.server๐ค Contributing
Fork the repository
Create a feature branch:
git checkout -b feature-nameMake your changes and add tests
Run the test suite:
uv run pytestFormat code:
uv run black src/ tests/Submit a pull request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Ceph Storage - The distributed storage system
Model Context Protocol - The protocol enabling AI integration
Anthropic - For developing MCP and Claude
๐ Support
Create an issue for bug reports or feature requests
Check existing issues before creating new ones
Provide detailed information about your environment when reporting issues
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.