Nutanix MCP服务器

一个通过大型语言模型(LLM)与Nutanix Prism Central API交互的模型上下文协议(MCP)服务器。

  • by thunderboltsid
  • Go
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 thunderboltsid/mcp-nutanix

使用说明

MCP Nutanix

一种模型上下文协议(MCP)服务器,用于通过大型语言模型(LLM)与Nutanix Prism Central API进行交互。

⚠️ 免责声明

这是一个实验项目

这个项目是作为一个个人项目创建的,旨在探索Go中模型上下文协议框架的功能。它是:

  • 非 Nutanix官方产品或工具
  • 非 由Nutanix支持、认可或维护
  • 非 适用于生产环境
  • 按原样提供 无任何保证或担保

使用风险自负:作者对使用此代码可能导致的任何问题、损坏或中断不承担任何责任。

概述

此MCP服务器允许LLM通过以下方式与Nutanix Prism Central交互:

  1. 使用用户凭据连接到Prism Central实例
  2. 列出各种资源(VM、群集、主机等)
  3. 通过基于URI的访问检索特定资源详细信息

该实现使用 Prism Go客户端 与Prism Central和 MCP Go库 以实现模型上下文协议。

入门指南

先决条件

  • 达到1.23或更高
  • 访问Nutanix Prism Central实例
  • 工具如 make 和 go fmt 用于建筑

建筑

# Clone the repository
git clone https://github.com/thunderboltsid/mcp-nutanix.git
cd mcp-nutanix

# Build the MCP server
make build

凭证配置

服务器支持两种凭据方法:

  1. 交互式凭据 (默认)-通过MCP提示与Claude配合使用
  2. 静态凭据 -不支持交互式提示的Cursor等工具需要

MCP客户端配置

要将此服务器与MCP客户端一起使用,您需要配置客户端以连接到服务器。

克劳德桌面/代码

创建或更新 ~/.anthropic/claude_desktop.json:

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

Claude在首次使用服务器时会提示您输入凭据。

光标

对于Cursor,您需要通过环境变量提供静态凭据,因为它不支持交互式提示。

创建或更新 ~/.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"
      }
    }
  }
}

环境变量:

  • NUTANIX_ENDPOINT -Prism Central IP或主机名(必需)
  • NUTANIX_USERNAME -API用户名(必需)
  • NUTANIX_PASSWORD -API密码(必需)
  • NUTANIX_INSECURE -对于自签名证书,设置为“true”(可选)

其他MCP客户端

此服务器遵循标准MCP协议,应与支持stdio传输的任何MCP客户端一起工作。有关配置说明,请参阅客户的文档。

用法

一旦MCP服务器配置了您的客户端并连接到Prism Central实例,LLM就可以通过MCP协议与之交互。

资源列表

要列出资源,请使用相应的工具:

vms
clusters
hosts
images
subnets

LLM将收到一个可以解析和分析的JSON资源列表。

资源访问

要访问特定资源,请使用资源URI:

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

LLM将收到有关特定资源的详细JSON信息。

发展

项目结构

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

代码生成

该项目使用代码生成来创建资源和工具处理程序。要更新这些:

make generate

局限性

  • 响应大小受MCP协议的限制
  • 一些响应大小较大的资源可能会导致错误
  • 当前实现中不支持分页
  • 仅支持读取操作,不支持创建/更新/删除

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

贡献

这是一个没有正式贡献过程的实验项目。随意创建问题或拉取请求。