一个提供AI助手只读访问Chef Server数据的Model Context Protocol (MCP)服务器,包括节点、角色、食谱、数据包、环境等。
| 变量 | 必需 | 描述 |
|---|---|---|
CHEF_USER | 是 | 用于API认证的Chef用户名 |
CHEF_KEY_PATH | 是 | Chef私钥文件(.pem)的路径 |
CHEF_SERVER_URL | 是 | Chef Server的基本URL(不包括组织路径) |
CHEF_DEFAULT_ORG | 否 | 当未指定时使用的默认组织 |
CHEF_ORG_ALIASES | 否 | 组织别名,以JSON或键值对格式设置 |
该服务器通过以下方式支持多个组织:
CHEF_DEFAULT_ORG设置CHEF_ORG_ALIASES设置(例如,"qa=qa1,prod=fireamp_classic")添加到你的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=produciton",
"--env", "CHEF_DEFAULT_ORG=qa1",
"--volume", "/path/to/.chef:/chef:ro",
"ghcr.io/aknarts/chef-server-mcp:latest"
]
}
}
}
添加到你的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目录映射到容器内的/chefCHEF_KEY_PATH必须指向容器内的文件路径(例如,/chef/your-username.pem).chef目录位置匹配| 工具 | 描述 |
|---|---|
listNodes | 列出所有节点名称 |
getNode | 获取详细的节点信息 |
listRoles | 列出所有角色名称 |
getRole | 获取角色定义和运行列表 |
listUsers | 列出所有用户名 |
getUser | 获取用户详情 |
search | 执行Chef搜索查询(解码结果) |
searchJSON | 执行Chef搜索查询(原始JSON结果) |
getOrganization | 获取组织详情 |
listCookbooks | 列出食谱及其版本 |
getCookbook | 获取食谱元数据和文件 |
listDataBags | 列出所有数据包名称 |
listDataBagItems | 列出数据包中的项目 |
getDataBagItem | 获取特定的数据包项目 |
listEnvironments | 列出所有环境 |
getEnvironment | 获取环境配置 |
所有工具都支持多组织设置的可选organization参数。
有关开发指南、从源代码构建和贡献规则,请参阅DEVELOPMENT.md。
本项目根据MIT许可证发布 - 详情见LICENSE文件。