Conversation
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:❌ PR Title
❌ Commit Type
❌ Risk Level
❌ What & Why
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ❌ | Use descriptive title (see examples above) |
| Commit Type | ❌ | Select exactly one commit type (likely feature) |
| Risk Level | ❌ | Add risk:medium label and check the matching box |
| What & Why | ❌ | Provide brief What & Why mapping to diff |
| Impact of Change | Add Users/Developers/System bullets (see suggested text) | |
| Test Plan | ✅ (but unchecked) | Mark unit tests as added and provide brief coverage summary |
| Contributors | Add contributors or note none | |
| Screenshots/Videos | Optional: provide UI screenshots for CreateConnection changes |
Notes about risk/advised level:
- I recommend
risk:mediumfor this PR. The change introduces new connection types and creation flows (built-in vs managed MCP), manifest additions, and UI logic changes. This impacts connection behavior and dynamic API calls. If this will be deployed to production where many customers rely on connection semantics, considerrisk:highand add additional validation and possibly an RFC.
Concrete next steps to get this PR approved:
- Update the PR title to a descriptive, conventional title (examples above).
- In the PR body: select exactly one Commit Type checkbox. Based on the changes pick
feature(orfixif this is a hotfix). - Select a Risk Level checkbox and add the matching GitHub label (add
risk:medium). Ensure PR labels includerisk:medium. - Fill in the What & Why section with the short summary provided above.
- Fill Impact of Change with the suggested bullets or adapted text.
- Update the Test Plan: check
Unit tests added/updatedand add a short list of new test files (e.g., libs/logic-apps-shared/.../tests/connection.spec.ts and connector.spec.ts), and optionally state if manual/E2E tests were run. - Add contributors (optional) and screenshots (optional) if applicable.
- Re-run CI and ensure unit tests pass. If you intend this to be a hotfix, explain why these changes are staged as hotfix rather than a feature release.
Please update the PR title/body and labels with the items above and re-submit for a quick re-check. Thank you for the thorough implementation and the unit tests — once the PR metadata is updated this can move forward more quickly.
Last updated: Sat, 14 Mar 2026 09:41:02 GMT
There was a problem hiding this comment.
Pull request overview
Adds Consumption-SKU support for an MCP Client built-in connector/tool by wiring a new connector + operation manifest and enabling MCP tool discovery (dynamic list) and connection creation UX behaviors.
Changes:
- Add Consumption MCP Client connector and built-in operation manifest, plus Consumption operation-manifest routing for
McpClientTool. - Extend Consumption connector/connection services to support MCP connections and
listMcpToolsdynamic values. - Update Create Connection panels (v1/v2) and Standalone Consumption host options to enable/adjust MCP Client behavior; add unit tests.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/operationmanifest.ts | Adds MCP Client built-in connector registration + operation info/manifest handling for mcpclienttool. |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/manifests/mcpclientconnector.ts | Introduces the Consumption MCP Client connector definition (auth parameter sets, metadata). |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/manifests/builtinmcpclient.ts | Adds built-in MCP Client operation manifest with dynamic list for tools. |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/connector.ts | Adds Consumption-side listMcpTools POST flow and MCP auth payload construction. |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/connection.ts | Adds Consumption MCP connection creation paths (built-in + managed) and connector lookup. |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/tests/operationmanifest.spec.ts | Tests MCP operation info/support/manifest behaviors. |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/tests/connector.spec.ts | Tests Consumption MCP listMcpTools request shape and auth building. |
| libs/logic-apps-shared/src/designer-client-services/lib/consumption/tests/connection.spec.ts | Tests built-in MCP connection creation + auth extraction helpers. |
| libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnection.tsx | Hides connection name input for Consumption MCP Client connections. |
| libs/designer-v2/src/lib/ui/panel/connectionsPanel/createConnection/createConnection.tsx | Same Create Connection UX adjustment for v2 panel. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx | Enables mcpClientToolEnabled in standalone Consumption host options. |
| displayName: 'Client secret', | ||
| constraints: { | ||
| required: 'true', | ||
| propertyPath: ['authentication'], | ||
| dependentParameter: { | ||
| parameter: 'CredentialType', | ||
| value: 'Secret', | ||
| }, |
| { | ||
| name: 'Key', | ||
| parameters: { | ||
| serverUrl: { | ||
| type: 'string', | ||
| uiDefinition: { |
| private _buildMcpAuthentication(connectionProperties: Record<string, any>): Record<string, any> | undefined { | ||
| const authType = connectionProperties['authenticationType']; | ||
| if (!authType || authType === 'None') { | ||
| return undefined; | ||
| } | ||
|
|
||
| const authentication: Record<string, any> = { type: authType }; | ||
| if (authType === 'ApiKey') { | ||
| authentication['value'] = connectionProperties['key']; | ||
| authentication['name'] = connectionProperties['keyHeaderName']; | ||
| authentication['in'] = 'header'; | ||
| } else if (authType === 'Basic') { | ||
| authentication['username'] = connectionProperties['username']; | ||
| authentication['password'] = connectionProperties['password']; | ||
| } else if (authType === 'ActiveDirectoryOAuth') { | ||
| authentication['tenant'] = connectionProperties['tenant']; | ||
| authentication['clientId'] = connectionProperties['clientId']; | ||
| authentication['secret'] = connectionProperties['secret']; | ||
| authentication['authority'] = connectionProperties['authority']; | ||
| authentication['audience'] = connectionProperties['audience']; | ||
| } else if (authType === 'ClientCertificate') { | ||
| authentication['pfx'] = connectionProperties['pfx']; | ||
| authentication['password'] = connectionProperties['password']; | ||
| } | ||
|
|
||
| return authentication; | ||
| } |
| serverUrl: { value: 'https://mcp-server.example.com' }, | ||
| }, | ||
| connectionParametersSet: { | ||
| name: 'ApiKey', | ||
| values: { | ||
| key: { value: 'test-api-key' }, | ||
| }, | ||
| }, |
| displayName: 'Test MCP Server', | ||
| parameterValues: { | ||
| mcpServerUrl: 'https://mcp.example.com', | ||
| authenticationType: 'ApiKey', |
📊 Coverage CheckThe following changed files need attention:
Please add tests for the uncovered files before merging. |
Commit Type
Risk Level
What & Why
Impact of Change
Test Plan
Contributors
Screenshots/Videos