厨师服务器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许可证获得许可-请参阅 许可证 文件以获取详细信息。
