mcpField
R
Rook Ceph Mcp

Rook Ceph Mcp

Local
github.com/shreyanshjain7174Cloud & Infra3Updated 65w ago

About Rook Ceph Mcp

Rook Ceph MCP helps operators manage Rook Ceph storage clusters in Kubernetes. It combines cluster and storage-resource operations with YAML templates and troubleshooting prompts.

Key features

  1. 01List clusters and inspect status
  2. 02List block pools, filesystems, and object stores
  3. 03Create block pools and delete resources
  4. 04Provide YAML resource manifest templates
  5. 05Offer setup and troubleshooting prompts

Use cases

  1. 01Check the status of Rook Ceph clusters
  2. 02Inventory block pools, filesystems, and object stores
  3. 03Create a block pool or delete a Rook Ceph resource
  4. 04Use templates to configure resources and troubleshoot clusters

MCP support

The MCP server exposes cluster and storage-resource management tools, YAML manifest resources, and prompts for cluster setup and troubleshooting to clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"rook-ceph": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"rook-ceph-mcp"
]
}
}
}
Run commanddocker run -i --rm rook-ceph-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocirook-ceph-mcp

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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)
  1. Install dependencies:
npm install
  1. Build the project:
npm run build
  1. Start the server:
npm run start:stdio
Cloud Hosting (HTTP transport)
  1. Install dependencies:
npm install
  1. Build the project:
npm run build
  1. Start the HTTP server:
npm start
Docker Deployment
  1. Build the Docker image:
docker build -t rook-ceph-mcp .
  1. 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 clusters
  • get_cluster_status - Get detailed status of a specific cluster
Storage Resources
  • list_block_pools - List all Ceph block pools
  • list_filesystems - List all Ceph filesystems
  • list_object_stores - List all Ceph object stores
Resource Management
  • create_block_pool - Create a new Ceph block pool
  • delete_resource - Delete Rook Ceph resources

Available Resources

The server provides YAML manifest templates for:

  • rook-ceph://manifests/cluster - Ceph cluster configuration
  • rook-ceph://manifests/block-pool - Block pool configuration
  • rook-ceph://manifests/filesystem - Filesystem configuration
  • rook-ceph://manifests/object-store - Object store configuration

Available Prompts

  • setup_cluster - Step-by-step cluster setup guide
  • troubleshoot_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 Context
  • staging - Staging Context
  • dev - 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 check
  • GET /mcp/tools - List available tools
  • POST /mcp/call-tool - Execute a tool
  • GET /mcp/resources - List available resources
  • POST /mcp/read-resource - Read a resource
  • GET /mcp/prompts - List available prompts
  • POST /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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.