Conversation
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:
|
| Section | Status | Recommendation |
|---|---|---|
| Title | Update to explicitly mention "Consumption Logic Apps" and remove trailing space | |
| Commit Type | ✅ | No change needed |
| Risk Level | ❌ | Change PR body to Medium or add justification for Low; add matching risk:* label |
| What & Why | ✅ | Optionally add file references for faster review |
| Impact of Change | Clarify system impact or confirm none (explain why) | |
| Test Plan | ✅ | Good — unit tests present. Consider E2E or documented manual verification steps |
| Contributors | Add contributors or state none | |
| Screenshots/Videos | Optional: add screenshot proving UI behavior change (hide name field for Consumption MCP) |
Final message
Please update the PR with the following before re-requesting review:
- Update the PR title to be clearer and remove trailing whitespace. Example:
Add MCP support for Consumption Logic Apps (built-in and managed connectors). - Re-evaluate the Risk Level in the PR body — change to
Mediumif you agree with the assessment above, and add the corresponding repo labelrisk:mediumto the PR. If you want to keepLow, add a short justification in the body explaining why this is low-risk. - Ensure the Impact of Change section explicitly calls out any system/operational implications or confirms there are none with reasoning (important because built-in connections are now stored in workflow.json vs API Hub).
- Add a short note under Test Plan describing how the unit tests exercise the behavior and whether manual/E2E testing was done; if not, either add E2E coverage or document manual verification steps.
- (Optional) Add contributors and a screenshot showing the create connection UI change (the code hides the name input for Consumption MCP connections); this helps reviewers validate UX changes quickly.
Once you update the title/body and add the appropriate risk label, I can re-run the title/body compliance check. Thank you for the clear PR body and the unit tests — good work.
Last updated: Thu, 19 Feb 2026 13:03:50 GMT
There was a problem hiding this comment.
Pull request overview
This PR adds MCP (Model Context Protocol) connection support for Consumption Logic Apps by implementing built-in and managed MCP connection capabilities. The implementation reuses most existing MCP code for managed connectors, with Consumption-specific additions for built-in connections that store connection objects locally in workflow.json instead of API Hub.
Changes:
- Added Consumption-specific MCP connector manifest (
mcpclientconnector.ts) with builtin capability - Created
createBuiltInMcpConnection()method inConsumptionConnectionServicefor local connection storage - Added comprehensive unit tests for MCP connection creation and parameter extraction
- Modified connection panel to hide name input for Consumption MCP connections
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| servers | Subproject commit reference update |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/manifests/mcpclientconnector.ts | Defines the MCP Client connector manifest with authentication types and parameter sets |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/connection.ts | Implements built-in and managed MCP connection creation logic with parameter extraction |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/tests/connection.spec.ts | Adds comprehensive unit tests for MCP connection functionality |
| libs/designer-v2/src/lib/ui/panel/connectionsPanel/createConnection/createConnection.tsx | Hides name input for Consumption MCP connections in the UI |
| }, | ||
| }, | ||
| uiDefinition: { | ||
| displayName: 'Basic', |
There was a problem hiding this comment.
The authentication type name 'Basic' should match the parameter set name defined on line 41. Currently the parameter set uses 'Basic' as the name, but this should be 'BasicAuth' for consistency with the extractAuthParameters method which checks for 'BasicAuth' in connection.ts line 239.
|
|
||
| if (connectionParametersSet?.values) { | ||
| const values = connectionParametersSet.values; | ||
| const authKeys = ['username', 'password', 'key', 'keyHeaderName', 'clientId', 'secret', 'tenant', 'authority', 'audience', 'pfx']; |
There was a problem hiding this comment.
The hardcoded list of authentication keys should be defined as a constant at the class or module level to improve maintainability and allow reuse. Consider extracting this to a private static readonly property or a module-level constant.
| }); | ||
|
|
||
| try { | ||
| const connectionName = connectionInfo.displayName || connectionId.split('/').at(-1) || `mcp-${Date.now()}`; |
There was a problem hiding this comment.
The fallback connection name generation using Date.now() could produce non-unique names if multiple connections are created in rapid succession. Consider using a more robust unique identifier generation approach, such as a UUID or a combination of timestamp with a random component.
| const connectionName = connectionInfo.displayName || connectionId.split('/').at(-1) || `mcp-${Date.now()}`; | |
| const fallbackSuffix = `${Date.now()}-${Math.random().toString(16).slice(2)}`; | |
| const connectionName = connectionInfo.displayName || connectionId.split('/').at(-1) || `mcp-${fallbackSuffix}`; |
| expect(result.name).toBe('test-mcp-connection'); | ||
| expect(result.id).toContain('connectionProviders/mcpclient/connections/'); | ||
| expect((result.properties as any).parameterValues.mcpServerUrl).toBe('https://mcp-server.example.com'); | ||
| expect((result.properties as any).parameterValues.authenticationType).toBe('ApiKey'); |
There was a problem hiding this comment.
The test expects authenticationType to be 'ApiKey' but the connection info specifies 'ApiKey' on line 78. However, the connector manifest defines 'Key' as the authentication type name (line 275). This inconsistency should be resolved to match the actual authentication type names defined in the manifest.
Commit Type
Risk Level
What & Why
This PR implements MCP (Model Context Protocol) connection support for Consumption Logic Apps. Most of the MCP implementation code was already common for managed connectors, shared between Standard and Consumption. For built-in MCP connections in Consumption, I removed the connection panel settings dependency and created a dedicated
createBuiltInMcpConnection()method inConsumptionConnectionServicethat generates local connection objects stored inworkflow.jsoninstead of API Hub. I also created a Consumption-specific MCP connectormcpclientconnector.tswith the builtin capability to differentiate it from managed connectors.Impact of Change
ConsumptionConnectionServicefor handling built-in MCP connections.Test Plan
Contributors
Screenshots/Videos