Chef服务器数据访问协议

一个提供AI助手只读访问Chef服务器数据的模型上下文协议服务器,包括节点、角色、cookbooks、数据包、环境等。

  • by aknarts
  • Go
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 aknarts/chef-server-mcp

使用说明

厨师服务器MCP

一种模型上下文协议(MCP)服务器,为AI助手提供对Chef server数据的只读访问,包括节点、角色、食谱、数据包、环境等。

特性

  • 只读Chef服务器访问 通过厨师API
  • 多组织支持 带有别名和默认值
  • 全面的厨师数据访问:节点、角色、用户、烹饪书、数据包、环境
  • 搜索功能 包含解码和原始JSON结果
  • 基于Docker的部署 便于安装
  • MCP协议合规性 实现无缝的AI助手集成

配置

环境变量

变量 必填 描述
CHEF_USER 是 API身份验证的厨师用户名
CHEF_KEY_PATH 是 Chef私钥文件(.pem)的路径
CHEF_SERVER_URL 是 厨师服务器基本URL(无组织路径)
CHEF_DEFAULT_ORG 否 未指定时使用的默认组织
CHEF_ORG_ALIASES 否 JSON或key=value格式的组织别名

组织支持

服务器通过以下方式支持多个组织:

  • 默认组织:通过设置 CHEF_DEFAULT_ORG
  • 组织别名:通过设置 CHEF_ORG_ALIASES (例如。, "qa=qa1,prod=fireamp_classic")
  • 按请求组织:在单独的MCP工具调用中指定

IDE集成

Visual Studio Code

添加到您的VSCode设置(.vscode/settings.json 或全局设置):

{
  "mcpServers": {
    "chef-server": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "--env", "CHEF_USER=your-username",
        "--env", "CHEF_KEY_PATH=/chef/your-username.pem",
        "--env", "CHEF_SERVER_URL=https://your-chef-server.com/",
        "--env", "CHEF_ORG_ALIASES=qa=qa1,prod=production",
        "--env", "CHEF_DEFAULT_ORG=qa1",
        "--volume", "/path/to/.chef:/chef:ro",
        "ghcr.io/aknarts/chef-server-mcp:latest"
      ]
    }
  }
}

GitHub Copilot

添加到您的Copilot配置中:

{
  "servers": {
    "chef-server": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "--env", "CHEF_USER=your-username",
        "--env", "CHEF_KEY_PATH=/chef/your-username.pem",
        "--env", "CHEF_SERVER_URL=https://your-chef-server.com/",
        "--env", "CHEF_ORG_ALIASES=qa=qa1,prod=production",
        "--env", "CHEF_DEFAULT_ORG=qa1",
        "--volume", "/path/to/your/.chef:/chef:ro",
        "ghcr.io/aknarts/chef-server-mcp:latest"
      ]
    }
  }
}

重要提示:

  • 这 --volume 旗帜映射您的本地 .chef 目录到 /chef 集装箱内
  • 这 CHEF_KEY_PATH 必须指向文件路径 内部 容器(例如。, /chef/your-username.pem)
  • 确保卷路径与您的实际本地路径匹配 .chef 目录位置

可用工具

工具 说明
listNodes 列出所有节点名称
getNode 获取详细的节点信息
listRoles 列出所有角色名称
getRole 获取角色定义并运行列表
listUsers 列出所有用户名
getUser 获取用户详细信息
search 执行厨师搜索查询(解码结果)
searchJSON 执行Chef搜索查询(原始JSON结果)
getOrganization 获取组织详细信息
listCookbooks 列出烹饪书及其版本
getCookbook 获取烹饪书元数据和文件
listDataBags 列出所有数据包名称
listDataBagItems 列出数据包中的项目
getDataBagItem 获取特定数据包项目
listEnvironments 列出所有环境
getEnvironment 获取环境配置

所有工具支持可选 organization 用于多组织设置的参数。

发展

有关开发说明、从源代码构建和贡献指南,请参阅 Developpent.md.

许可证

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