Skip to content

Add MCP server support for Consumption Logic Apps#8901

Open
Bhavd13 wants to merge 11 commits intomainfrom
bhavya/mcpconsumption
Open

Add MCP server support for Consumption Logic Apps#8901
Bhavd13 wants to merge 11 commits intomainfrom
bhavya/mcpconsumption

Conversation

@Bhavd13
Copy link
Contributor

@Bhavd13 Bhavd13 commented Mar 9, 2026

Commit Type

  • feature - New functionality
  • fix - Bug fix
  • refactor - Code restructuring without behavior change
  • perf - Performance improvement
  • docs - Documentation update
  • test - Test-related changes
  • chore - Maintenance/tooling

Risk Level

  • Low - Minor changes, limited scope
  • Medium - Moderate changes, some user impact
  • High - Major changes, significant user/system impact

What & Why

Adds MCP (Model Context Protocol) server support for Consumption Logic Apps. This enables consumption SKU workflows to connect to custom MCP servers and use MCP tools as actions, bringing feature parity with the Standard SKU's existing MCP support.

Impact of Change

  • Users: Consumption Logic Apps users can now add MCP Client connections (custom servers with 7 auth types) and use MCP tool actions in their workflows.
  • Developers: New consumption-specific MCP connector manifest, operation manifest, and connection creation flow. Follows existing patterns from Standard MCP implementation.
  • System: No backend changes — frontend only

Test Plan

  • Unit tests added/updated
  • E2E tests added/updated
  • Manual testing completed
  • Tested in:

Contributors

@Bhavd13

Screenshots/Videos

mcp.recording.mp4

Copilot AI review requested due to automatic review settings March 9, 2026 08:32
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

🤖 AI PR Validation Report

PR Review Results

Thank you for your submission! Here's detailed feedback on your PR title and body compliance:

PR Title

  • Current: Add MCP server support for Consumption Logic Apps
  • Issue: None — title is clear and accurate.
  • Recommendation: (Optional) You may consider adding "(frontend-only)" or "(Consumption SKU)" if you want to highlight scope explicitly, e.g. Add MCP server support for Consumption Logic Apps (frontend-only).

Commit Type

  • Properly selected (feature) — only one box checked which is correct.
  • Note: This PR introduces new functionality (MCP support) so feature is appropriate.

Risk Level

  • The PR body marks Medium and the PR has the risk:medium label. These match.
  • Advised risk level from code diff: risk:medium. (No change requested.)

What & Why

  • Current: Adds MCP (Model Context Protocol) server support for Consumption Logic Apps to enable consumption SKU workflows to connect to custom MCP servers and use MCP tools as actions.
  • Issue: None — description is concise and explains intent. Good mention of parity with Standard SKU.
  • Recommendation: (Optional) If you expect any future backend contract changes, call those out here; otherwise this is fine.

Impact of Change

  • Impact section present and clear.
  • Recommendation: Expand slightly on any potential failure modes (for reviewers): e.g., interactions with connection creation flows and dynamic lists can affect UX if authentication shapes change. Suggested wording to add if desired:
    • Users: Consumption Logic Apps users can create MCP connections and use tools (same as current text).
    • Developers: New consumption-specific MCP connector & operation manifests, plus connection creation flows. Recommend calling out any newly exported constants or public API surface changes to aid reviewers.
    • System: Frontend-only change — ensure backend dynamic list endpoints and expected request shapes are stable.

⚠️ Test Plan

  • Assessment: Unit tests were added (several new tests files) and cover connection & connector service logic. This matches the PR's checked box.
  • Recommendation: Add at least one integration/E2E test or a short manual test plan demonstrating the end-to-end flow against a test MCP server (listMcpTools, creating connections, and invoking a tool). Because the feature touches authentication shapes and dynamic invocation, an integration test would reduce the chance of regressions.

Contributors

  • @Bhavd13 is listed. Good to credit contributors. (If any PM/design or additional reviewers contributed, consider listing them too.)

⚠️ Screenshots/Videos

  • A link was provided. Since this is not primarily a visual change, screenshots are optional. If you updated UX elements (CreateConnection flow), consider adding screenshots of the connection creation UI for MCP connections to help reviewers.

Summary Table

Section Status Recommendation
Title Title is clear; optionally append "(frontend-only)" or SKU to highlight scope.
Commit Type feature selected — good.
Risk Level risk:medium selected and label present — OK.
What & Why Good concise explanation.
Impact of Change Good; consider adding a brief note on failure modes.
Test Plan Unit tests present. Add integration/E2E or a brief manual test plan for end-to-end validation.
Contributors Contributor listed. Consider adding any other contributors if applicable.
Screenshots/Videos ⚠️ Optional for this change; add screenshots if UI changed significantly.

Final notes / Actionable Recommendations

  1. Tests
    • Good: Unit tests were added and appear to exercise the new ConsumptionConnectionService and ConsumptionConnectorService behaviors.
    • Please add at least one integration/E2E test (or a short manual test checklist) that verifies an end-to-end scenario: add built-in MCP connection, call listMcpTools, and exercise an MCP tool action. This is important because the frontend is now composing requests to the backend with new shapes (AgentMcpConnection vs managed connection shapes) and authentication payloads.
  2. UI changes
    • You modified CreateConnection to hide the name field for built-in MCP connections using instanceof ConsumptionConnectionService. Consider adding a unit test for the CreateConnection component that validates the hide/show behavior for MCP connections, and ensure the instance check works in all runtime contexts (SSR/builds). If instanceof proves brittle across bundles, prefer a capability check or a flag from the ConnectionService.
  3. Security / auth handling
    • You added logic to build authentication payloads for multiple auth types (ApiKey, Basic, ActiveDirectoryOAuth, ClientCertificate). Please ensure secrets/securestrings are handled consistent with current secure storage UX, and mention any new telemetry or logging that might accidentally surface secrets (I saw logs/traces used — confirm no secrets are logged).
  4. Documentation / changelog
    • Consider adding a short CHANGELOG entry or docs note for visibility: how to configure MCP connections, supported auth types, and any UX differences from Standard SKU.
  5. Backwards compatibility
    • Because you add new connector IDs and built-in connector manifests, verify any registration or gating logic that maps connector ids in lower case vs mixed case. Your code uses .toLowerCase() in some places — good for normalization; just be consistent.
  6. Labels
    • The PR includes risk:medium and pr-validated labels — matches your body.

Please update the PR with an integration/E2E test or a short manual test plan and consider the minor recommendations above. Once done, I expect this PR to be ready to merge.

Status: Passed. Advised risk level: risk:medium (matches the PR). Thank you for the thorough unit tests and clear PR body — nice work!


Last updated: Thu, 12 Mar 2026 09:35:51 GMT

@Bhavd13 Bhavd13 added risk:medium Medium risk change with potential impact and removed needs-pr-update labels Mar 9, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Consumption SKU support for MCP (Model Context Protocol) by introducing a consumption MCP connector + built-in operation manifest wiring, and updating the connection creation UI/service to recognize MCP connections.

Changes:

  • Add consumption MCP connector + built-in MCP Client operation manifest and wire them into the consumption operation manifest service.
  • Extend ConsumptionConnectionService to recognize MCP connectors and create MCP connections.
  • Update Designer V2 create-connection panel behavior for consumption MCP connections and add unit tests for the new connection logic.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
package.json Tweaks lint-staged ESLint invocation to reduce ignored-file warnings.
libs/logic-apps-shared/src/designer-client-services/lib/consumption/operationmanifest.ts Adds MCP built-in operation support (mcpclienttoolnativemcpclient) and returns the MCP operation manifest/operation metadata.
libs/logic-apps-shared/src/designer-client-services/lib/consumption/manifests/mcpclientconnector.ts Introduces the consumption MCP connector manifest (auth parameter sets, metadata).
libs/logic-apps-shared/src/designer-client-services/lib/consumption/manifests/builtinmcpclient.ts Adds the built-in MCP Client operation manifest including listMcpTools dynamic list for tool selection.
libs/logic-apps-shared/src/designer-client-services/lib/consumption/connection.ts Adds MCP connector lookup and MCP-specific connection creation paths (built-in vs managed).
libs/logic-apps-shared/src/designer-client-services/lib/consumption/tests/connection.spec.ts Adds unit tests for MCP connection creation helpers/paths.
libs/designer-v2/src/lib/ui/panel/connectionsPanel/createConnection/createConnection.tsx Hides the “name” input for Consumption MCP connections via a runtime service check.

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

📊 Coverage Check

The following changed files need attention:

⚠️ libs/logic-apps-shared/src/designer-client-services/lib/consumption/connection.ts - 42% covered (needs improvement)
⚠️ libs/logic-apps-shared/src/designer-client-services/lib/consumption/connector.ts - 66% covered (needs improvement)
⚠️ libs/logic-apps-shared/src/designer-client-services/lib/consumption/operationmanifest.ts - 76% covered (needs improvement)
⚠️ libs/designer-v2/src/lib/ui/panel/connectionsPanel/createConnection/createConnection.tsx - 69% covered (needs improvement)
⚠️ libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnection.tsx - 69% covered (needs improvement)

Please add tests for the uncovered files before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-validated risk:medium Medium risk change with potential impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants