Get the FREE Ultimate OpenClaw Setup Guide →

maas

MCP-MAAS: A Model Context Protocol server that enables AI assistants to interact with MAAS (Metal as a Service). Provides a standardized interface for machine management operations including listing, allocating, deploying, and controlling physical servers through MAAS.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio lspecian-maas-mcp-server ./maas-mcp-server stdio \
  --env LOG_LEVEL="info" \
  --env LOG_FORMAT="json" \
  --env AUTH_ENABLED="false" \
  --env MAAS_API_KEY="consumer:token:secret" \
  --env MAAS_API_URL="http://your-maas-server:5240/MAAS"

How to use

This MAAS MCP Server exposes a JSON-RPC 2.0 API that lets AI assistants and automation tools manage MAAS resources through a standardized set of tools. It can run in two transport modes: HTTP/HTTPS for web-based interactions and Server-Sent Events, or a stdin/stdout mode for direct integration with CLI scripts or AI workflows. The server discovers and exposes MAAS capabilities as JSON-RPC methods (e.g., maas_list_machines, maas_get_machine_details, maas_power_on_machine, maas_power_off_machine, etc.). You can start the server in stdio mode to feed requests directly from another process or script, or run in HTTP mode to interact over HTTP endpoints. Use the discovery mechanism to learn about available tools and their parameters, which are generated from MAAS API capabilities.

To use the stdio workflow from a host process, launch the MCP server in stdio mode and send JSON-RPC requests over stdin. Read responses from stdout. For example, request maas_list_machines with your desired filters, then handle the returned list and iterate on machine details or actions like power control. For HTTP mode, send JSON-RPC requests to the /mcp endpoint and use the standard JSON-RPC 2.0 request/response format. The server also includes a discovery method that returns the available tools and their parameter schemas, enabling dynamic tool usage in clients.

How to install

Prerequisites:

  • Go 1.22+ (for building the server from source)
  • MAAS server with API access and a valid MAAS API key
  • Optional: Docker for containerized deployment

Install from release script:

  1. Run the installer script from the release channel (recommended for quick setup): curl -sSL https://raw.githubusercontent.com/lspecian/maas-mcp-server/main/scripts/install.sh | bash

Install from source:

  1. Clone the repository: git clone https://github.com/lspecian/maas-mcp-server.git cd maas-mcp-server

  2. Build the server: ./build.sh build

  3. Configure the server: cp config/config.yaml.example config/config.yaml cp .env.example .env

  4. Edit config.yaml and environment settings:

    • Update MAAS API URL
    • Provide MAAS API key
    • Configure server host/port and logging as needed
  5. Run the server in stdio mode (for AI integrations): ./maas-mcp-server stdio

Optional: Docker deployment

  1. Build the Docker image: ./build-docker.sh

  2. Run the container (adjust ports and volume mounts as needed): docker run -p 8081:8081 -v $(pwd)/config:/app/config maas-mcp-server

Additional notes

Environment variables influence server behavior. Common variables include MAAS_API_URL, MAAS_API_KEY, LOG_LEVEL, LOG_FORMAT, and AUTH_ENABLED. When configuring via Roo or the MCP config file, you can predefine the environment in the mcp.json/.roo files to ensure consistent startup, particularly in CI/CD or automation environments. If you encounter authentication issues, verify that MAAS_API_KEY is correct and that the MAAS endpoint is reachable from the machine running the MCP server. The JSON-RPC interface follows the 2.0 specification; use the discovery method to learn available tools and their parameters. For HTTP mode, ensure the server's host/port are accessible and that any reverse proxies or TLS termination are properly configured.

Related MCP Servers

Sponsor this space

Reach thousands of developers