logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mcp-nutanix-pc-connector

A server implemented in Go designed to facilitate interaction between Large Language Models (LLMs) utilizing the Model Context Protocol (MCP) and backend resources managed via Nutanix Prism Central (PC).

Author

MCP Server

thunderboltsid

MIT License

Quick Info

GitHub GitHub Stars 10
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

cloudthunderboltsidnutanixplatforms cloudcloud platformscloud platform

Nutanix Prism Central MCP Interface

This utility acts as a Model Context Protocol (MCP) gateway, enabling generative AI models to query and retrieve state information from a Nutanix Prism Central deployment.

:warning: Experimental Status Notice

BE ADVISED: THIS IS NOT PRODUCTION-READY SOFTWARE.

This component originated as an exercise to explore Go-based implementations of the MCP framework. Key characteristics:

  • It is not an official utility provided or supported by Nutanix.
  • It carries no official endorsement or maintenance commitment from the vendor.
  • It should never be deployed in mission-critical or production environments.
  • It is supplied strictly "AS IS," without any form of warranty or assurance regarding fitness for purpose or stability.

USER ASSUMES ALL RISK: The creator is not liable for any operational disruption, data inconsistencies, or system failures resulting from the deployment or utilization of this source code.

Core Functionality Summary

This MCP server bridges LLMs to the Nutanix ecosystem by:

  1. Establishing authenticated connectivity to a specified Prism Central instance using supplied credentials.
  2. Enumerating inventory elements (e.g., Virtual Machines, Cluster definitions, Host hypervisors, Image repositories).
  3. Fetching granular configuration details for entities identified by unique resource locators (URIs).

The underlying mechanism leverages the official Prism Go Client Library for API calls and the MCP Go Abstraction Layer for protocol adherence.

Initial Setup Guide

Prerequisites

  • Go compiler version 1.23 or newer.
  • Network access to a functional Nutanix Prism Central deployment.
  • Standard development utilities such as make and go fmt.

Compilation Process

bash

Obtain the source repository

git clone https://github.com/thunderboltsid/mcp-nutanix.git cd mcp-nutanix

Compile the executable server application

make build

Authentication Methods

The server accommodates two distinct credential injection strategies:

  1. Interactive Mode (Default): Suitable for clients like Claude that can manage sequential prompting exchanges.
  2. Static Configuration: Necessary for tools (e.g., Cursor) lacking interactive prompt capabilities, relying on pre-set environment variables or configuration files.

MCP Client Integration Details

Configuration specifics depend on the consuming MCP client software.

Configuration for Claude Desktop/Code

Modify or establish the configuration file located at ~/.anthropic/claude_desktop.json:

{ "mcpServers": { "nutanix": { "command": "/path/to/mcp-nutanix" } } }

Upon first invocation, Claude will automatically initiate the credential dialogue.

Configuration for Cursor

Since Cursor prohibits interactive input, static credentials must be injected via environment mappings within ~/.cursor/mcp.json:

{ "mcpServers": { "nutanix": { "command": "/path/to/mcp-nutanix", "env": { "NUTANIX_ENDPOINT": "your-prism-central-ip-or-hostname", "NUTANIX_USERNAME": "your-username", "NUTANIX_PASSWORD": "your-password", "NUTANIX_INSECURE": "true" } } } }

Required Environment Variables: - NUTANIX_ENDPOINT: The FQDN or IP address of the Prism Central instance (mandatory). - NUTANIX_USERNAME: The API user identifier (mandatory). - NUTANIX_PASSWORD: The corresponding secret for the API user (mandatory). - NUTANIX_INSECURE: Setting this to "true" bypasses certificate validation for self-signed CAs (optional).

Third-Party MCP Clients

This implementation strictly adheres to the established MCP specification, ensuring compatibility with any client utilizing standard stdio communication. Consult your specific client's documentation for integration steps.

Operational Use Cases

After successful client setup and connection to the targeted Prism Central deployment, LLMs can issue requests.

Resource Index Retrieval

Execute the following tool calls to fetch collection summaries:

vms clusters hosts images subnets

The LLM payload will subsequently contain a parsable JSON array detailing the retrieved collection members.

Entity Detail Fetching

To query the specific metadata for an object, utilize its unique identifier within the corresponding resource scheme:

vm://{uuid} cluster://{uuid} host://{uuid}

The resulting response will deliver comprehensive JSON attributes pertaining to the requested entity.

Internal Development Structure

Directory Layout

mcp-nutanix/ ├── bin/ # Built executable artifacts ├── internal/ # Private implementation packages │ ├── client/ # Logic for PC API communication │ ├── codegen/ # Utilities for automated code generation │ └── json/ # Specialized JSON utility functions ├── pkg/ # Publicly releasable components │ ├── prompts/ # Handlers for MCP prompt interpretation │ ├── resources/ # Modules responsible for resource abstraction │ └── tools/ # Implementations of exposed MCP tools └── Makefile # Build targets and helper scripts

Code Re-generation Procedure

If modifications necessitate updating auto-generated files (e.g., interface definitions), execute the regeneration target:

bash make generate

Current Constraints

  • Operation throughput is constrained by the maximum payload size defined within the MCP specification.
  • Retrieving entities with exceptionally large attribute sets might trigger data truncation or process failure.
  • The current feature set lacks support for data pagination; fetching large collections may yield incomplete results.
  • This implementation is restricted to read-only actions; write operations (create, modify, delete) are not supported.

Licensing Information

This project is distributed under the terms of the MIT License (refer to the LICENSE file).

Acknowledgements

  • Gratitude to Nutanix for providing the underlying Prism API.
  • Appreciation to Mark3Labs for developing the foundational MCP Go library.
  • Thanks to the Nutanix Cloud Native organization for the official Prism Go Client SDK.

Contribution Policy

As this remains an experimental side project, there is no formal contribution pipeline. Suggestions, bug reports (issues), or proposed code changes (pull requests) are welcome.

See Also

`