Duo Workflow ADR: Unify around MCP standard for all Duo Workflow integrations
Why is this change being made?
This ADR propose a new approach to tools implementation for Duo Workflow platform.
Instead of tools being spread across 3 repositories:
- Duo Workflow Service define tools, their contracts and description (eg:
find_filesis being defined at Duo Workflow Service), - Duo Workflow Executors implements tools definitions from Duo Workflow Service (eg:
find_files.goin the Go executor, and onfind_files.tsfor Node executor).
Which creates coupling and complexity, that can enforce changes across 3 repositories that must be coordinate. An example of such change that required coordination is https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/issues/1062
This ADR proposed MCP based architecture outline self contained components, which communicates using MCP protocol standard. It aims to increase system flexibility, composability, and backwards compatibility. It simplifies and makes tools development more inclusive empowering tools contributions from engineers outside of devopsai-powered and even community contributors
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 - For high-priority company-wide announcements work with the internal communications team to post the update in #company-fyi and align on a plan to circulate in additional channels like the "While You Were Iterating" Newsletter
-
Commits
- Duo Workflow ADR: MCP unification