MCP GraphQL Integration design document - Implemented

Why is this change being made?

💡 Provide a detailed answer to the question on why this change is being proposed, in accordance with our value of Transparency.

Please add the details saying why, not just what in this section. Example: We have discussed the topic in Slack - (copy of Slack conversation). The current process is not efficient, this MR makes the description of X more clear, and helps move Y forward.

Updates the MCP GraphQL Integration design document to reflect the implemented architecture. Key changes include:

Status Update: Marks the design as implemented (previously ongoing)

Architecture Refinements:

  • Renamed McpToolBaseGraphqlTool and moved from lib/gitlab/graphql/mcp/ to app/services/mcp/tools/
  • Enhanced Versionable concern with GraphQL-specific methods for operation retrieval and version-specific variable building
  • Introduced composite tool pattern for grouping related operations into unified interfaces

Implementation Details:

  • Added version metadata support for storing GraphQL operations and operation names
  • Documented version-specific build_variables methods (e.g., build_variables_0_2_0)
  • Clarified limitation: one mutation operation per tool invocation
  • Updated code examples to reflect actual implementation patterns

Documentation Improvements:

  • Removed outdated multiple mutations example (replaced with composite tool pattern)
  • Added real-world examples: work item notes creation/retrieval tools
  • Updated file paths, class names, and method signatures throughout
  • Clarified future enhancements: multiple mutations via service-level aggregation

Author and Reviewer Checklist

Please verify the check list and ensure to tick them off before the MR is merged.

  • Provided a concise title for this Merge Request (MR)
  • Added a description to this MR explaining the reasons for the proposed change, per say why, not just what
    • Copy/paste the Slack conversation to document it for later, or upload screenshots. Verify that no confidential data is added, and the content is SAFE
  • Assign reviewers for this MR to the correct
    • The when to get approval handbook section explains when DRI approval is required
    • The who can approve handbook section explains how to identify the DRI
    • If the MR does not require DRI approval, consider asking someone on your team, such as your manager.
    • The approver may merge the MR. If they approve but don't merge, you can merge.
  • For transparency, share this MR with the audience that will be impacted.
    • Team: For changes that affect your direct team, share in your group Slack channel
    • Department: If the update affects your department, share the MR in your department Slack channel
    • Division: If the update affects your division, share the MR in your division Slack channel
    • Company: If the update affects all (or the majority of) GitLab team members, post an update in #whats-happening-at-gitlab linking to this MR

Commits

  • Update MCP GraphQL Integration design document

Edited by Naman Jagdish Gala

Merge request reports

Loading