mcpField
M
MCP Nutanix

MCP Nutanix

Local
github.com/thunderboltsidCloud & Infra13Updated 39w ago

About MCP Nutanix

MCP Nutanix is an experimental server for connecting LLMs to Nutanix Prism Central. It supports read-only discovery and retrieval of infrastructure resources, with interactive or static credential configuration.

Key features

  1. 01List VMs, clusters, hosts, images, and subnets
  2. 02Retrieve resource details using URIs
  3. 03Support interactive or static credentials
  4. 04Read-only Prism Central access

Use cases

  1. 01Inspect Prism Central resource inventories
  2. 02Retrieve details for a VM or host
  3. 03Let an MCP client query Nutanix infrastructure

MCP support

The MCP server exposes Prism Central resource-listing tools and URI-based resource details to MCP clients. It supports stdio transport.

Configuration

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

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

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

MCP Nutanix

A Model Context Protocol (MCP) server for interacting with Nutanix Prism Central APIs through Large Language Models (LLMs).

⚠️ Disclaimer

THIS IS AN EXPERIMENTAL PROJECT

This project was created as a personal project to explore the capabilities of the Model Context Protocol frameworks in Go. It is:

  • NOT an official Nutanix product or tool
  • NOT supported, endorsed, or maintained by Nutanix
  • NOT suitable for production environments
  • PROVIDED AS-IS with no warranties or guarantees

USE AT YOUR OWN RISK: The author takes no responsibility for any issues, damages, or outages that may result from using this code.

Overview

This MCP server allows LLMs to interact with Nutanix Prism Central by:

  1. Connecting to a Prism Central instance with user credentials
  2. Listing various resources (VMs, Clusters, Hosts, etc.)
  3. Retrieving specific resource details via URI-based access

The implementation uses the Prism Go Client to communicate with Prism Central and the MCP Go library to implement the Model Context Protocol.

Getting Started

Prerequisites
  • Go 1.23 or higher
  • Access to a Nutanix Prism Central instance
  • Tools like make and go fmt for building
Building
# Clone the repository
git clone https://github.com/thunderboltsid/mcp-nutanix.git
cd mcp-nutanix

# Build the MCP server
make build

Credential Configuration

The server supports two credential methods:

  1. Interactive credentials (default) - Works with Claude via MCP prompts
  2. Static credentials - Required for tools like Cursor that don't support interactive prompts

MCP Client Configuration

To use this server with MCP clients, you need to configure the client to connect to the server.

Claude Desktop/Code

Create or update ~/.anthropic/claude_desktop.json:

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

Claude will prompt you for credentials when first using the server.

Cursor

For Cursor, you need to provide static credentials via environment variables since it doesn't support interactive prompts.

Create or update ~/.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"
      }
    }
  }
}

Environment Variables:

  • NUTANIX_ENDPOINT - Prism Central IP or hostname (required)
  • NUTANIX_USERNAME - API username (required)
  • NUTANIX_PASSWORD - API password (required)
  • NUTANIX_INSECURE - Set to "true" for self-signed certificates (optional)
Other MCP Clients

This server follows the standard MCP protocol and should work with any MCP client that supports stdio transport. Refer to your client's documentation for configuration instructions.

Usage

Once the MCP server is configured with your client and connected to your Prism Central instance, LLMs can interact with it through the MCP protocol.

Resource Listing

To list resources, use the appropriate tool:

vms
clusters
hosts
images
subnets

The LLM will receive a JSON list of resources that it can parse and analyze.

Resource Access

To access a specific resource, use a resource URI:

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

The LLM will receive detailed JSON information about the specific resource.

Development

Project Structure
mcp-nutanix/
├── bin/                  # Compiled binaries
├── internal/             # Internal packages
│   ├── client/           # Prism Central client handling
│   ├── codegen/          # Code generation utilities
│   └── json/             # JSON helpers
├── pkg/                  # components
│   ├── prompts/          # MCP prompt implementations
│   ├── resources/        # Resource handlers
│   └── tools/            # Tool handlers
└── Makefile              # Build and utility commands
Code Generation

The project uses code generation to create resource and tool handlers. To update these:

make generate

Limitations

  • Response size is limited by the MCP protocol
  • Some resources with large response sizes may cause errors
  • No pagination support in the current implementation
  • Only supports read operations, no create/update/delete

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Contributing

This is an experimental project with no formal contribution process. Feel free to create issues or pull requests.

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.