Integrates with Make for building the MCP server and running utility commands like code generation.
Enables interaction with Nutanix Prism Central APIs, providing tools for listing and retrieving detailed information about various resources such as VMs, clusters, hosts, images, and subnets within a Nutanix environment.
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.
Related MCP server: Nessus MCP Server
Overview
This MCP server allows LLMs to interact with Nutanix Prism Central by:
Connecting to a Prism Central instance with user credentials
Listing various resources (VMs, Clusters, Hosts, etc.)
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
makeandgo fmtfor building
Building
Credential Configuration
The server supports two credential methods:
Interactive credentials (default) - Works with Claude via MCP prompts
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:
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:
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:
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:
The LLM will receive detailed JSON information about the specific resource.
Development
Project Structure
Code Generation
The project uses code generation to create resource and tool handlers. To update these:
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
Nutanix for creating the Prism API
Mark3Labs for the MCP Go library
Nutanix Cloud Native for the Prism Go Client
Contributing
This is an experimental project with no formal contribution process. Feel free to create issues or pull requests.