feat(admin): Implement admin allowlist for MCP server configurations#18311
feat(admin): Implement admin allowlist for MCP server configurations#18311
Conversation
|
Hi @skeshive, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this. We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines. Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed. Thank you for your understanding and for being a part of our community! |
Summary of ChangesHello @skeshive, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the security and manageability of MCP server configurations within the CLI. By introducing an admin allowlist, it centralizes control over which MCP servers can be used and how they are executed, preventing unauthorized or insecure local configurations. This change ensures that critical server parameters and tool filtering policies are consistently applied as defined by administrators, thereby improving the overall integrity and security posture of the system. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces an admin allowlist for MCP server configurations, a valuable security enhancement. However, a critical flaw exists in the loadCliConfig merge logic, allowing users to bypass the intended security control by overriding admin-provided server URLs using deprecated fields like httpUrl. Additionally, there's a potential issue where merging tool-filtering settings might unintentionally clear local exclusion lists, and an additional test case would be beneficial to cover this scenario.
|
Size Change: -4.02 kB (-0.02%) Total Size: 23.7 MB
ℹ️ View Unchanged
|
Summary
This PR introduces admin allowlist mechanism for MCP server configurations. When
admin.mcp.configis enabled and configured, the CLI will filter locally defined MCP servers, only allowing those present in the admin allowlist. For allowed servers, localcommand,args,env, andcwdfields will be cleared for security, and admin-defined tool filters will take precedence.Details
admin.mcp.configis set, only servers explicitly listed in this configuration will be considered.url,type, andtrustwill be applied, while local executable-related fields (command,args,env,cwd) will be nullified to prevent local overrides of secure admin configurations.includeToolsandexcludeToolswill override local settings for tool filtering, ensuring consistent tool exposure. If admin does not define tool filters, local tool filters will still be used.Related Issues
https://github.com/google-gemini/maintainers-gemini-cli/issues/1178