MCP Governance - Allow/Deny List for MCP for Organizations and Teams
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 30/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- go
- Domínio
- authorization, backend-api-design, security
Direção de pesquisa
A issue não nomeia arquivos, testes nem pontos de entrada. Comece localizando o caminho de solicitação de ferramentas MCP no lado do servidor e o modelo existente de autorização de organizações e equipes. A implementação concluída deve abranger os padrões da organização, as exceções específicas de equipes, o comportamento de ferramentas negadas e testes para os três workflows descritos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Feature Request: Allow and deny list for MCP Enterprises.
Describe the feature or problem you’d like to solve
GitHub Copilot's agentic features can leverage a powerful set of tools, including specific MCP Servers (e.g., "Azure MCP", "microsoft-docs", "playwright") and other extensions. While individual users can enable these tools locally, there is no centralized, enterprise-level control to enforce which tools are approved for use.
This creates a governance and security gap, as a user could enable and send data to an unvetted third-party tool. Furthermore, a single, organization-wide policy is too restrictive, as specialized teams (like QA or security) often require access to tools that should be denied to the general developer population.
Proposed solution
Implement a server-side MCP Server & Tool Governance Policy that is configurable at both the organization and team levels. This would allow administrators to set a baseline policy and grant specific exceptions for teams with elevated needs.
The workflow would be:
- An administrator sets a default tool policy for the entire organization (e.g., "Deny by Default").
- The administrator then creates more permissive policies for specific GitHub Teams (e.g., Allow the "playwright" tool for the
@qa-engineersteam). - When a user issues a prompt, the Copilot service checks the required tool against the policies that apply to that user, starting with their team-specific policies and then falling back to the organization default.
- If an "allow" policy is matched, the request proceeds. If the tool is explicitly denied or not covered by an allow policy, the request is blocked and the user is notified.
This layered approach provides both a strong security baseline and the flexibility required for real-world enterprise operations.
Example prompts or workflows (for tools/toolsets only)
-
Workflow: Using an Approved MCP Server (Org-Wide)
- An administrator has added "MCP Server: microsoft-docs" to the enterprise-wide allow list.
- Any developer in the organization prompts: "Please research how to set up Azure Key Vault using the official Microsoft Docs."
- The server-side check confirms the tool is allowed at the organization level, and the request is processed successfully.
-
Workflow: Attempting to Use a Denied MCP Server
- The organization's default policy denies the "MCP Server: playwright" tool.
- A developer who is not on the QA team enables it locally and prompts: "Generate a Playwright test script for my login page."
- The server-side check finds the tool is denied by the default policy and no team-based exception applies. The request is blocked.
- Copilot responds: "I am unable to use the 'playwright' tool as it is not approved for your team. Please contact your IT governance team for more information."
-
Workflow: Handling an Exception for a Specialized Team
- The default policy denies the "playwright" tool, but the administrator has created a policy that allows it for the
@qa-engineersGitHub Team. - A developer who is a member of
@qa-engineersprompts: "Generate a Playwright test script for my login page." - The server-side check first sees the user is part of the
@qa-engineersteam and finds the corresponding "allow" policy for the "playwright" tool. - The request is approved and processed successfully, bypassing the organization's default denial.
- The default policy denies the "playwright" tool, but the administrator has created a policy that allows it for the
Additional context
This feature is critical for applying realistic security and data governance policies. By managing tools with a combination of organization-wide defaults and team-based exceptions, enterprises can establish a secure baseline while empowering specialized teams with the advanced tools they need. The image below shows the exact type of tools that require this flexible, centralized governance.
- Linguagem predominante
- Go
- Estrelas
- 33.1k
- Forks
- 5k
- Merge médio
- 2d 1h
- PRs com merge (30d)
- 25
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de github/github-mcp-server
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
github/github-mcp-server#3235 ·
-
enhancement
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
github/github-mcp-server#3042 · 2 comentários ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
github/github-mcp-server#3032 · 1 reação ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
github/github-mcp-server#2803 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
github/github-mcp-server#2740 ·
Todas as issues de github/github-mcp-server
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
bug group: validation priority: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
codecheckers/chekhov#51 ·
-
Creating worktree from an existing remote branch with a slash in it, has unexpected behaviour Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100