Skip to main content
Glama
SETUP_SUMMARY.md6.02 kB
# Resource Manager MCP Server - Setup Summary ## Project Structure Created The following scaffolding has been created for the resource-manager-mcp-server: ``` resource-manager-mcp-server/ ├── src/ │ ├── resource_manager_mcp_server/ │ │ ├── __init__.py # Kubernetes lifecycle manager (existing) │ │ └── __main__.py # Entry point (newly created) │ ├── server.py # MCP server implementation (existing) │ ├── allocation_manager.py # Resource allocation manager (existing) │ └── worker_manager.py # Worker management (existing) ├── tests/ │ ├── conftest.py # Pytest fixtures (newly created) │ └── test_lifecycle.py # Test suite (newly created) ├── config/ │ ├── example-mcp-deployment.yaml # K8s deployment example (existing) │ └── worker-config.yaml # Worker config (existing) ├── pyproject.toml # Project metadata & dependencies (existing) ├── requirements.txt # Python dependencies (existing) ├── README.md # Documentation (existing) ├── .env.example # Environment template (newly created) ├── .gitignore # Git ignore rules (existing) └── example_usage.py # Usage examples (existing) ``` ## Newly Created Files ### 1. `/src/resource_manager_mcp_server/__main__.py` Entry point for running the MCP server as a module: ```bash python -m resource_manager_mcp_server ``` ### 2. `/tests/conftest.py` Pytest configuration with fixtures for: - Mock Kubernetes client - Mock MCP server configurations - Mock worker configurations - Mock resource requests - Sample cluster status and metrics ### 3. `/tests/test_lifecycle.py` Comprehensive test suite covering: - Server initialization - Tool registration (all 13 tools) - MCP server management (list, get, start, stop, scale) - Worker management (list, provision, drain, destroy) - Resource management (request, release, capacity) - Monitoring (health, metrics, cluster status) - Error handling ### 4. `/.env.example` Environment variable template with configuration for: - Kubernetes settings (kubeconfig, namespace, context) - Resource manager settings (replicas, timeouts, limits) - Monitoring configuration (metrics, health checks) - Worker configuration (TTL, resources) - Resource allocation settings - Security settings - API configuration ## Tool Stubs Implemented The MCP server (in `src/server.py`) implements these tools: ### Resource Allocation (Core) - `request_resources` - Reserve resources for jobs - `release_resources` - Release allocated resources - `get_capacity` - Get cluster capacity - `get_allocation` - Get allocation details - `list_allocations` - List allocations with filtering - `cleanup_expired` - Clean up expired allocations ### Worker Management - `list_workers` - List Kubernetes workers - `provision_workers` - Provision burst workers - `drain_worker` - Gracefully drain a worker - `destroy_worker` - Destroy burst workers - `get_worker_details` - Get detailed worker info ## Installation 1. Install dependencies: ```bash cd /Users/ryandahlberg/Projects/resource-manager-mcp-server pip install -e . ``` Or with development dependencies: ```bash pip install -e ".[dev]" ``` 2. Configure environment: ```bash cp .env.example .env # Edit .env with your settings ``` 3. Set up Kubernetes access: ```bash # Ensure kubeconfig is configured export KUBECONFIG=/path/to/kubeconfig ``` ## Running Tests ```bash # Run all tests pytest # Run with coverage pytest --cov=resource_manager_mcp_server --cov-report=html # Run specific test file pytest tests/test_lifecycle.py -v ``` ## Running the Server ### As a module: ```bash python -m resource_manager_mcp_server ``` ### Directly: ```bash python src/server.py ``` ### With Claude Desktop: Add to `claude_desktop_config.json`: ```json { "mcpServers": { "resource-manager": { "command": "python", "args": ["-m", "resource_manager_mcp_server"], "env": { "KUBECONFIG": "/path/to/kubeconfig", "K8S_NAMESPACE": "cortex" } } } } ``` ## Dependencies Core dependencies (from pyproject.toml): - `mcp>=1.9.4` - Model Context Protocol - `httpx>=0.27.0` - HTTP client - `kubernetes>=30.0.0` - Kubernetes API - `pydantic>=2.0.0` - Data validation - `python-dotenv>=1.0.0` - Environment variables Development dependencies: - `pytest>=8.0.0` - Testing framework - `pytest-asyncio>=0.24.0` - Async test support - `pytest-cov>=4.1.0` - Coverage reporting - `mypy>=1.8.0` - Type checking - `ruff>=0.3.0` - Linting and formatting ## Key Features 1. **MCP Server Management**: Start, stop, scale MCP servers on Kubernetes 2. **Worker Management**: Provision and manage Kubernetes workers 3. **Resource Allocation**: Track resource allocations with unique IDs 4. **Automatic Cleanup**: Background task for expired allocations 5. **K8s Integration**: Full Kubernetes API integration 6. **Type Safety**: Pydantic models for data validation 7. **Comprehensive Testing**: Full test suite with fixtures 8. **Environment Configuration**: Flexible .env configuration ## Integration with Cortex This MCP server integrates with cortex for: - Managing MCP server deployments - Provisioning workers for tasks - Resource allocation tracking - Cluster capacity management - Worker lifecycle management ## Next Steps 1. Install dependencies: `pip install -e ".[dev]"` 2. Configure `.env` file 3. Run tests to verify setup: `pytest` 4. Start the server: `python -m resource_manager_mcp_server` 5. Integrate with Claude Desktop or cortex ## Implementation Status - [x] Project structure - [x] MCP server framework - [x] Tool definitions - [x] Resource allocation manager - [x] Worker manager - [x] Test suite - [x] Documentation - [ ] Full Kubernetes integration testing - [ ] Production deployment - [ ] Monitoring dashboards

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ry-ops/cortex-resource-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server