A Model Context Protocol (MCP) server for interacting with Nutanix Prism Central APIs through Large Language Models (LLMs). 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 p
Add this skill
npx mdskills install thunderboltsid/mcp-nutanixWell-documented MCP server with clear setup for multiple clients and flexible credential methods
1# MCP Nutanix23A Model Context Protocol (MCP) server for interacting with Nutanix Prism Central APIs through Large Language Models (LLMs).45## ⚠️ Disclaimer67**THIS IS AN EXPERIMENTAL PROJECT**89This project was created as a personal project to explore the capabilities of the Model Context Protocol frameworks in Go. It is:1011- **NOT** an official Nutanix product or tool12- **NOT** supported, endorsed, or maintained by Nutanix13- **NOT** suitable for production environments14- **PROVIDED AS-IS** with no warranties or guarantees1516**USE AT YOUR OWN RISK**: The author takes no responsibility for any issues, damages, or outages that may result from using this code.1718## Overview1920This MCP server allows LLMs to interact with Nutanix Prism Central by:21221. Connecting to a Prism Central instance with user credentials232. Listing various resources (VMs, Clusters, Hosts, etc.)243. Retrieving specific resource details via URI-based access2526The implementation uses the [Prism Go Client](https://github.com/nutanix-cloud-native/prism-go-client) to communicate with Prism Central and the [MCP Go library](https://github.com/mark3labs/mcp-go) to implement the Model Context Protocol.2728## Getting Started2930### Prerequisites3132- Go 1.23 or higher33- Access to a Nutanix Prism Central instance34- Tools like `make` and `go fmt` for building3536### Building3738```bash39# Clone the repository40git clone https://github.com/thunderboltsid/mcp-nutanix.git41cd mcp-nutanix4243# Build the MCP server44make build45```4647## Credential Configuration4849The server supports two credential methods:50511. **Interactive credentials** (default) - Works with Claude via MCP prompts522. **Static credentials** - Required for tools like Cursor that don't support interactive prompts5354## MCP Client Configuration5556To use this server with MCP clients, you need to configure the client to connect to the server.5758### Claude Desktop/Code5960Create or update `~/.anthropic/claude_desktop.json`:6162```json63{64 "mcpServers": {65 "nutanix": {66 "command": "/path/to/mcp-nutanix"67 }68 }69}70```7172Claude will prompt you for credentials when first using the server.7374### Cursor7576For Cursor, you need to provide static credentials via environment variables since it doesn't support interactive prompts.7778Create or update `~/.cursor/mcp.json`:7980```json81{82 "mcpServers": {83 "nutanix": {84 "command": "/path/to/mcp-nutanix",85 "env": {86 "NUTANIX_ENDPOINT": "your-prism-central-ip-or-hostname",87 "NUTANIX_USERNAME": "your-username",88 "NUTANIX_PASSWORD": "your-password",89 "NUTANIX_INSECURE": "true"90 }91 }92 }93}94```9596**Environment Variables:**97- `NUTANIX_ENDPOINT` - Prism Central IP or hostname (required)98- `NUTANIX_USERNAME` - API username (required)99- `NUTANIX_PASSWORD` - API password (required)100- `NUTANIX_INSECURE` - Set to "true" for self-signed certificates (optional)101102### Other MCP Clients103104This 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.105106## Usage107108Once the MCP server is configured with your client and connected to your Prism Central instance, LLMs can interact with it through the MCP protocol.109110### Resource Listing111112To list resources, use the appropriate tool:113114```115vms116clusters117hosts118images119subnets120```121122The LLM will receive a JSON list of resources that it can parse and analyze.123124### Resource Access125126To access a specific resource, use a resource URI:127128```129vm://{uuid}130cluster://{uuid}131host://{uuid}132```133134The LLM will receive detailed JSON information about the specific resource.135136## Development137138### Project Structure139140```141mcp-nutanix/142├── bin/ # Compiled binaries143├── internal/ # Internal packages144│ ├── client/ # Prism Central client handling145│ ├── codegen/ # Code generation utilities146│ └── json/ # JSON helpers147├── pkg/ # components148│ ├── prompts/ # MCP prompt implementations149│ ├── resources/ # Resource handlers150│ └── tools/ # Tool handlers151└── Makefile # Build and utility commands152```153154### Code Generation155156The project uses code generation to create resource and tool handlers. To update these:157158```bash159make generate160```161162## Limitations163164- Response size is limited by the MCP protocol165- Some resources with large response sizes may cause errors166- No pagination support in the current implementation167- Only supports read operations, no create/update/delete168169## License170171This project is licensed under the MIT License - see the LICENSE file for details.172173## Acknowledgments174175- [Nutanix](https://www.nutanix.com/) for creating the Prism API176- [Mark3Labs](https://github.com/mark3labs) for the MCP Go library177- [Nutanix Cloud Native](https://github.com/nutanix-cloud-native) for the Prism Go Client178179## Contributing180181This is an experimental project with no formal contribution process. Feel free to create issues or pull requests.182
Full transparency — inspect the skill content before installing.