GitHub MCP Server 怎么配置 toolsets 与单个 tools 来控制可用工具范围?
GitHub MCP Server 怎么配置 toolsets 与单个 tools 来控制可用工具范围【免费下载链接】github-mcp-serverGitHubs official MCP Server项目地址: https://gitcode.com/GitHub_Trending/gi/github-mcp-server如果你的 MCP 客户端里 GitHub MCP Server 暴露的工具太多影响模型选工具或占用上下文就可以用toolsets工具集和tools单个工具两级控制把可用范围收敛到需要的部分。本地服务通过--toolsets/--tools命令行参数或GITHUB_TOOLSETS/GITHUB_TOOLS环境变量配置远程托管服务https://api.githubcopilot.com/mcp/通过X-MCP-Toolsets/X-MCP-Tools请求头或/x/{toolset}URL 路径配置。两者概念一致下文分开给出各自的完整写法。配置前先知道这几条规则默认行为不指定任何 toolset 时服务器使用默认 toolsetscontext、issues、pull_requests、repos、users。组合是增量的additivetools和toolsets可以同时使用工具集里已有工具再加单个工具不会互相覆盖。例如--toolsets repos,issues --tools get_gist会注册repos和issues的全部工具外加get_gist。排除优先--exclude-tools/X-MCP-Exclude-Tools列出的工具无论如何都不可用即使其 toolset 已启用或该工具被显式加进--tools。只读模式优先级最高开启--read-only/X-MCP-Readonly后写入类工具即使被显式请求也会被禁用例如issues工具集里的create_issue在只读模式下不可用。名称必须精确工具名必须完全匹配例如get_file_contents而不是getFileContents。本地服务遇到无效工具名会在启动时报错退出。toolset 不止包含 Tools相应的 MCP Resources 和 Prompts 在适用时也会随 toolset 一起启用。本地服务的优先级GITHUB_TOOLSETS环境变量与--toolsets同时提供时环境变量优先。可用的 toolset 全表见 README 的 Available Toolsets 章节常用的有context强烈建议保留提供当前用户与上下文信息、repos、issues、pull_requests、actions、code_security、gists等完整工具清单见 README 的 Tools 章节配置时必须按那里列出的精确名称填写。本地服务用 toolsets 收窄范围以 Docker 方式运行时把 toolset 允许列表放进GITHUB_TOOLSETS环境变量your-token替换为你自己的 GitHub PATdocker run -i --rm \ -e GITHUB_PERSONAL_ACCESS_TOKENyour-token \ -e GITHUB_TOOLSETSrepos,issues,pull_requests,actions,code_security \ ghcr.io/github/github-mcp-server不走 Docker 时直接给进程传参或设置环境变量github-mcp-server --toolsets repos,issues,pull_requests,actions,code_securityGITHUB_TOOLSETSrepos,issues,pull_requests,actions,code_security ./github-mcp-server两个特殊值all启用全部可用 toolset./github-mcp-server --toolsets alldefault等价于默认的五个 toolset。想保留默认再加一些时写GITHUB_TOOLSETSdefault,stargazers ./github-mcp-server。本地服务只开单个工具或与 toolsets 叠加明确知道只需要哪几个工具时用--tools传逗号分隔的精确工具名适合优化上下文只加载会用到的工具github-mcp-server --tools get_file_contents,issue_read,create_pull_requestGITHUB_TOOLSget_file_contents,issue_read,create_pull_request ./github-mcp-servertoolset 加单个工具的典型写法——整组启用repos和issues再从gists里只挑get_gistgithub-mcp-server --toolsets repos,issues --tools get_gistDocker 下同样通过环境变量叠加# Tools only docker run -i --rm \ -e GITHUB_PERSONAL_ACCESS_TOKENyour-token \ -e GITHUB_TOOLSget_file_contents,issue_read,create_pull_request \ ghcr.io/github/github-mcp-server # Tools combined with toolsets (additive) docker run -i --rm \ -e GITHUB_PERSONAL_ACCESS_TOKENyour-token \ -e GITHUB_TOOLSETSrepos,issues \ -e GITHUB_TOOLSget_gist \ ghcr.io/github/github-mcp-server想开大工具集但砍掉个别危险工具时用排除参数github-mcp-server --toolsets pull_requests --exclude-toolscreate_pull_request,merge_pull_request结果pull_requests工具集全部启用但create_pull_request与merge_pull_request被移除只剩读取和 review 类工具。在 MCP 客户端配置文件中怎么写VS Code 的 MCP 配置用 JSON 描述进程args里带stdio子命令加参数即可${input:github_token}是 VS Code 安装流程中的输入变量由 VS Code 在配置时让你填入 token其他 MCP 宿主则直接写自己的 token 环境变量各宿主的配置语法参考 安装指南{ type: stdio, command: go, args: [ run, ./cmd/github-mcp-server, stdio, --toolsetsrepos,issues, --toolsget_gist,pull_request_read ], env: { GITHUB_PERSONAL_ACCESS_TOKEN: ${input:github_token} } }对应效果仓库和 issue 相关工具全开外加get_gist与pull_request_read。更多组合示例最小配置、只读模式等见服务器配置指南。远程服务用请求头或 URL 路径远程服务没有启动参数配置方式是给 HTTP 连接加请求头。同时启用 toolset 与单个工具{ type: http, url: https://api.githubcopilot.com/mcp/, headers: { X-MCP-Toolsets: repos,issues, X-MCP-Tools: get_gist,pull_request_read } }排除工具与只读模式同理用X-MCP-Exclude-Tools、X-MCP-Readonly头。也可以只用 URL 路径选单个toolset例如{ type: http, url: https://api.githubcopilot.com/mcp/x/issues/readonly }路径规则要注意{toolset}只能写一个工具集不支持逗号分隔列表要组合多个 toolset 必须用X-MCP-Toolsets头/x/all表示全部 toolsetURL 尾部可追加/readonly、/insiders等修饰。完整路径模式与请求头说明见远程服务文档。结果验证与常见问题排查配置正确与否可以从这几条文档明确的行为来判断本地服务--tools里出现无效工具名时服务器启动失败并给出错误信息。启动报错时先检查工具名拼写对照 Tools 列表 使用精确名称。远程服务X-MCP-Tools里的无效工具会抛错并阻止服务器启动而X-MCP-Toolsets里的无效或未知 toolset 会被静默忽略不报错也不阻止启动——如果远程端看起来没生效优先怀疑 toolset 名拼错了。工具缺失官方排查表给出的对应关系是Tools missing → Toolset not enabled → 添加所需 toolset 或具体工具见服务器配置指南的 Troubleshooting 一节。写入工具不生效通常是只读模式开着移除--read-only或X-MCP-Readonly头即可。工具改名工具重命名后旧名会保留为别名旧配置不会直接报错详见工具重命名说明。两个容易踩的边界远程服务有本地没有的 toolsetcopilot、copilot_spaces、github_support_docs_search见 README它们只在远程端可用反过来本地图表里列的 toolset 在远程端都可用。toolsets/tools 控制的是暴露给模型哪些工具另外还有一层独立的、自动生效的 scope 过滤经典 PATghp_前缀会在启动时按 token 权限过滤工具这不需要配置与本文的参数不冲突。按上面的顺序操作即可先确定用本地还是远程选定要保留的 toolset 列表必要时叠加单个工具或排除项最后在 MCP 客户端重启服务器确认启动无报错、客户端里出现的工具列表与配置一致。【免费下载链接】github-mcp-serverGitHubs official MCP Server项目地址: https://gitcode.com/GitHub_Trending/gi/github-mcp-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考