shreyanshjain7174/rook-ceph-mcp
If you are the rightful owner of rook-ceph-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for managing Rook Ceph storage clusters in Kubernetes environments.
list_clusters
List all Ceph clusters
get_cluster_status
Get detailed status of a specific cluster
list_block_pools
List all Ceph block pools
list_filesystems
List all Ceph filesystems
list_object_stores
List all Ceph object stores
create_block_pool
Create a new Ceph block pool
delete_resource
Delete Rook Ceph resources
Rook Ceph MCP Server
A Model Context Protocol (MCP) server for managing Rook Ceph storage clusters in Kubernetes environments.
Features
- Cluster Management: List and monitor Ceph clusters
- Storage Resources: Manage block pools, filesystems, and object stores
- Manifest Templates: Access pre-configured YAML templates for common resources
- Kubernetes Integration: Native Kubernetes API integration
- Troubleshooting: Built-in prompts for cluster setup and troubleshooting
Installation
Local Development (stdio transport)
- Install dependencies:
npm install
- Build the project:
npm run build
- Start the server:
npm run start:stdio
Cloud Hosting (HTTP transport)
- Install dependencies:
npm install
- Build the project:
npm run build
- Start the HTTP server:
npm start
Docker Deployment
- Build the Docker image:
docker build -t rook-ceph-mcp .
- Run the container:
docker run -p 3000:3000 rook-ceph-mcp
Configuration
The server requires access to a Kubernetes cluster with Rook Ceph installed. It uses the default kubeconfig for authentication.
Prerequisites
- Kubernetes cluster with Rook Ceph operator installed
- kubectl configured with cluster access
- Node.js 18+ and npm
Available Tools
Cluster Operations
list_clusters
- List all Ceph clustersget_cluster_status
- Get detailed status of a specific cluster
Storage Resources
list_block_pools
- List all Ceph block poolslist_filesystems
- List all Ceph filesystemslist_object_stores
- List all Ceph object stores
Resource Management
create_block_pool
- Create a new Ceph block pooldelete_resource
- Delete Rook Ceph resources
Available Resources
The server provides YAML manifest templates for:
rook-ceph://manifests/cluster
- Ceph cluster configurationrook-ceph://manifests/block-pool
- Block pool configurationrook-ceph://manifests/filesystem
- Filesystem configurationrook-ceph://manifests/object-store
- Object store configuration
Available Prompts
setup_cluster
- Step-by-step cluster setup guidetroubleshoot_cluster
- Cluster troubleshooting assistance
Example Usage
List all clusters
{
"tool": "list_clusters",
"arguments": {
"namespace": "rook-ceph"
}
}
Create a block pool
{
"tool": "create_block_pool",
"arguments": {
"name": "my-pool",
"namespace": "rook-ceph",
"replicated": {
"size": 3
}
}
}
Get cluster status
{
"tool": "get_cluster_status",
"arguments": {
"name": "rook-ceph",
"namespace": "rook-ceph"
}
}
Repository Structure
Based on the original git repository specification, the project maintains MCP contexts as YAML manifests across different branches:
main
- Production Contextstaging
- Staging Contextdev
- Development Context
Each branch contains:
āāā cluster-manifests/
ā āāā ceph-cluster.yaml
ā āāā object-store.yaml
ā āāā block-pool.yaml
āāā apps/
ā āāā rook-operator.yaml
ā āāā monitoring-stack.yaml
ā āāā security.yaml
āāā kustomization.yaml
āāā README.md
API Endpoints (HTTP Mode)
When running in HTTP mode, the server exposes these endpoints:
GET /health
- Health checkGET /mcp/tools
- List available toolsPOST /mcp/call-tool
- Execute a toolGET /mcp/resources
- List available resourcesPOST /mcp/read-resource
- Read a resourceGET /mcp/prompts
- List available promptsPOST /mcp/get-prompt
- Get a prompt
Development
Building
npm run build
Development mode (stdio)
npm run dev:stdio
Development mode (HTTP)
npm run dev
Testing
npm test
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details
Support
For issues and questions:
- Check the troubleshooting prompts built into the server
- Review Rook Ceph documentation
- Submit issues to the project repository
Security
This server requires Kubernetes cluster access and should be used with appropriate RBAC permissions. Always follow security best practices when deploying in production environments.