Remove the mcp_toolsets feature flag

What does this MR do and why?

Removes the mcp_toolsets feature flag and its YAML definition. MCP server toolset selection is now always on: tools/list honours the X-Gitlab-Enabled-Mcp-Server-Toolsets header, falls back to the default toolsets when neither the tools nor the toolsets header is set, and annotates every tool with its toolset.

References

Screenshots or screen recordings

No UI changes.

How to set up and validate locally

  1. Make sure the flag has no stored state: Feature.remove(:mcp_toolsets) in rails console.
  2. Call tools/list on the MCP endpoint with a personal access token that has the mcp scope:
    curl -s -X POST http://gdk.test:3000/api/v4/mcp \
      -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
      -H "X-Gitlab-Enabled-Mcp-Server-Toolsets: ci" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | jq '.result.tools[] | {name, toolset: .annotations.toolset}'
  3. Only ci tools and the always-on tools come back, and each has a toolset annotation.
  4. Repeat without the toolsets header. Only the default toolsets are returned.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Terri Chu

Merge request reports

Loading
Loading