mcp-nutanix-observer
A Model Context Protocol bridge engineered to interface with Nutanix Prism Central REST APIs. It enables Large Language Models (LLMs) to query, inspect, and analyze infrastructure elements such as Virtual Machines, hyperconverged clusters, and physical nodes. This facilitates standardized, protocol-driven governance and deep situational awareness within the Nutanix infrastructure domain.
Author

thunderboltsid
Quick Info
Actions
Tags
Nutanix Prism Central MCP Gateway
This server implements the Model Context Protocol (MCP) to grant LLMs programmatic access to telemetry and metadata residing within a Nutanix Prism Central deployment via its exposed Application Programming Interfaces.
🛑 Warning: Experimental Software
THIS UTILITY IS FOR EXPLORATORY PURPOSES ONLY.
This implementation originated as a personal proof-of-concept exploring Go-based MCP framework integration. Key characteristics include:
- Non-Official Status: It is neither sanctioned, supported, nor maintained by Nutanix.
- Production Unsuitability: It is explicitly not engineered or validated for mission-critical operational workloads.
- As-Is Provision: The software is delivered without any explicit or implied warranty or performance guarantee.
USER ASSUMES ALL RISK: The developer disclaims liability for any service disruptions, data corruption, or systemic failures stemming from the use of this code.
Architectural Synopsis
This MCP gateway enables intelligent agents (LLMs) to perform operations against Prism Central by:
- Establishing a secure connection to the target Prism Central instance using supplied credentials.
- Enumerating a variety of managed assets (e.g., VMs, Cluster Structures, Physical Servers).
- Fetching granular configuration details identified through unique, URI-encoded references.
The architecture leverages the official Prism Go Client Library for API communication and the MCP Go Abstraction Layer for protocol compliance.
Initial Setup Guide
Prerequisites for Compilation
- A current Go runtime environment (version 1.23 or newer).
- Network accessibility to at least one Nutanix Prism Central deployment.
- Standard build utilities (
make, code formatters).
Compilation Procedure
bash
Obtain the source repository
git clone https://github.com/thunderboltsid/mcp-nutanix.git cd mcp-nutanix
Compile the executable server component
make build
Authentication Configuration Modalities
The server accommodates two primary mechanisms for securely supplying endpoint credentials:
- Interactive Mode (Default): Credentials are elicited dynamically through prompts presented by host MCP clients (e.g., Claude).
- Static Environment Variables: Necessary for client applications (e.g., Cursor) that bypass interactive credential exchange.
Integration with MCP Clients
Configuration is required on the consumer side to map the Nutanix service identifier to this running executable.
Claude Desktop/Code Configuration
Modify or generate the configuration file at ~/.anthropic/claude_desktop.json:
{ "mcpServers": { "nutanix": { "command": "/path/to/mcp-nutanix" } } }
Claude will initiate the authentication handshake upon the first invocation of the associated tool.
Cursor Integration
Since Cursor often mandates pre-configured access, static credentials must be supplied via environment variables within ~/.cursor/mcp.json:
{ "mcpServers": { "nutanix": { "command": "/path/to/mcp-nutanix", "env": { "NUTANIX_ENDPOINT": "your-prism-central-ip-or-hostname", "NUTANIX_USERNAME": "your-API-user", "NUTANIX_PASSWORD": "your-API-secret", "NUTANIX_INSECURE": "true" // Use for self-signed cert validation bypass } } } }
Mandatory Environmental Parameters:
- NUTANIX_ENDPOINT: The reachable address (FQDN or IP) of the Prism Central instance (mandatory).
- NUTANIX_USERNAME: The account designated for API interaction (mandatory).
- NUTANIX_PASSWORD: The corresponding secret credential (mandatory).
- NUTANIX_INSECURE: Set to "true" if SSL certificate verification must be ignored (optional).
Compatibility with Other MCP Platforms
This server adheres strictly to the established MCP specification, implying compatibility with any client leveraging stdio transport. Consult your specific client's documentation for precise configuration syntax.
Operational Usage Patterns
Once the client connection is established and authenticated against Prism Central, LLMs can query the infrastructure via standardized MCP interactions.
Asset Inventory Retrieval
Invoke the following resource enumerators:
vms clusters hosts images subnets
The invoking agent will receive a structured JSON array detailing the requested resource set, suitable for subsequent analysis.
Detailed Asset Inspection
For deep dives into specific entities, utilize resource identifiers in URI format:
vm://{unique-identifier} cluster://{unique-identifier} host://{unique-identifier}
Detailed operational and configuration metadata for the specified asset will be returned as a comprehensive JSON payload.
Internal Structure and Maintenance
Directory Layout
mcp-nutanix/ ├── bin/ # Executables output directory ├── internal/ # Core logic and private packages │ ├── client/ # Encapsulation of Prism Central API client logic │ ├── codegen/ # Utilities for auto-generating boilerplate code │ └── json/ # Specialized JSON utility functions ├── pkg/ # Exported components and handlers │ ├── prompts/ # Implementations for MCP response formatting │ ├── resources/ # Handlers responsible for specific Nutanix objects │ └── tools/ # Handlers mapping to defined MCP operations └── Makefile # Automated scripts for common development tasks
Code Generation Workflow
To refresh derived components (like resource enumeration maps), execute the generation target:
bash make generate
Constraints and Known Limitations
- The response payload size is inherently constrained by the underlying MCP specification limits.
- Handling very large data structures returned by certain endpoints may lead to transmission errors.
- This iteration does not incorporate logic for data pagination; requests must fit within single response boundaries.
- Functionality is restricted to read-only operations (information retrieval); modification (CRUD) capabilities are absent.
Licensing and Credits
This project is distributed under the permissive MIT License (refer to the LICENSE file).
Acknowledgements: - The foundational Prism API provided by Nutanix. - The protocol implementation framework provided by Mark3Labs. - The Go SDK used for API interaction, developed by Nutanix Cloud Native.
Contribution Guidelines
As this is an experimental utility, there is no formal contributor onboarding process. Feedback via issues or direct pull requests is welcomed.
