Skip to content

Add a server-side option to completely disable MCP Apps #3488

Open

Description

@nicolasgarciac

Describe the feature or problem you’d like to solve

Add a server-side option to completely disable MCP Apps.

Currently, --features=mcp_apps_disable_form_deferral prevents write tools from being deferred to interactive forms, but MCP Apps are still enabled and UI metadata/resources are still exposed.

This means the MCP App UI can still open after the operation. This can interrupt the agent workflow and require additional UI interaction even though the underlying write has already been applied.

What is missing is an option to disable MCP Apps entirely at the server level.

Proposed solution

Add an option such as:

--mcp-apps=false

and/or:

GITHUB_MCP_APPS=false

When disabled, the server should:

  • not expose MCP Apps UI metadata/resources
  • not use form deferral
  • execute tools normally and return inline results

The default can remain enabled, so this would be fully backwards compatible.

This would complement, not replace --features=mcp_apps_disable_form_deferral

Example prompts or workflows (for tools/toolsets only)

Not applicable. This is a server configuration option rather than a new tool.

Additional context

I use the same GitHub MCP Docker image from multiple MCP clients, each with different ways of enabling or disabling MCP Apps.

A server-side opt-out would provide one deterministic configuration for Docker/headless deployments instead of requiring client-specific workarounds.

Activity

  1. tobiasnaumann commented on Nov 4, 2026

    @tobiasnaumann

    +1, and I'd like to add a design argument beyond the Claude rendering bug in #2823.

    Since the form deferral became the default (Oct 1), every issue_write / create_pull_request from claude.ai goes through a form. In our case the form collapses after ~1s, so the connector is effectively read-only. But even if the form rendered correctly, I think the approach is wrong:

    Policy belongs to the user and the host, not the server. The host already has an approval layer (per-tool permissions: "ask first" / "always allow"). The server adding a second, non-configurable approval step means the user can no longer decide what they want to review. Setting the tools to "Always allow" has no effect. If I delegate work to an agent, I decide what needs confirmation, not the tool the agent happens to use.

    A form is not a confirmation, it's an editing UI. It puts the user back into operating software, which defeats the point of delegating to an assistant. For low-risk, easily reversible actions like editing an issue in a private org repo, a mandatory form is disproportionate.

    Failing closed makes it worse. When the form can't hydrate, nothing happens and there is no fallback.

    Suggestions:

    • Make form deferral opt-in, or at least respect the host's tool permissions
    • Express risk via MCP tool annotations (destructiveHint, openWorldHint) and let the host apply policy
    • Fall back to direct execution (or a clear error) if the form round-trip fails
    • Document mcp_apps_disable_form_deferral until then
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestinsidersFeatures for the Insiders mode of the GitHub MCP Serveruser-experience

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions