ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

goose 怎么配置扩展白名单限制可安装的 MCP 扩展?

goose 怎么配置扩展白名单限制可安装的 MCP 扩展? goose 怎么配置扩展白名单限制可安装的 MCP 扩展【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goosegoose 默认允许把任意 MCP server 安装为扩展这在企业环境里意味着任何人都可以让 goose 加载不受信任的扩展。本文介绍如何用扩展白名单Extension Allowlist限制 goose Desktop 和 CLI 只安装指定列表内的 MCP 扩展管理员准备一份 YAML 白名单并部署到 URL通过环境变量GOOSE_ALLOWLIST指向它之后所有不在白名单里的扩展安装命令都会被 goose 拒绝。白名单的工作方式配置白名单前先了解 goose 的检查逻辑它决定了配置方式白名单是一个 YAML 文件内容是一份允许安装的扩展命令列表goose 从GOOSE_ALLOWLIST环境变量指定的 URL 拉取白名单白名单在首次需要时拉取并缓存之后每次 goose 重启都会重新拉取用户安装扩展时goose 把该 MCP server 的安装命令与白名单逐条比对命令不在白名单中安装即被拒绝。比对是精确匹配白名单里的command必须是扩展安装命令的完整字符串想只放行特定路径下的命令就把完整路径写进去。第一步创建并部署白名单 YAML 文件白名单文件结构如下extensions是列表每项包含一个id扩展标识和一个command允许的安装命令extensions: - id: extension-id-1 command: command-name-1 - id: extension-id-2 command: command-name-2文档给出的示例只放行 Slack、GitHub 和 Jira 三个扩展时白名单写成extensions: - id: slack command: uvx mcp_slack - id: github command: uvx mcp_github - id: jira command: uvx mcp_jira创建完成后必须把这份 YAML 部署到一个可通过 URL 访问的位置。文档明确要求使用 HTTPS URL以防止中间人攻击并且限制只有授权用户可以编辑白名单内容。第二步设置 GOOSE_ALLOWLIST 环境变量创建名为GOOSE_ALLOWLIST的环境变量值设为白名单文件的 URLexport GOOSE_ALLOWLISThttps://example.com/goose-allowlist.yaml需要长期生效时把这行export加到 shell 配置文件里文档提到 Mac 上对应~/.bashrc或~/.zshrc。两个关键行为需要注意未设置该变量时不应用任何白名单限制所有扩展都可以安装。也就是说白名单是默认关闭的只有显式设置了GOOSE_ALLOWLIST才开始生效GOOSE_ALLOWLIST除了在环境中导出也可以写入 goose 的config.yaml配置文件文档中该变量的值要求是 Valid URL默认值为 None。环境变量文档同样将其列在 Security and Privacy 一节的变量表中。验证白名单是否生效验证方式就是正常走一遍扩展安装流程放行项安装白名单内的扩展。例如通过goose configure选择Add Extension或 Desktop 侧边栏的Extensions→Add custom extension填入白名单中已有的命令如uvx mcp_slack安装应成功拦截项尝试安装一个不在白名单里的扩展其安装命令与白名单不匹配安装应被 goose 拒绝持续观察文档建议在后续使用中关注扩展安装时出现的被拒绝命令这些被拒记录可能提示有人尝试安装不受信任的扩展。另外注意缓存行为白名单首次需要时拉取并缓存之后每次 goose 重启重新拉取。修改白名单文件后需要重启 goose 才能让新列表生效。扩展被意外拒绝时的排查如果白名单内的扩展也被拒绝按 白名单指南给出的顺序逐项检查确认GOOSE_ALLOWLIST环境变量设置正确确认白名单文件能从服务器正常访问确认白名单文件是格式正确的 YAML查看系统日志检查与拉取或解析白名单相关的错误。系统日志位置Unix-like 为~/.local/state/goose/logs/Windows 为%APPDATA%\Block\goose\data\logs\确认扩展安装时的命令与白名单中的command完全一致——这是最容易被忽略的一项多一个空格或参数顺序不同都会导致拒绝。适用边界与限制白名单的粒度是安装命令而非扩展功能它决定哪些 MCP server 能装装好之后扩展内部的工具调用管控不在本文范围内匹配是精确字符串匹配不做模糊或前缀匹配因此白名单要写完整命令字符串文档之间的一个不一致需要留意headless 模式教程中的示例把GOOSE_ALLOWLIST指向.json文件但白名单指南明确定义白名单必须是 YAML 文件以指南为准部署时使用.yaml文档同时建议定期审计白名单确保列表里只包含你真正想放行的命令。完整的白名单说明见 documentation/docs/guides/allowlist.md。【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表