[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-azure-connectornamespace":3,"mdc--kzjjn4-key":38,"related-repo-azure-azure-connectornamespace":4989,"related-org-azure-azure-connectornamespace":5008},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":33,"sourceUrl":36,"mdContent":37},"azure-connectornamespace","manage Azure connector namespaces and connections","Azure Connector Namespace — manage namespaces, connections, triggers, and MCP server configs.\nConnect external SaaS services (Office 365, Teams, SharePoint, OneDrive, Forms, GitHub,\nAzure Blob) to any user-provided webhook URL via event-driven triggers, expose\nselected connector operations as an MCP server endpoint, or call connector operations\non demand via dynamicInvoke.\nUse when:\n- Managing connector namespaces and connections\n- Creating trigger configs that POST to a callback URL\n- Subscribing to connector events (email, file, list-item, form response)\n- Wiring event sources to a webhook, Function App, Logic App, or API\n- Recurrence \u002F sliding-window triggers that fire on a schedule\n- Exposing connector operations as MCP tools at a namespace endpoint\n- Calling connector APIs (send email, post Teams message, upload files)\nTriggers: \"connector namespace\", \"connector\", \"trigger config\", \"webhook trigger\",\n\"recurrence trigger\", \"on new email\", \"callback url\",\n\"mcp\", \"send email\", \"post teams message\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[13,15,18,21],{"name":11,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Integrations","integrations",{"name":19,"slug":20,"type":14},"MCP","mcp",{"name":22,"slug":23,"type":14},"API Development","api-development",20,"https:\u002F\u002Fgithub.com\u002FAzure\u002FConnectors","2026-07-12T08:18:17.747618",null,2,[8,30,31,32],"connector-namespaces","connectors","microsoft",{"repoUrl":25,"stars":24,"forks":28,"topics":34,"description":35},[8,30,31,32],"Connector Namespaces - Connect your AI agents and workloads to the apps you already use.","https:\u002F\u002Fgithub.com\u002FAzure\u002FConnectors\u002Ftree\u002FHEAD\u002Fplugin\u002Fskills\u002Fconnectors","---\nname: azure-connectornamespace\ndescription: |\n  Azure Connector Namespace — manage namespaces, connections, triggers, and MCP server configs.\n  Connect external SaaS services (Office 365, Teams, SharePoint, OneDrive, Forms, GitHub,\n  Azure Blob) to any user-provided webhook URL via event-driven triggers, expose\n  selected connector operations as an MCP server endpoint, or call connector operations\n  on demand via dynamicInvoke.\n  Use when:\n  - Managing connector namespaces and connections\n  - Creating trigger configs that POST to a callback URL\n  - Subscribing to connector events (email, file, list-item, form response)\n  - Wiring event sources to a webhook, Function App, Logic App, or API\n  - Recurrence \u002F sliding-window triggers that fire on a schedule\n  - Exposing connector operations as MCP tools at a namespace endpoint\n  - Calling connector APIs (send email, post Teams message, upload files)\n  Triggers: \"connector namespace\", \"connector\", \"trigger config\", \"webhook trigger\",\n  \"recurrence trigger\", \"on new email\", \"callback url\",\n  \"mcp\", \"send email\", \"post teams message\"\n---\n\n# Azure Connector Namespace (generic)\n\nManage Microsoft.Web connector namespaces, their connections, trigger configs, and MCP\nserver configs. This skill is **sandbox-agnostic** — it does not assume your callback\ntarget. Callbacks can be any HTTP(S) URL (Function App, Logic App, App Service,\nngrok, anywhere) and you choose how the namespace authenticates to it.\n\n> If you specifically need to fan events into an Azure Container Apps sandbox group\n> (with declarative `gatewayConnections[]` wiring and sandbox callbacks), use the\n> companion skill at `plugin\u002Fskills\u002Faca-sandboxes` instead.\n\n> **Naming note.** This skill was previously called \"Connector Gateway\". The\n> resource is now displayed as **\"Connector Namespace\"** everywhere (matching\n> the portal rename).\n> **The ARM resource type is still `Microsoft.Web\u002FconnectorGateways`** (legacy\n> URL segment kept for backwards compatibility) and the property `gatewayConnections[]`\n> on sandbox groups also keeps its name. Do not rewrite those API strings.\n\n## Three patterns this skill supports\n\n| Pattern | When to use | Output |\n|---|---|---|\n| **A) Trigger config** | \"Notify my webhook when X happens\" \u002F \"Run my workflow every N minutes\" | A `triggerConfigs\u002F{name}` resource that POSTs to your `callbackUrl` |\n| **B) MCP server config** | \"Expose these connector operations as MCP tools to an LLM client\" | A `mcpServerConfigs\u002F{name}` resource with a public `mcpEndpointUrl` |\n| **C) Direct API call** | \"Send an email\" \u002F \"Post a Teams message\" — one-off operation | One `dynamicInvoke` POST against the connection |\n\n## Rules (MUST follow)\n\n| Rule | Details |\n|------|---------|\n| **No hallucination** | Check `references\u002F` for details. Use `az rest --help` for syntax. |\n| **No generated notebooks\u002Fscripts** | Walk the user through interactively. Do NOT generate a standalone notebook or script. |\n| **No guessing dynamic values** | `x-ms-dynamic-*` → call the API, present results, STOP. Never assume a team\u002Fchannel\u002Ffolder\u002Fsite\u002Flist. |\n| **No guessing the callback URL** | The callback URL is **always** user-provided. Ask for it explicitly. Do NOT invent one. |\n| **MSI audience: ask, then default** | For `ManagedServiceIdentity` callback auth, **ask the user for `audience`** (the AAD-protected resource the namespace should acquire a token for, e.g. an AAD app they own, `https:\u002F\u002Fgraph.microsoft.com\u002F`, etc.). If the user doesn't provide one, default to `https:\u002F\u002Fmanagement.azure.com\u002F`. **Never** use the callback URL as the audience. |\n| **Execute, don't ask** | Once you have inputs, run the commands. Don't ask \"Can I run this?\" |\n| **`az rest` only** | No `az connectornamespace` (or legacy `az connectorgateway`) extension exists. Use `az rest` for ARM and `az rest --resource` for data-plane. |\n| **Always `@$tmpFile`** | For `az rest --body` in PowerShell — inline JSON breaks quoting. See [gotchas.md](references\u002Fgotchas.md). |\n| **Trigger body schema** | Properties root contains: `type` OR `connectionDetails`+`operationName`+`parameters`, plus `notificationDetails` (`callbackUrl`+`authentication`+`body?`). **Body-sourced leaves (top-level body param + every nested sub-property) are aggregated into ONE `parameters[]` entry whose `name` is literally `\"body\"` and whose `value` is the nested object** (dotted leaf names like `filter.labels` get rolled up via `setNestedValue`). The wrapper name `\"body\"` is independent of the Swagger body parameter's own name. Non-body dotted leaves are grouped under their root segment. See [trigger-setup.md](references\u002Ftrigger-setup.md) §2b. |\n| **Trigger needs `namespace-acl`** | For connector-event triggers, the namespace MI must have an access policy on the connection. See [trigger-setup.md](references\u002Ftrigger-setup.md) Step 4. |\n| **MCP user params** | Each `userParameters[]` entry is a **fixed value** for a connector-operation parameter (resolved via `dynamic-values` against the connection at config time). Each `agentParameters[]` entry declares a JSON-Schema input the **caller (LLM) supplies** at tool-call time. **Every required parameter (including required body sub-properties) MUST appear in one of the two arrays** — the runtime rejects the call with `missing required property '\u003Cpath>'` otherwise. See [mcp-server-config.md](references\u002Fmcp-server-config.md). |\n| **MCP per-parameter triage** | **STOP and ask the user, for each operation parameter (path\u002Fquery\u002Fbody field, including each required body sub-property), whether it should be a fixed `userParameter`, a caller-supplied `agentParameter`, or skipped (optional only).** Do this **before** the `mcpServerConfigs` PUT, even when no `x-ms-dynamic-*` markers are present. Decompose the body's object schema and triage each leaf. **For MCP, body wrapper name = the Swagger body param's own name (e.g. `emailMessage`).** See [mcp-server-config.md](references\u002Fmcp-server-config.md) §\"Per-parameter triage workflow\". |\n| **Parallel execution** | Run independent ops (connections, ACLs, dynamic-value lookups, MCP operations) as parallel tool calls. |\n\n**When to STOP and ask the user:** subscription\u002Fresource group, namespace name, connection name, any parameter with dynamic values (teams\u002Fchannels\u002Ffolders\u002Fsites\u002Flists), callback URL, callback authentication type, **MSI `audience` (if MSI auth chosen — default to `https:\u002F\u002Fmanagement.azure.com\u002F` if user doesn't provide one)**, OAuth consent completion, **MCP per-parameter triage (`userParameter` vs `agentParameter` vs skip — for every path\u002Fquery\u002Fbody field, including each body sub-property)**.\n\n**When to EXECUTE immediately:** namespace\u002Fconnection\u002Ftrigger\u002FMCP-config\u002Faccess-policy CRUD, role assignments, dynamic-value lookups.\n\n---\n\n### Step 0: Prerequisites & Azure context\n\n1. Check `az account show`. If missing, see [prerequisites.md](references\u002Fprerequisites.md).\n2. **Select subscription** — list, ask user to pick:\n   ```bash\n   az account list --query \"[].{name:name, id:id, isDefault:isDefault}\" -o table\n   ```\n   Set if non-default: `az account set --subscription \"{sub}\"`. Store `{sub}` for all\n   subsequent commands.\n3. **Select resource group**:\n   - Existing: `az group list --query \"[].{name:name, location:location}\" -o table` → user picks.\n   - New: ask for name + location, then `az group create --name {rg} --location {location}`.\n\n**Stop and wait for the user's answers before continuing.**\n\n---\n\n### Step 1: Namespace setup\n\n> **ARM base:** `https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways`\n> **API version:** `2026-05-01-preview`\n\nAsk the user: \"Do you have an existing connector namespace, or should I create a new one?\"\n\n- **Existing:** ask for the name and fetch it:\n  ```bash\n  az rest --method GET \\\n    --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\" \\\n    --query \"{name:name, location:location, principalId:identity.principalId, tenantId:identity.tenantId, identityType:identity.type, userAssigned:identity.userAssignedIdentities}\"\n  ```\n- **New:** ask for `{namespace}` name + location. **Create with a SystemAssigned managed identity**\n  (required for trigger event subscriptions on connector-event triggers AND for\n  `ManagedServiceIdentity` callback auth):\n  ```powershell\n  $namespaceBody = @{ location = \"{location}\"; identity = @{ type = \"SystemAssigned\" } } | ConvertTo-Json -Compress\n  $tmp = New-TemporaryFile; Set-Content $tmp $namespaceBody\n  az rest --method PUT `\n    --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\" `\n    --body \"@$tmp\" `\n    --query \"{name:name, principalId:identity.principalId, tenantId:identity.tenantId}\"\n  Remove-Item $tmp\n  ```\n\n**Capture `principalId` and `tenantId`** — needed later for the `namespace-acl`\naccess policy and (optionally) for `ManagedServiceIdentity` callback authentication.\n\n> If a user later wants to call their callback URL using a **user-assigned** identity,\n> they'll need to add that identity to the namespace separately. See\n> [notification-authentication.md](references\u002Fnotification-authentication.md).\n\n---\n\n### Step 2: Connection(s) + OAuth consent\n\nRequired for **trigger configs**, **MCP server configs**, and **direct API calls**.\nRecurrence \u002F sliding-window triggers with no connector-event source can skip this.\n\nCreate connections in parallel:\n\n```powershell\n$connBody = @{ properties = @{ connectorName = \"office365\" }; location = \"{location}\" } | ConvertTo-Json -Compress\n$tmp = New-TemporaryFile; Set-Content $tmp $connBody\naz rest --method PUT `\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}\u002Fconnections\u002Fo365-conn?api-version=2026-05-01-preview\" `\n  --body \"@$tmp\"\nRemove-Item $tmp\n```\n\nThen generate consent links and open in the browser — **see [consent.md](references\u002Fconsent.md)** for the exact body format and `Start-Process` pattern. Verify status `Connected` before continuing. See also [connections.md](references\u002Fconnections.md) for the full CRUD reference.\n\n> **For trigger configs:** also create a `namespace-acl` access policy granting the\n> namespace MI access to the connection (required for the namespace to subscribe to\n> connector events). See [trigger-setup.md](references\u002Ftrigger-setup.md) Step 4.\n\n---\n\n### Step 3: Choose the pattern\n\nAsk the user:\n- **A) Trigger config** — push notifications to your callback URL when events happen, or on a schedule.\n- **B) MCP server config** — expose selected connector operations as MCP tools at a namespace endpoint, callable by any MCP client (Claude Desktop, VS Code, etc.).\n- **C) Direct API call** — one-off `dynamicInvoke` (send an email now, list items now).\n\n**Stop and wait for the user's answer.**\n\n- A → **Step 4A**\n- B → **Step 4B**\n- C → **Step 4C**\n\n---\n\n### Step 4A: Trigger config\n\n→ **Full details:** [trigger-setup.md](references\u002Ftrigger-setup.md) | **Auth options:** [notification-authentication.md](references\u002Fnotification-authentication.md) | **Dynamic params:** [dynamic-values.md](references\u002Fdynamic-values.md)\n\n1. **Pick the trigger source.** Ask the user:\n   - **Connector event** (e.g., new email, new file, new form response) — needs the connection from Step 2.\n   - **Recurrence** — fires every N seconds \u002F minutes \u002F hours \u002F days.\n   - **Sliding window** — fires on time intervals with `startTime`\u002F`endTime` window state.\n\n2. **Connector event:** discover trigger operations on the connector:\n   ```bash\n   az rest --method GET \\\n     --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002Fproviders\u002FMicrosoft.Web\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01\" \\\n     --query \"value[?properties.trigger != null].{name:name, summary:properties.summary, trigger:properties.trigger}\" -o table\n   ```\n   Pick one with the user. **Enumerate every parameter — including each\n   sub-property of a `body` object** (resolve `$ref`, recurse into nested\n   objects and array `items`). Triage each leaf:\n   - `x-ms-dynamic-*` → resolve via [dynamic-values.md](references\u002Fdynamic-values.md). **STOP at every dynamic param.**\n   - Static enum → present choices and **STOP** for user pick.\n   - Free-form with obvious default (e.g., `folderPath=Inbox`) → use default, inform user.\n   - Free-form with no default → **STOP and ask the user.**\n\n   **When assembling `parameters[]`, build a nested object — do NOT emit dotted\n   leaf names.** All body-sourced leaves (top-level body + every nested\n   sub-property) collapse into ONE entry whose `name` is **literally the string\n   `\"body\"`** (NOT the Swagger body parameter's name) and whose `value` is the\n   nested object. Non-body dotted leaves group under their root segment. See\n   [trigger-setup.md](references\u002Ftrigger-setup.md) §2b for the exact pattern\n   and worked examples.\n\n3. **Recurrence \u002F sliding window:** ask for `frequency` (Second\u002FMinute\u002FHour\u002FDay) and `interval`.\n\n4. **Callback URL — ask the user explicitly.** Do NOT invent one. Format examples:\n   - Function App: `https:\u002F\u002F{app}.azurewebsites.net\u002Fapi\u002F{fn}?code={key}`\n   - Logic App HTTP trigger: full SAS URL from the Logic App's \"When a HTTP request is received\"\n   - Custom API: any `https:\u002F\u002F...` endpoint\n\n5. **Callback authentication — ask the user.** Options (full reference in [notification-authentication.md](references\u002Fnotification-authentication.md)):\n   | Type | Use when |\n   |---|---|\n   | *(none)* | Callback URL already contains its own auth token (e.g., Logic App SAS in querystring) |\n   | `QueryString` | Add a `?key=value` automatically (e.g., Function App key) |\n   | `Raw` | Send a literal `Authorization: \u003Cscheme> \u003Cparameter>` header |\n   | `Basic` | HTTP Basic with `username`\u002F`password` |\n   | `ManagedServiceIdentity` | Namespace acquires a token for `audience` using its own MI (system- or user-assigned). **Ask the user for `audience`** — if they don't provide one, default to `https:\u002F\u002Fmanagement.azure.com\u002F`. Never use the callback URL as the audience. See [notification-authentication.md](references\u002Fnotification-authentication.md). |\n   | `ActiveDirectoryOAuth` | Namespace authenticates as an Entra app (tenant\u002FclientId\u002Fsecret\u002Faudience) |\n   | `ClientCertificate` | Mutual TLS with a `pfx`\u002F`password` |\n\n6. **Create the trigger config** (one PUT). See [trigger-setup.md](references\u002Ftrigger-setup.md) Step 3 for the canonical body templates for each source × auth combination.\n\n7. **Create the `namespace-acl`** (only for connector-event triggers). See [trigger-setup.md](references\u002Ftrigger-setup.md) Step 4.\n\n8. **Verify** the trigger state is `Enabled`:\n   ```bash\n   az rest --method GET \\\n     --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}?api-version=2026-05-01-preview\" \\\n     --query \"properties.state\" -o tsv\n   ```\n\n---\n\n### Step 4B: MCP server config\n\n→ **Full details:** [mcp-server-config.md](references\u002Fmcp-server-config.md) | **Dynamic params:** [dynamic-values.md](references\u002Fdynamic-values.md)\n\n1. **Pick connector(s) + operation(s).** Discover them:\n   ```bash\n   az rest --method GET \\\n     --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002Fproviders\u002FMicrosoft.Web\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01\" \\\n     --query \"value[?properties.trigger == null].{name:name, summary:properties.summary, description:properties.description}\" -o table\n   ```\n   Each MCP \"tool\" maps to one connector operation under one connection.\n\n2. **For each operation, triage every parameter — including each body sub-property.**\n\n   First enumerate every parameter from the Swagger:\n   - All `parameters[]` entries (`path` \u002F `query` \u002F `body` \u002F `header`).\n   - For each `body` parameter whose schema is an object (resolve `$ref`),\n     enumerate its `properties` and the inner `required` array. Recurse into\n     nested objects and `items` of arrays.\n\n   Then resolve dynamic markers — the four extension kinds\n   (`x-ms-dynamic-values`, `-list`, `-tree`, `-schema`) **all apply** here,\n   exactly like trigger setup:\n   - `x-ms-dynamic-values` \u002F `-list` → `dynamicInvoke` the lookup operation, **STOP** for user pick, store the `value-path` value.\n   - `x-ms-dynamic-tree` → walk the tree (root → children), **STOP** at each level, store the final opaque token.\n   - `x-ms-dynamic-schema` \u002F `-properties` → resolve schema after parents are picked. Bake the parents so the LLM gets a stable tool shape.\n   - Cascading params (e.g., channel depends on team): always resolve parents first; pass their `value` (not display name) to child lookups.\n\n   **STOP and ask the user, for every parameter (and every required body\n   sub-property)**, whether it should be:\n\n   | Choice | What it means |\n   |---|---|\n   | **`userParameter`** | Bake a fixed value now (`{name, value}`). LLM cannot change it. Use this for enumerable connector IDs (team\u002Fchannel\u002Fsite\u002Flist\u002Ffolder\u002Ffile\u002Fdb\u002Ftable) and for org-default fields. |\n   | **`agentParameter`** | LLM supplies on each call (`{name, schema}`). Use this for free-form content (subject\u002Fbody\u002Frecipient) and for required fields with no fixed value. |\n   | **skip** | Only valid if the field is optional (not in the Swagger `required` array). |\n\n   **Required fields cannot be skipped.** Body sub-properties are nested under\n   one `agentParameter` whose `schema.type` is `\"object\"` and whose\n   `schema.properties` mirrors the body. See\n   [mcp-server-config.md](references\u002Fmcp-server-config.md) §\"Per-parameter\n   triage workflow\" and [dynamic-values.md](references\u002Fdynamic-values.md).\n\n3. **PUT the MCP server config.** Body shape:\n   ```json\n   {\n     \"properties\": {\n       \"description\": \"...\",\n       \"connectors\": [\n         {\n           \"name\": \"office365\",\n           \"displayName\": \"Office 365\",\n           \"connectionName\": \"o365-conn\",\n           \"operations\": [\n             {\n               \"name\": \"Send_Email_(V2)\",\n               \"displayName\": \"Send Email\",\n               \"description\": \"Send an email via Office 365.\",\n               \"userParameters\": [\n                 { \"name\": \"from\", \"value\": \"alerts@contoso.com\" }\n               ],\n               \"agentParameters\": [\n                 { \"name\": \"emailMessage\", \"schema\": { \"type\": \"object\", \"required\": true, \"properties\": { \"To\": { \"type\": \"string\", \"required\": true }, \"Subject\": { \"type\": \"string\" }, \"Body\": { \"type\": \"string\" } } } }\n               ]\n             }\n           ]\n         }\n       ]\n     }\n   }\n   ```\n   PUT to: `...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs\u002F{name}?api-version=2026-05-01-preview`\n\n   > **Always serialize with `ConvertTo-Json -Depth 20`** (or higher). The\n   > default depth (2) silently flattens nested body schemas to the literal\n   > string `\"System.Collections.Hashtable\"`. GET the config after the PUT and\n   > verify the nested properties are real objects.\n\n4. **GET the config** and return `properties.mcpEndpointUrl` — that's the URL the MCP\n   client points at. See [mcp-server-config.md](references\u002Fmcp-server-config.md) for the auth-mode + access-policy details.\n\n---\n\n### Step 4C: Direct API call via `dynamicInvoke`\n\n→ **Full details:** [direct-api.md](references\u002Fdirect-api.md) | **Dynamic params:** [dynamic-values.md](references\u002Fdynamic-values.md)\n\n1. Get the connector Swagger (`managedApis\u002F{connector}?export=true`) → operationId → path table\n2. Resolve any `x-ms-dynamic-*` parameters with [dynamic-values.md](references\u002Fdynamic-values.md). **STOP at every dynamic param.**\n3. POST to `dynamicInvoke` with the resolved `method` + `path` (+ optional `queries`, `body`, non-`Content-*` headers).\n\n---\n\n### Final verification checklist\n\n**For trigger configs (path A):**\n- ✅ Namespace exists; for `ManagedServiceIdentity` callback auth, namespace has the requested identity\n- ✅ For connector-event triggers: connection `Connected`, `namespace-acl` exists on the connection\n- ✅ Trigger `properties.state` is `Enabled`\n- ✅ User-provided callback URL is reachable + accepts the chosen auth\n\n**For MCP server configs (path B):**\n- ✅ All referenced connections are `Connected`\n- ✅ `properties.mcpEndpointUrl` is populated in the GET response\n- ✅ For Hosted MCP servers with `AuthenticationMode != NotSpecified`: `resourceAuth` is set (see [mcp-server-config.md](references\u002Fmcp-server-config.md))\n- ✅ Access policies on the MCP server config grant the consuming clients access\n\n**For direct API (path C):**\n- ✅ Connection `Connected`\n- ✅ `dynamicInvoke` returns `response.statusCode` in 2xx\n\n## Quick reference\n\n```bash\n# ARM base:  https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\n# API ver:   api-version=2026-05-01-preview\n\n# Namespace\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\"\n\n# Connections\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002Fconnections?api-version=2026-05-01-preview\"\n\n# List trigger operations + summaries\naz rest --method GET --url \"...\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01\"\n\n# Get Swagger (paths, parameters, x-ms-dynamic-*)\naz rest --method GET --url \"...\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\" --url-parameters \"api-version=2016-06-01\" \"export=true\"\n\n# Dynamic invoke\naz rest --method POST --url \"...\u002FconnectorGateways\u002F{namespace}\u002Fconnections\u002F{conn}\u002FdynamicInvoke?api-version=2026-05-01-preview\" --body '{\"request\":{\"method\":\"GET\",\"path\":\"\u002F...\"}}'\n\n# Trigger configs\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs?api-version=2026-05-01-preview\"\naz rest --method POST --url \"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}\u002Fdisable?api-version=2026-05-01-preview\"\naz rest --method POST --url \"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}\u002Fenable?api-version=2026-05-01-preview\"\n\n# MCP server configs\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs?api-version=2026-05-01-preview\"\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs\u002F{name}?api-version=2026-05-01-preview\" --query \"properties.mcpEndpointUrl\" -o tsv\n```\n\n## References\n\n- [prerequisites.md](references\u002Fprerequisites.md) — required tooling and Azure setup\n- [quickstart.md](references\u002Fquickstart.md) — minimal commands to list everything\n- [connections.md](references\u002Fconnections.md) — connection CRUD + ACLs\n- [consent.md](references\u002Fconsent.md) — OAuth consent link generation (exact body format)\n- [dynamic-values.md](references\u002Fdynamic-values.md) — `x-ms-dynamic-{values,list,tree,schema}` resolution algorithms\n- [trigger-setup.md](references\u002Ftrigger-setup.md) — trigger config creation (all source types, all auth types)\n- [notification-authentication.md](references\u002Fnotification-authentication.md) — callback authentication reference\n- [mcp-server-config.md](references\u002Fmcp-server-config.md) — MCP server config CRUD\n- [direct-api.md](references\u002Fdirect-api.md) — `dynamicInvoke` recipes\n- [trigger-flow.md](references\u002Ftrigger-flow.md) — end-to-end architecture diagram\n- [tutorial.md](references\u002Ftutorial.md) — walkthrough: recurrence trigger → user webhook\n- [gotchas.md](references\u002Fgotchas.md) — common issues\n",{"data":39,"body":40},{"name":4,"description":6},{"type":41,"children":42},"root",[43,52,66,92,132,139,270,276,904,955,965,969,976,1132,1140,1143,1149,1180,1185,1382,1420,1442,1445,1451,1477,1482,1535,1577,1602,1605,1611,1616,1653,1661,1694,1697,1703,1743,2472,2475,2481,2504,3971,3974,3985,4010,4096,4099,4105,4113,4167,4175,4232,4240,4272,4278,4846,4852,4983],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"azure-connector-namespace-generic",[49],{"type":50,"value":51},"text","Azure Connector Namespace (generic)",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56,58,64],{"type":50,"value":57},"Manage Microsoft.Web connector namespaces, their connections, trigger configs, and MCP\nserver configs. This skill is ",{"type":44,"tag":59,"props":60,"children":61},"strong",{},[62],{"type":50,"value":63},"sandbox-agnostic",{"type":50,"value":65}," — it does not assume your callback\ntarget. Callbacks can be any HTTP(S) URL (Function App, Logic App, App Service,\nngrok, anywhere) and you choose how the namespace authenticates to it.",{"type":44,"tag":67,"props":68,"children":69},"blockquote",{},[70],{"type":44,"tag":53,"props":71,"children":72},{},[73,75,82,84,90],{"type":50,"value":74},"If you specifically need to fan events into an Azure Container Apps sandbox group\n(with declarative ",{"type":44,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":50,"value":81},"gatewayConnections[]",{"type":50,"value":83}," wiring and sandbox callbacks), use the\ncompanion skill at ",{"type":44,"tag":76,"props":85,"children":87},{"className":86},[],[88],{"type":50,"value":89},"plugin\u002Fskills\u002Faca-sandboxes",{"type":50,"value":91}," instead.",{"type":44,"tag":67,"props":93,"children":94},{},[95],{"type":44,"tag":53,"props":96,"children":97},{},[98,103,105,110,112,123,125,130],{"type":44,"tag":59,"props":99,"children":100},{},[101],{"type":50,"value":102},"Naming note.",{"type":50,"value":104}," This skill was previously called \"Connector Gateway\". The\nresource is now displayed as ",{"type":44,"tag":59,"props":106,"children":107},{},[108],{"type":50,"value":109},"\"Connector Namespace\"",{"type":50,"value":111}," everywhere (matching\nthe portal rename).\n",{"type":44,"tag":59,"props":113,"children":114},{},[115,117],{"type":50,"value":116},"The ARM resource type is still ",{"type":44,"tag":76,"props":118,"children":120},{"className":119},[],[121],{"type":50,"value":122},"Microsoft.Web\u002FconnectorGateways",{"type":50,"value":124}," (legacy\nURL segment kept for backwards compatibility) and the property ",{"type":44,"tag":76,"props":126,"children":128},{"className":127},[],[129],{"type":50,"value":81},{"type":50,"value":131},"\non sandbox groups also keeps its name. Do not rewrite those API strings.",{"type":44,"tag":133,"props":134,"children":136},"h2",{"id":135},"three-patterns-this-skill-supports",[137],{"type":50,"value":138},"Three patterns this skill supports",{"type":44,"tag":140,"props":141,"children":142},"table",{},[143,167],{"type":44,"tag":144,"props":145,"children":146},"thead",{},[147],{"type":44,"tag":148,"props":149,"children":150},"tr",{},[151,157,162],{"type":44,"tag":152,"props":153,"children":154},"th",{},[155],{"type":50,"value":156},"Pattern",{"type":44,"tag":152,"props":158,"children":159},{},[160],{"type":50,"value":161},"When to use",{"type":44,"tag":152,"props":163,"children":164},{},[165],{"type":50,"value":166},"Output",{"type":44,"tag":168,"props":169,"children":170},"tbody",{},[171,207,241],{"type":44,"tag":148,"props":172,"children":173},{},[174,183,188],{"type":44,"tag":175,"props":176,"children":177},"td",{},[178],{"type":44,"tag":59,"props":179,"children":180},{},[181],{"type":50,"value":182},"A) Trigger config",{"type":44,"tag":175,"props":184,"children":185},{},[186],{"type":50,"value":187},"\"Notify my webhook when X happens\" \u002F \"Run my workflow every N minutes\"",{"type":44,"tag":175,"props":189,"children":190},{},[191,193,199,201],{"type":50,"value":192},"A ",{"type":44,"tag":76,"props":194,"children":196},{"className":195},[],[197],{"type":50,"value":198},"triggerConfigs\u002F{name}",{"type":50,"value":200}," resource that POSTs to your ",{"type":44,"tag":76,"props":202,"children":204},{"className":203},[],[205],{"type":50,"value":206},"callbackUrl",{"type":44,"tag":148,"props":208,"children":209},{},[210,218,223],{"type":44,"tag":175,"props":211,"children":212},{},[213],{"type":44,"tag":59,"props":214,"children":215},{},[216],{"type":50,"value":217},"B) MCP server config",{"type":44,"tag":175,"props":219,"children":220},{},[221],{"type":50,"value":222},"\"Expose these connector operations as MCP tools to an LLM client\"",{"type":44,"tag":175,"props":224,"children":225},{},[226,227,233,235],{"type":50,"value":192},{"type":44,"tag":76,"props":228,"children":230},{"className":229},[],[231],{"type":50,"value":232},"mcpServerConfigs\u002F{name}",{"type":50,"value":234}," resource with a public ",{"type":44,"tag":76,"props":236,"children":238},{"className":237},[],[239],{"type":50,"value":240},"mcpEndpointUrl",{"type":44,"tag":148,"props":242,"children":243},{},[244,252,257],{"type":44,"tag":175,"props":245,"children":246},{},[247],{"type":44,"tag":59,"props":248,"children":249},{},[250],{"type":50,"value":251},"C) Direct API call",{"type":44,"tag":175,"props":253,"children":254},{},[255],{"type":50,"value":256},"\"Send an email\" \u002F \"Post a Teams message\" — one-off operation",{"type":44,"tag":175,"props":258,"children":259},{},[260,262,268],{"type":50,"value":261},"One ",{"type":44,"tag":76,"props":263,"children":265},{"className":264},[],[266],{"type":50,"value":267},"dynamicInvoke",{"type":50,"value":269}," POST against the connection",{"type":44,"tag":133,"props":271,"children":273},{"id":272},"rules-must-follow",[274],{"type":50,"value":275},"Rules (MUST follow)",{"type":44,"tag":140,"props":277,"children":278},{},[279,295],{"type":44,"tag":144,"props":280,"children":281},{},[282],{"type":44,"tag":148,"props":283,"children":284},{},[285,290],{"type":44,"tag":152,"props":286,"children":287},{},[288],{"type":50,"value":289},"Rule",{"type":44,"tag":152,"props":291,"children":292},{},[293],{"type":50,"value":294},"Details",{"type":44,"tag":168,"props":296,"children":297},{},[298,330,346,368,391,451,467,520,558,704,732,808,888],{"type":44,"tag":148,"props":299,"children":300},{},[301,309],{"type":44,"tag":175,"props":302,"children":303},{},[304],{"type":44,"tag":59,"props":305,"children":306},{},[307],{"type":50,"value":308},"No hallucination",{"type":44,"tag":175,"props":310,"children":311},{},[312,314,320,322,328],{"type":50,"value":313},"Check ",{"type":44,"tag":76,"props":315,"children":317},{"className":316},[],[318],{"type":50,"value":319},"references\u002F",{"type":50,"value":321}," for details. Use ",{"type":44,"tag":76,"props":323,"children":325},{"className":324},[],[326],{"type":50,"value":327},"az rest --help",{"type":50,"value":329}," for syntax.",{"type":44,"tag":148,"props":331,"children":332},{},[333,341],{"type":44,"tag":175,"props":334,"children":335},{},[336],{"type":44,"tag":59,"props":337,"children":338},{},[339],{"type":50,"value":340},"No generated notebooks\u002Fscripts",{"type":44,"tag":175,"props":342,"children":343},{},[344],{"type":50,"value":345},"Walk the user through interactively. Do NOT generate a standalone notebook or script.",{"type":44,"tag":148,"props":347,"children":348},{},[349,357],{"type":44,"tag":175,"props":350,"children":351},{},[352],{"type":44,"tag":59,"props":353,"children":354},{},[355],{"type":50,"value":356},"No guessing dynamic values",{"type":44,"tag":175,"props":358,"children":359},{},[360,366],{"type":44,"tag":76,"props":361,"children":363},{"className":362},[],[364],{"type":50,"value":365},"x-ms-dynamic-*",{"type":50,"value":367}," → call the API, present results, STOP. Never assume a team\u002Fchannel\u002Ffolder\u002Fsite\u002Flist.",{"type":44,"tag":148,"props":369,"children":370},{},[371,379],{"type":44,"tag":175,"props":372,"children":373},{},[374],{"type":44,"tag":59,"props":375,"children":376},{},[377],{"type":50,"value":378},"No guessing the callback URL",{"type":44,"tag":175,"props":380,"children":381},{},[382,384,389],{"type":50,"value":383},"The callback URL is ",{"type":44,"tag":59,"props":385,"children":386},{},[387],{"type":50,"value":388},"always",{"type":50,"value":390}," user-provided. Ask for it explicitly. Do NOT invent one.",{"type":44,"tag":148,"props":392,"children":393},{},[394,402],{"type":44,"tag":175,"props":395,"children":396},{},[397],{"type":44,"tag":59,"props":398,"children":399},{},[400],{"type":50,"value":401},"MSI audience: ask, then default",{"type":44,"tag":175,"props":403,"children":404},{},[405,407,413,415,426,428,434,436,442,444,449],{"type":50,"value":406},"For ",{"type":44,"tag":76,"props":408,"children":410},{"className":409},[],[411],{"type":50,"value":412},"ManagedServiceIdentity",{"type":50,"value":414}," callback auth, ",{"type":44,"tag":59,"props":416,"children":417},{},[418,420],{"type":50,"value":419},"ask the user for ",{"type":44,"tag":76,"props":421,"children":423},{"className":422},[],[424],{"type":50,"value":425},"audience",{"type":50,"value":427}," (the AAD-protected resource the namespace should acquire a token for, e.g. an AAD app they own, ",{"type":44,"tag":76,"props":429,"children":431},{"className":430},[],[432],{"type":50,"value":433},"https:\u002F\u002Fgraph.microsoft.com\u002F",{"type":50,"value":435},", etc.). If the user doesn't provide one, default to ",{"type":44,"tag":76,"props":437,"children":439},{"className":438},[],[440],{"type":50,"value":441},"https:\u002F\u002Fmanagement.azure.com\u002F",{"type":50,"value":443},". ",{"type":44,"tag":59,"props":445,"children":446},{},[447],{"type":50,"value":448},"Never",{"type":50,"value":450}," use the callback URL as the audience.",{"type":44,"tag":148,"props":452,"children":453},{},[454,462],{"type":44,"tag":175,"props":455,"children":456},{},[457],{"type":44,"tag":59,"props":458,"children":459},{},[460],{"type":50,"value":461},"Execute, don't ask",{"type":44,"tag":175,"props":463,"children":464},{},[465],{"type":50,"value":466},"Once you have inputs, run the commands. Don't ask \"Can I run this?\"",{"type":44,"tag":148,"props":468,"children":469},{},[470,484],{"type":44,"tag":175,"props":471,"children":472},{},[473],{"type":44,"tag":59,"props":474,"children":475},{},[476,482],{"type":44,"tag":76,"props":477,"children":479},{"className":478},[],[480],{"type":50,"value":481},"az rest",{"type":50,"value":483}," only",{"type":44,"tag":175,"props":485,"children":486},{},[487,489,495,497,503,505,510,512,518],{"type":50,"value":488},"No ",{"type":44,"tag":76,"props":490,"children":492},{"className":491},[],[493],{"type":50,"value":494},"az connectornamespace",{"type":50,"value":496}," (or legacy ",{"type":44,"tag":76,"props":498,"children":500},{"className":499},[],[501],{"type":50,"value":502},"az connectorgateway",{"type":50,"value":504},") extension exists. Use ",{"type":44,"tag":76,"props":506,"children":508},{"className":507},[],[509],{"type":50,"value":481},{"type":50,"value":511}," for ARM and ",{"type":44,"tag":76,"props":513,"children":515},{"className":514},[],[516],{"type":50,"value":517},"az rest --resource",{"type":50,"value":519}," for data-plane.",{"type":44,"tag":148,"props":521,"children":522},{},[523,537],{"type":44,"tag":175,"props":524,"children":525},{},[526],{"type":44,"tag":59,"props":527,"children":528},{},[529,531],{"type":50,"value":530},"Always ",{"type":44,"tag":76,"props":532,"children":534},{"className":533},[],[535],{"type":50,"value":536},"@$tmpFile",{"type":44,"tag":175,"props":538,"children":539},{},[540,541,547,549,556],{"type":50,"value":406},{"type":44,"tag":76,"props":542,"children":544},{"className":543},[],[545],{"type":50,"value":546},"az rest --body",{"type":50,"value":548}," in PowerShell — inline JSON breaks quoting. See ",{"type":44,"tag":550,"props":551,"children":553},"a",{"href":552},"references\u002Fgotchas.md",[554],{"type":50,"value":555},"gotchas.md",{"type":50,"value":557},".",{"type":44,"tag":148,"props":559,"children":560},{},[561,569],{"type":44,"tag":175,"props":562,"children":563},{},[564],{"type":44,"tag":59,"props":565,"children":566},{},[567],{"type":50,"value":568},"Trigger body schema",{"type":44,"tag":175,"props":570,"children":571},{},[572,574,580,582,588,590,596,597,603,605,611,613,618,619,625,626,632,634,671,673,679,681,687,689,694,696,702],{"type":50,"value":573},"Properties root contains: ",{"type":44,"tag":76,"props":575,"children":577},{"className":576},[],[578],{"type":50,"value":579},"type",{"type":50,"value":581}," OR ",{"type":44,"tag":76,"props":583,"children":585},{"className":584},[],[586],{"type":50,"value":587},"connectionDetails",{"type":50,"value":589},"+",{"type":44,"tag":76,"props":591,"children":593},{"className":592},[],[594],{"type":50,"value":595},"operationName",{"type":50,"value":589},{"type":44,"tag":76,"props":598,"children":600},{"className":599},[],[601],{"type":50,"value":602},"parameters",{"type":50,"value":604},", plus ",{"type":44,"tag":76,"props":606,"children":608},{"className":607},[],[609],{"type":50,"value":610},"notificationDetails",{"type":50,"value":612}," (",{"type":44,"tag":76,"props":614,"children":616},{"className":615},[],[617],{"type":50,"value":206},{"type":50,"value":589},{"type":44,"tag":76,"props":620,"children":622},{"className":621},[],[623],{"type":50,"value":624},"authentication",{"type":50,"value":589},{"type":44,"tag":76,"props":627,"children":629},{"className":628},[],[630],{"type":50,"value":631},"body?",{"type":50,"value":633},"). ",{"type":44,"tag":59,"props":635,"children":636},{},[637,639,645,647,653,655,661,663,669],{"type":50,"value":638},"Body-sourced leaves (top-level body param + every nested sub-property) are aggregated into ONE ",{"type":44,"tag":76,"props":640,"children":642},{"className":641},[],[643],{"type":50,"value":644},"parameters[]",{"type":50,"value":646}," entry whose ",{"type":44,"tag":76,"props":648,"children":650},{"className":649},[],[651],{"type":50,"value":652},"name",{"type":50,"value":654}," is literally ",{"type":44,"tag":76,"props":656,"children":658},{"className":657},[],[659],{"type":50,"value":660},"\"body\"",{"type":50,"value":662}," and whose ",{"type":44,"tag":76,"props":664,"children":666},{"className":665},[],[667],{"type":50,"value":668},"value",{"type":50,"value":670}," is the nested object",{"type":50,"value":672}," (dotted leaf names like ",{"type":44,"tag":76,"props":674,"children":676},{"className":675},[],[677],{"type":50,"value":678},"filter.labels",{"type":50,"value":680}," get rolled up via ",{"type":44,"tag":76,"props":682,"children":684},{"className":683},[],[685],{"type":50,"value":686},"setNestedValue",{"type":50,"value":688},"). The wrapper name ",{"type":44,"tag":76,"props":690,"children":692},{"className":691},[],[693],{"type":50,"value":660},{"type":50,"value":695}," is independent of the Swagger body parameter's own name. Non-body dotted leaves are grouped under their root segment. See ",{"type":44,"tag":550,"props":697,"children":699},{"href":698},"references\u002Ftrigger-setup.md",[700],{"type":50,"value":701},"trigger-setup.md",{"type":50,"value":703}," §2b.",{"type":44,"tag":148,"props":705,"children":706},{},[707,721],{"type":44,"tag":175,"props":708,"children":709},{},[710],{"type":44,"tag":59,"props":711,"children":712},{},[713,715],{"type":50,"value":714},"Trigger needs ",{"type":44,"tag":76,"props":716,"children":718},{"className":717},[],[719],{"type":50,"value":720},"namespace-acl",{"type":44,"tag":175,"props":722,"children":723},{},[724,726,730],{"type":50,"value":725},"For connector-event triggers, the namespace MI must have an access policy on the connection. See ",{"type":44,"tag":550,"props":727,"children":728},{"href":698},[729],{"type":50,"value":701},{"type":50,"value":731}," Step 4.",{"type":44,"tag":148,"props":733,"children":734},{},[735,743],{"type":44,"tag":175,"props":736,"children":737},{},[738],{"type":44,"tag":59,"props":739,"children":740},{},[741],{"type":50,"value":742},"MCP user params",{"type":44,"tag":175,"props":744,"children":745},{},[746,748,754,756,761,763,769,771,777,779,784,786,791,793,799,801,807],{"type":50,"value":747},"Each ",{"type":44,"tag":76,"props":749,"children":751},{"className":750},[],[752],{"type":50,"value":753},"userParameters[]",{"type":50,"value":755}," entry is a ",{"type":44,"tag":59,"props":757,"children":758},{},[759],{"type":50,"value":760},"fixed value",{"type":50,"value":762}," for a connector-operation parameter (resolved via ",{"type":44,"tag":76,"props":764,"children":766},{"className":765},[],[767],{"type":50,"value":768},"dynamic-values",{"type":50,"value":770}," against the connection at config time). Each ",{"type":44,"tag":76,"props":772,"children":774},{"className":773},[],[775],{"type":50,"value":776},"agentParameters[]",{"type":50,"value":778}," entry declares a JSON-Schema input the ",{"type":44,"tag":59,"props":780,"children":781},{},[782],{"type":50,"value":783},"caller (LLM) supplies",{"type":50,"value":785}," at tool-call time. ",{"type":44,"tag":59,"props":787,"children":788},{},[789],{"type":50,"value":790},"Every required parameter (including required body sub-properties) MUST appear in one of the two arrays",{"type":50,"value":792}," — the runtime rejects the call with ",{"type":44,"tag":76,"props":794,"children":796},{"className":795},[],[797],{"type":50,"value":798},"missing required property '\u003Cpath>'",{"type":50,"value":800}," otherwise. See ",{"type":44,"tag":550,"props":802,"children":804},{"href":803},"references\u002Fmcp-server-config.md",[805],{"type":50,"value":806},"mcp-server-config.md",{"type":50,"value":557},{"type":44,"tag":148,"props":809,"children":810},{},[811,819],{"type":44,"tag":175,"props":812,"children":813},{},[814],{"type":44,"tag":59,"props":815,"children":816},{},[817],{"type":50,"value":818},"MCP per-parameter triage",{"type":44,"tag":175,"props":820,"children":821},{},[822,843,845,850,852,858,860,865,867,880,882,886],{"type":44,"tag":59,"props":823,"children":824},{},[825,827,833,835,841],{"type":50,"value":826},"STOP and ask the user, for each operation parameter (path\u002Fquery\u002Fbody field, including each required body sub-property), whether it should be a fixed ",{"type":44,"tag":76,"props":828,"children":830},{"className":829},[],[831],{"type":50,"value":832},"userParameter",{"type":50,"value":834},", a caller-supplied ",{"type":44,"tag":76,"props":836,"children":838},{"className":837},[],[839],{"type":50,"value":840},"agentParameter",{"type":50,"value":842},", or skipped (optional only).",{"type":50,"value":844}," Do this ",{"type":44,"tag":59,"props":846,"children":847},{},[848],{"type":50,"value":849},"before",{"type":50,"value":851}," the ",{"type":44,"tag":76,"props":853,"children":855},{"className":854},[],[856],{"type":50,"value":857},"mcpServerConfigs",{"type":50,"value":859}," PUT, even when no ",{"type":44,"tag":76,"props":861,"children":863},{"className":862},[],[864],{"type":50,"value":365},{"type":50,"value":866}," markers are present. Decompose the body's object schema and triage each leaf. ",{"type":44,"tag":59,"props":868,"children":869},{},[870,872,878],{"type":50,"value":871},"For MCP, body wrapper name = the Swagger body param's own name (e.g. ",{"type":44,"tag":76,"props":873,"children":875},{"className":874},[],[876],{"type":50,"value":877},"emailMessage",{"type":50,"value":879},").",{"type":50,"value":881}," See ",{"type":44,"tag":550,"props":883,"children":884},{"href":803},[885],{"type":50,"value":806},{"type":50,"value":887}," §\"Per-parameter triage workflow\".",{"type":44,"tag":148,"props":889,"children":890},{},[891,899],{"type":44,"tag":175,"props":892,"children":893},{},[894],{"type":44,"tag":59,"props":895,"children":896},{},[897],{"type":50,"value":898},"Parallel execution",{"type":44,"tag":175,"props":900,"children":901},{},[902],{"type":50,"value":903},"Run independent ops (connections, ACLs, dynamic-value lookups, MCP operations) as parallel tool calls.",{"type":44,"tag":53,"props":905,"children":906},{},[907,912,914,933,935,954],{"type":44,"tag":59,"props":908,"children":909},{},[910],{"type":50,"value":911},"When to STOP and ask the user:",{"type":50,"value":913}," subscription\u002Fresource group, namespace name, connection name, any parameter with dynamic values (teams\u002Fchannels\u002Ffolders\u002Fsites\u002Flists), callback URL, callback authentication type, ",{"type":44,"tag":59,"props":915,"children":916},{},[917,919,924,926,931],{"type":50,"value":918},"MSI ",{"type":44,"tag":76,"props":920,"children":922},{"className":921},[],[923],{"type":50,"value":425},{"type":50,"value":925}," (if MSI auth chosen — default to ",{"type":44,"tag":76,"props":927,"children":929},{"className":928},[],[930],{"type":50,"value":441},{"type":50,"value":932}," if user doesn't provide one)",{"type":50,"value":934},", OAuth consent completion, ",{"type":44,"tag":59,"props":936,"children":937},{},[938,940,945,947,952],{"type":50,"value":939},"MCP per-parameter triage (",{"type":44,"tag":76,"props":941,"children":943},{"className":942},[],[944],{"type":50,"value":832},{"type":50,"value":946}," vs ",{"type":44,"tag":76,"props":948,"children":950},{"className":949},[],[951],{"type":50,"value":840},{"type":50,"value":953}," vs skip — for every path\u002Fquery\u002Fbody field, including each body sub-property)",{"type":50,"value":557},{"type":44,"tag":53,"props":956,"children":957},{},[958,963],{"type":44,"tag":59,"props":959,"children":960},{},[961],{"type":50,"value":962},"When to EXECUTE immediately:",{"type":50,"value":964}," namespace\u002Fconnection\u002Ftrigger\u002FMCP-config\u002Faccess-policy CRUD, role assignments, dynamic-value lookups.",{"type":44,"tag":966,"props":967,"children":968},"hr",{},[],{"type":44,"tag":970,"props":971,"children":973},"h3",{"id":972},"step-0-prerequisites-azure-context",[974],{"type":50,"value":975},"Step 0: Prerequisites & Azure context",{"type":44,"tag":977,"props":978,"children":979},"ol",{},[980,1000,1093],{"type":44,"tag":981,"props":982,"children":983},"li",{},[984,985,991,993,999],{"type":50,"value":313},{"type":44,"tag":76,"props":986,"children":988},{"className":987},[],[989],{"type":50,"value":990},"az account show",{"type":50,"value":992},". If missing, see ",{"type":44,"tag":550,"props":994,"children":996},{"href":995},"references\u002Fprerequisites.md",[997],{"type":50,"value":998},"prerequisites.md",{"type":50,"value":557},{"type":44,"tag":981,"props":1001,"children":1002},{},[1003,1008,1010,1075,1077,1083,1085,1091],{"type":44,"tag":59,"props":1004,"children":1005},{},[1006],{"type":50,"value":1007},"Select subscription",{"type":50,"value":1009}," — list, ask user to pick:\n",{"type":44,"tag":1011,"props":1012,"children":1017},"pre",{"className":1013,"code":1014,"language":1015,"meta":1016,"style":1016},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","az account list --query \"[].{name:name, id:id, isDefault:isDefault}\" -o table\n","bash","",[1018],{"type":44,"tag":76,"props":1019,"children":1020},{"__ignoreMap":1016},[1021],{"type":44,"tag":1022,"props":1023,"children":1026},"span",{"class":1024,"line":1025},"line",1,[1027,1033,1039,1044,1049,1055,1060,1065,1070],{"type":44,"tag":1022,"props":1028,"children":1030},{"style":1029},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1031],{"type":50,"value":1032},"az",{"type":44,"tag":1022,"props":1034,"children":1036},{"style":1035},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1037],{"type":50,"value":1038}," account",{"type":44,"tag":1022,"props":1040,"children":1041},{"style":1035},[1042],{"type":50,"value":1043}," list",{"type":44,"tag":1022,"props":1045,"children":1046},{"style":1035},[1047],{"type":50,"value":1048}," --query",{"type":44,"tag":1022,"props":1050,"children":1052},{"style":1051},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1053],{"type":50,"value":1054}," \"",{"type":44,"tag":1022,"props":1056,"children":1057},{"style":1035},[1058],{"type":50,"value":1059},"[].{name:name, id:id, isDefault:isDefault}",{"type":44,"tag":1022,"props":1061,"children":1062},{"style":1051},[1063],{"type":50,"value":1064},"\"",{"type":44,"tag":1022,"props":1066,"children":1067},{"style":1035},[1068],{"type":50,"value":1069}," -o",{"type":44,"tag":1022,"props":1071,"children":1072},{"style":1035},[1073],{"type":50,"value":1074}," table\n",{"type":50,"value":1076},"\nSet if non-default: ",{"type":44,"tag":76,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":50,"value":1082},"az account set --subscription \"{sub}\"",{"type":50,"value":1084},". Store ",{"type":44,"tag":76,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":50,"value":1090},"{sub}",{"type":50,"value":1092}," for all\nsubsequent commands.",{"type":44,"tag":981,"props":1094,"children":1095},{},[1096,1101,1103],{"type":44,"tag":59,"props":1097,"children":1098},{},[1099],{"type":50,"value":1100},"Select resource group",{"type":50,"value":1102},":\n",{"type":44,"tag":1104,"props":1105,"children":1106},"ul",{},[1107,1120],{"type":44,"tag":981,"props":1108,"children":1109},{},[1110,1112,1118],{"type":50,"value":1111},"Existing: ",{"type":44,"tag":76,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":50,"value":1117},"az group list --query \"[].{name:name, location:location}\" -o table",{"type":50,"value":1119}," → user picks.",{"type":44,"tag":981,"props":1121,"children":1122},{},[1123,1125,1131],{"type":50,"value":1124},"New: ask for name + location, then ",{"type":44,"tag":76,"props":1126,"children":1128},{"className":1127},[],[1129],{"type":50,"value":1130},"az group create --name {rg} --location {location}",{"type":50,"value":557},{"type":44,"tag":53,"props":1133,"children":1134},{},[1135],{"type":44,"tag":59,"props":1136,"children":1137},{},[1138],{"type":50,"value":1139},"Stop and wait for the user's answers before continuing.",{"type":44,"tag":966,"props":1141,"children":1142},{},[],{"type":44,"tag":970,"props":1144,"children":1146},{"id":1145},"step-1-namespace-setup",[1147],{"type":50,"value":1148},"Step 1: Namespace setup",{"type":44,"tag":67,"props":1150,"children":1151},{},[1152],{"type":44,"tag":53,"props":1153,"children":1154},{},[1155,1160,1162,1168,1173,1174],{"type":44,"tag":59,"props":1156,"children":1157},{},[1158],{"type":50,"value":1159},"ARM base:",{"type":50,"value":1161}," ",{"type":44,"tag":76,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":50,"value":1167},"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways",{"type":44,"tag":59,"props":1169,"children":1170},{},[1171],{"type":50,"value":1172},"API version:",{"type":50,"value":1161},{"type":44,"tag":76,"props":1175,"children":1177},{"className":1176},[],[1178],{"type":50,"value":1179},"2026-05-01-preview",{"type":44,"tag":53,"props":1181,"children":1182},{},[1183],{"type":50,"value":1184},"Ask the user: \"Do you have an existing connector namespace, or should I create a new one?\"",{"type":44,"tag":1104,"props":1186,"children":1187},{},[1188,1281],{"type":44,"tag":981,"props":1189,"children":1190},{},[1191,1196,1198],{"type":44,"tag":59,"props":1192,"children":1193},{},[1194],{"type":50,"value":1195},"Existing:",{"type":50,"value":1197}," ask for the name and fetch it:\n",{"type":44,"tag":1011,"props":1199,"children":1201},{"className":1013,"code":1200,"language":1015,"meta":1016,"style":1016},"az rest --method GET \\\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\" \\\n  --query \"{name:name, location:location, principalId:identity.principalId, tenantId:identity.tenantId, identityType:identity.type, userAssigned:identity.userAssignedIdentities}\"\n",[1202],{"type":44,"tag":76,"props":1203,"children":1204},{"__ignoreMap":1016},[1205,1233,1258],{"type":44,"tag":1022,"props":1206,"children":1207},{"class":1024,"line":1025},[1208,1212,1217,1222,1227],{"type":44,"tag":1022,"props":1209,"children":1210},{"style":1029},[1211],{"type":50,"value":1032},{"type":44,"tag":1022,"props":1213,"children":1214},{"style":1035},[1215],{"type":50,"value":1216}," rest",{"type":44,"tag":1022,"props":1218,"children":1219},{"style":1035},[1220],{"type":50,"value":1221}," --method",{"type":44,"tag":1022,"props":1223,"children":1224},{"style":1035},[1225],{"type":50,"value":1226}," GET",{"type":44,"tag":1022,"props":1228,"children":1230},{"style":1229},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1231],{"type":50,"value":1232}," \\\n",{"type":44,"tag":1022,"props":1234,"children":1235},{"class":1024,"line":28},[1236,1241,1245,1250,1254],{"type":44,"tag":1022,"props":1237,"children":1238},{"style":1035},[1239],{"type":50,"value":1240},"  --url",{"type":44,"tag":1022,"props":1242,"children":1243},{"style":1051},[1244],{"type":50,"value":1054},{"type":44,"tag":1022,"props":1246,"children":1247},{"style":1035},[1248],{"type":50,"value":1249},"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":1251,"children":1252},{"style":1051},[1253],{"type":50,"value":1064},{"type":44,"tag":1022,"props":1255,"children":1256},{"style":1229},[1257],{"type":50,"value":1232},{"type":44,"tag":1022,"props":1259,"children":1261},{"class":1024,"line":1260},3,[1262,1267,1271,1276],{"type":44,"tag":1022,"props":1263,"children":1264},{"style":1035},[1265],{"type":50,"value":1266},"  --query",{"type":44,"tag":1022,"props":1268,"children":1269},{"style":1051},[1270],{"type":50,"value":1054},{"type":44,"tag":1022,"props":1272,"children":1273},{"style":1035},[1274],{"type":50,"value":1275},"{name:name, location:location, principalId:identity.principalId, tenantId:identity.tenantId, identityType:identity.type, userAssigned:identity.userAssignedIdentities}",{"type":44,"tag":1022,"props":1277,"children":1278},{"style":1051},[1279],{"type":50,"value":1280},"\"\n",{"type":44,"tag":981,"props":1282,"children":1283},{},[1284,1289,1291,1297,1299,1304,1306,1311,1313],{"type":44,"tag":59,"props":1285,"children":1286},{},[1287],{"type":50,"value":1288},"New:",{"type":50,"value":1290}," ask for ",{"type":44,"tag":76,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":50,"value":1296},"{namespace}",{"type":50,"value":1298}," name + location. ",{"type":44,"tag":59,"props":1300,"children":1301},{},[1302],{"type":50,"value":1303},"Create with a SystemAssigned managed identity",{"type":50,"value":1305},"\n(required for trigger event subscriptions on connector-event triggers AND for\n",{"type":44,"tag":76,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":50,"value":412},{"type":50,"value":1312}," callback auth):\n",{"type":44,"tag":1011,"props":1314,"children":1318},{"className":1315,"code":1316,"language":1317,"meta":1016,"style":1016},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$namespaceBody = @{ location = \"{location}\"; identity = @{ type = \"SystemAssigned\" } } | ConvertTo-Json -Compress\n$tmp = New-TemporaryFile; Set-Content $tmp $namespaceBody\naz rest --method PUT `\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\" `\n  --body \"@$tmp\" `\n  --query \"{name:name, principalId:identity.principalId, tenantId:identity.tenantId}\"\nRemove-Item $tmp\n","powershell",[1319],{"type":44,"tag":76,"props":1320,"children":1321},{"__ignoreMap":1016},[1322,1330,1338,1346,1355,1364,1373],{"type":44,"tag":1022,"props":1323,"children":1324},{"class":1024,"line":1025},[1325],{"type":44,"tag":1022,"props":1326,"children":1327},{},[1328],{"type":50,"value":1329},"$namespaceBody = @{ location = \"{location}\"; identity = @{ type = \"SystemAssigned\" } } | ConvertTo-Json -Compress\n",{"type":44,"tag":1022,"props":1331,"children":1332},{"class":1024,"line":28},[1333],{"type":44,"tag":1022,"props":1334,"children":1335},{},[1336],{"type":50,"value":1337},"$tmp = New-TemporaryFile; Set-Content $tmp $namespaceBody\n",{"type":44,"tag":1022,"props":1339,"children":1340},{"class":1024,"line":1260},[1341],{"type":44,"tag":1022,"props":1342,"children":1343},{},[1344],{"type":50,"value":1345},"az rest --method PUT `\n",{"type":44,"tag":1022,"props":1347,"children":1349},{"class":1024,"line":1348},4,[1350],{"type":44,"tag":1022,"props":1351,"children":1352},{},[1353],{"type":50,"value":1354},"  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\" `\n",{"type":44,"tag":1022,"props":1356,"children":1358},{"class":1024,"line":1357},5,[1359],{"type":44,"tag":1022,"props":1360,"children":1361},{},[1362],{"type":50,"value":1363},"  --body \"@$tmp\" `\n",{"type":44,"tag":1022,"props":1365,"children":1367},{"class":1024,"line":1366},6,[1368],{"type":44,"tag":1022,"props":1369,"children":1370},{},[1371],{"type":50,"value":1372},"  --query \"{name:name, principalId:identity.principalId, tenantId:identity.tenantId}\"\n",{"type":44,"tag":1022,"props":1374,"children":1376},{"class":1024,"line":1375},7,[1377],{"type":44,"tag":1022,"props":1378,"children":1379},{},[1380],{"type":50,"value":1381},"Remove-Item $tmp\n",{"type":44,"tag":53,"props":1383,"children":1384},{},[1385,1404,1406,1411,1413,1418],{"type":44,"tag":59,"props":1386,"children":1387},{},[1388,1390,1396,1398],{"type":50,"value":1389},"Capture ",{"type":44,"tag":76,"props":1391,"children":1393},{"className":1392},[],[1394],{"type":50,"value":1395},"principalId",{"type":50,"value":1397}," and ",{"type":44,"tag":76,"props":1399,"children":1401},{"className":1400},[],[1402],{"type":50,"value":1403},"tenantId",{"type":50,"value":1405}," — needed later for the ",{"type":44,"tag":76,"props":1407,"children":1409},{"className":1408},[],[1410],{"type":50,"value":720},{"type":50,"value":1412},"\naccess policy and (optionally) for ",{"type":44,"tag":76,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":50,"value":412},{"type":50,"value":1419}," callback authentication.",{"type":44,"tag":67,"props":1421,"children":1422},{},[1423],{"type":44,"tag":53,"props":1424,"children":1425},{},[1426,1428,1433,1435,1441],{"type":50,"value":1427},"If a user later wants to call their callback URL using a ",{"type":44,"tag":59,"props":1429,"children":1430},{},[1431],{"type":50,"value":1432},"user-assigned",{"type":50,"value":1434}," identity,\nthey'll need to add that identity to the namespace separately. See\n",{"type":44,"tag":550,"props":1436,"children":1438},{"href":1437},"references\u002Fnotification-authentication.md",[1439],{"type":50,"value":1440},"notification-authentication.md",{"type":50,"value":557},{"type":44,"tag":966,"props":1443,"children":1444},{},[],{"type":44,"tag":970,"props":1446,"children":1448},{"id":1447},"step-2-connections-oauth-consent",[1449],{"type":50,"value":1450},"Step 2: Connection(s) + OAuth consent",{"type":44,"tag":53,"props":1452,"children":1453},{},[1454,1456,1461,1463,1468,1470,1475],{"type":50,"value":1455},"Required for ",{"type":44,"tag":59,"props":1457,"children":1458},{},[1459],{"type":50,"value":1460},"trigger configs",{"type":50,"value":1462},", ",{"type":44,"tag":59,"props":1464,"children":1465},{},[1466],{"type":50,"value":1467},"MCP server configs",{"type":50,"value":1469},", and ",{"type":44,"tag":59,"props":1471,"children":1472},{},[1473],{"type":50,"value":1474},"direct API calls",{"type":50,"value":1476},".\nRecurrence \u002F sliding-window triggers with no connector-event source can skip this.",{"type":44,"tag":53,"props":1478,"children":1479},{},[1480],{"type":50,"value":1481},"Create connections in parallel:",{"type":44,"tag":1011,"props":1483,"children":1485},{"className":1315,"code":1484,"language":1317,"meta":1016,"style":1016},"$connBody = @{ properties = @{ connectorName = \"office365\" }; location = \"{location}\" } | ConvertTo-Json -Compress\n$tmp = New-TemporaryFile; Set-Content $tmp $connBody\naz rest --method PUT `\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}\u002Fconnections\u002Fo365-conn?api-version=2026-05-01-preview\" `\n  --body \"@$tmp\"\nRemove-Item $tmp\n",[1486],{"type":44,"tag":76,"props":1487,"children":1488},{"__ignoreMap":1016},[1489,1497,1505,1512,1520,1528],{"type":44,"tag":1022,"props":1490,"children":1491},{"class":1024,"line":1025},[1492],{"type":44,"tag":1022,"props":1493,"children":1494},{},[1495],{"type":50,"value":1496},"$connBody = @{ properties = @{ connectorName = \"office365\" }; location = \"{location}\" } | ConvertTo-Json -Compress\n",{"type":44,"tag":1022,"props":1498,"children":1499},{"class":1024,"line":28},[1500],{"type":44,"tag":1022,"props":1501,"children":1502},{},[1503],{"type":50,"value":1504},"$tmp = New-TemporaryFile; Set-Content $tmp $connBody\n",{"type":44,"tag":1022,"props":1506,"children":1507},{"class":1024,"line":1260},[1508],{"type":44,"tag":1022,"props":1509,"children":1510},{},[1511],{"type":50,"value":1345},{"type":44,"tag":1022,"props":1513,"children":1514},{"class":1024,"line":1348},[1515],{"type":44,"tag":1022,"props":1516,"children":1517},{},[1518],{"type":50,"value":1519},"  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}\u002Fconnections\u002Fo365-conn?api-version=2026-05-01-preview\" `\n",{"type":44,"tag":1022,"props":1521,"children":1522},{"class":1024,"line":1357},[1523],{"type":44,"tag":1022,"props":1524,"children":1525},{},[1526],{"type":50,"value":1527},"  --body \"@$tmp\"\n",{"type":44,"tag":1022,"props":1529,"children":1530},{"class":1024,"line":1366},[1531],{"type":44,"tag":1022,"props":1532,"children":1533},{},[1534],{"type":50,"value":1381},{"type":44,"tag":53,"props":1536,"children":1537},{},[1538,1540,1551,1553,1559,1561,1567,1569,1575],{"type":50,"value":1539},"Then generate consent links and open in the browser — ",{"type":44,"tag":59,"props":1541,"children":1542},{},[1543,1545],{"type":50,"value":1544},"see ",{"type":44,"tag":550,"props":1546,"children":1548},{"href":1547},"references\u002Fconsent.md",[1549],{"type":50,"value":1550},"consent.md",{"type":50,"value":1552}," for the exact body format and ",{"type":44,"tag":76,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":50,"value":1558},"Start-Process",{"type":50,"value":1560}," pattern. Verify status ",{"type":44,"tag":76,"props":1562,"children":1564},{"className":1563},[],[1565],{"type":50,"value":1566},"Connected",{"type":50,"value":1568}," before continuing. See also ",{"type":44,"tag":550,"props":1570,"children":1572},{"href":1571},"references\u002Fconnections.md",[1573],{"type":50,"value":1574},"connections.md",{"type":50,"value":1576}," for the full CRUD reference.",{"type":44,"tag":67,"props":1578,"children":1579},{},[1580],{"type":44,"tag":53,"props":1581,"children":1582},{},[1583,1588,1590,1595,1597,1601],{"type":44,"tag":59,"props":1584,"children":1585},{},[1586],{"type":50,"value":1587},"For trigger configs:",{"type":50,"value":1589}," also create a ",{"type":44,"tag":76,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":50,"value":720},{"type":50,"value":1596}," access policy granting the\nnamespace MI access to the connection (required for the namespace to subscribe to\nconnector events). See ",{"type":44,"tag":550,"props":1598,"children":1599},{"href":698},[1600],{"type":50,"value":701},{"type":50,"value":731},{"type":44,"tag":966,"props":1603,"children":1604},{},[],{"type":44,"tag":970,"props":1606,"children":1608},{"id":1607},"step-3-choose-the-pattern",[1609],{"type":50,"value":1610},"Step 3: Choose the pattern",{"type":44,"tag":53,"props":1612,"children":1613},{},[1614],{"type":50,"value":1615},"Ask the user:",{"type":44,"tag":1104,"props":1617,"children":1618},{},[1619,1628,1637],{"type":44,"tag":981,"props":1620,"children":1621},{},[1622,1626],{"type":44,"tag":59,"props":1623,"children":1624},{},[1625],{"type":50,"value":182},{"type":50,"value":1627}," — push notifications to your callback URL when events happen, or on a schedule.",{"type":44,"tag":981,"props":1629,"children":1630},{},[1631,1635],{"type":44,"tag":59,"props":1632,"children":1633},{},[1634],{"type":50,"value":217},{"type":50,"value":1636}," — expose selected connector operations as MCP tools at a namespace endpoint, callable by any MCP client (Claude Desktop, VS Code, etc.).",{"type":44,"tag":981,"props":1638,"children":1639},{},[1640,1644,1646,1651],{"type":44,"tag":59,"props":1641,"children":1642},{},[1643],{"type":50,"value":251},{"type":50,"value":1645}," — one-off ",{"type":44,"tag":76,"props":1647,"children":1649},{"className":1648},[],[1650],{"type":50,"value":267},{"type":50,"value":1652}," (send an email now, list items now).",{"type":44,"tag":53,"props":1654,"children":1655},{},[1656],{"type":44,"tag":59,"props":1657,"children":1658},{},[1659],{"type":50,"value":1660},"Stop and wait for the user's answer.",{"type":44,"tag":1104,"props":1662,"children":1663},{},[1664,1674,1684],{"type":44,"tag":981,"props":1665,"children":1666},{},[1667,1669],{"type":50,"value":1668},"A → ",{"type":44,"tag":59,"props":1670,"children":1671},{},[1672],{"type":50,"value":1673},"Step 4A",{"type":44,"tag":981,"props":1675,"children":1676},{},[1677,1679],{"type":50,"value":1678},"B → ",{"type":44,"tag":59,"props":1680,"children":1681},{},[1682],{"type":50,"value":1683},"Step 4B",{"type":44,"tag":981,"props":1685,"children":1686},{},[1687,1689],{"type":50,"value":1688},"C → ",{"type":44,"tag":59,"props":1690,"children":1691},{},[1692],{"type":50,"value":1693},"Step 4C",{"type":44,"tag":966,"props":1695,"children":1696},{},[],{"type":44,"tag":970,"props":1698,"children":1700},{"id":1699},"step-4a-trigger-config",[1701],{"type":50,"value":1702},"Step 4A: Trigger config",{"type":44,"tag":53,"props":1704,"children":1705},{},[1706,1708,1713,1714,1718,1720,1725,1726,1730,1731,1736,1737],{"type":50,"value":1707},"→ ",{"type":44,"tag":59,"props":1709,"children":1710},{},[1711],{"type":50,"value":1712},"Full details:",{"type":50,"value":1161},{"type":44,"tag":550,"props":1715,"children":1716},{"href":698},[1717],{"type":50,"value":701},{"type":50,"value":1719}," | ",{"type":44,"tag":59,"props":1721,"children":1722},{},[1723],{"type":50,"value":1724},"Auth options:",{"type":50,"value":1161},{"type":44,"tag":550,"props":1727,"children":1728},{"href":1437},[1729],{"type":50,"value":1440},{"type":50,"value":1719},{"type":44,"tag":59,"props":1732,"children":1733},{},[1734],{"type":50,"value":1735},"Dynamic params:",{"type":50,"value":1161},{"type":44,"tag":550,"props":1738,"children":1740},{"href":1739},"references\u002Fdynamic-values.md",[1741],{"type":50,"value":1742},"dynamic-values.md",{"type":44,"tag":977,"props":1744,"children":1745},{},[1746,1805,2041,2065,2107,2335,2351,2371],{"type":44,"tag":981,"props":1747,"children":1748},{},[1749,1754,1756],{"type":44,"tag":59,"props":1750,"children":1751},{},[1752],{"type":50,"value":1753},"Pick the trigger source.",{"type":50,"value":1755}," Ask the user:",{"type":44,"tag":1104,"props":1757,"children":1758},{},[1759,1769,1779],{"type":44,"tag":981,"props":1760,"children":1761},{},[1762,1767],{"type":44,"tag":59,"props":1763,"children":1764},{},[1765],{"type":50,"value":1766},"Connector event",{"type":50,"value":1768}," (e.g., new email, new file, new form response) — needs the connection from Step 2.",{"type":44,"tag":981,"props":1770,"children":1771},{},[1772,1777],{"type":44,"tag":59,"props":1773,"children":1774},{},[1775],{"type":50,"value":1776},"Recurrence",{"type":50,"value":1778}," — fires every N seconds \u002F minutes \u002F hours \u002F days.",{"type":44,"tag":981,"props":1780,"children":1781},{},[1782,1787,1789,1795,1797,1803],{"type":44,"tag":59,"props":1783,"children":1784},{},[1785],{"type":50,"value":1786},"Sliding window",{"type":50,"value":1788}," — fires on time intervals with ",{"type":44,"tag":76,"props":1790,"children":1792},{"className":1791},[],[1793],{"type":50,"value":1794},"startTime",{"type":50,"value":1796},"\u002F",{"type":44,"tag":76,"props":1798,"children":1800},{"className":1799},[],[1801],{"type":50,"value":1802},"endTime",{"type":50,"value":1804}," window state.",{"type":44,"tag":981,"props":1806,"children":1807},{},[1808,1813,1815,1897,1901,1903,1916,1918,1924,1926,1932,1934,1992,1995,2007,2009,2014,2016,2026,2028,2033,2035,2039],{"type":44,"tag":59,"props":1809,"children":1810},{},[1811],{"type":50,"value":1812},"Connector event:",{"type":50,"value":1814}," discover trigger operations on the connector:",{"type":44,"tag":1011,"props":1816,"children":1818},{"className":1013,"code":1817,"language":1015,"meta":1016,"style":1016},"az rest --method GET \\\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002Fproviders\u002FMicrosoft.Web\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01\" \\\n  --query \"value[?properties.trigger != null].{name:name, summary:properties.summary, trigger:properties.trigger}\" -o table\n",[1819],{"type":44,"tag":76,"props":1820,"children":1821},{"__ignoreMap":1016},[1822,1845,1869],{"type":44,"tag":1022,"props":1823,"children":1824},{"class":1024,"line":1025},[1825,1829,1833,1837,1841],{"type":44,"tag":1022,"props":1826,"children":1827},{"style":1029},[1828],{"type":50,"value":1032},{"type":44,"tag":1022,"props":1830,"children":1831},{"style":1035},[1832],{"type":50,"value":1216},{"type":44,"tag":1022,"props":1834,"children":1835},{"style":1035},[1836],{"type":50,"value":1221},{"type":44,"tag":1022,"props":1838,"children":1839},{"style":1035},[1840],{"type":50,"value":1226},{"type":44,"tag":1022,"props":1842,"children":1843},{"style":1229},[1844],{"type":50,"value":1232},{"type":44,"tag":1022,"props":1846,"children":1847},{"class":1024,"line":28},[1848,1852,1856,1861,1865],{"type":44,"tag":1022,"props":1849,"children":1850},{"style":1035},[1851],{"type":50,"value":1240},{"type":44,"tag":1022,"props":1853,"children":1854},{"style":1051},[1855],{"type":50,"value":1054},{"type":44,"tag":1022,"props":1857,"children":1858},{"style":1035},[1859],{"type":50,"value":1860},"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002Fproviders\u002FMicrosoft.Web\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01",{"type":44,"tag":1022,"props":1862,"children":1863},{"style":1051},[1864],{"type":50,"value":1064},{"type":44,"tag":1022,"props":1866,"children":1867},{"style":1229},[1868],{"type":50,"value":1232},{"type":44,"tag":1022,"props":1870,"children":1871},{"class":1024,"line":1260},[1872,1876,1880,1885,1889,1893],{"type":44,"tag":1022,"props":1873,"children":1874},{"style":1035},[1875],{"type":50,"value":1266},{"type":44,"tag":1022,"props":1877,"children":1878},{"style":1051},[1879],{"type":50,"value":1054},{"type":44,"tag":1022,"props":1881,"children":1882},{"style":1035},[1883],{"type":50,"value":1884},"value[?properties.trigger != null].{name:name, summary:properties.summary, trigger:properties.trigger}",{"type":44,"tag":1022,"props":1886,"children":1887},{"style":1051},[1888],{"type":50,"value":1064},{"type":44,"tag":1022,"props":1890,"children":1891},{"style":1035},[1892],{"type":50,"value":1069},{"type":44,"tag":1022,"props":1894,"children":1895},{"style":1035},[1896],{"type":50,"value":1074},{"type":44,"tag":1898,"props":1899,"children":1900},"br",{},[],{"type":50,"value":1902},"Pick one with the user. ",{"type":44,"tag":59,"props":1904,"children":1905},{},[1906,1908,1914],{"type":50,"value":1907},"Enumerate every parameter — including each\nsub-property of a ",{"type":44,"tag":76,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":50,"value":1913},"body",{"type":50,"value":1915}," object",{"type":50,"value":1917}," (resolve ",{"type":44,"tag":76,"props":1919,"children":1921},{"className":1920},[],[1922],{"type":50,"value":1923},"$ref",{"type":50,"value":1925},", recurse into nested\nobjects and array ",{"type":44,"tag":76,"props":1927,"children":1929},{"className":1928},[],[1930],{"type":50,"value":1931},"items",{"type":50,"value":1933},"). Triage each leaf:",{"type":44,"tag":1104,"props":1935,"children":1936},{},[1937,1957,1969,1982],{"type":44,"tag":981,"props":1938,"children":1939},{},[1940,1945,1947,1951,1952],{"type":44,"tag":76,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":50,"value":365},{"type":50,"value":1946}," → resolve via ",{"type":44,"tag":550,"props":1948,"children":1949},{"href":1739},[1950],{"type":50,"value":1742},{"type":50,"value":443},{"type":44,"tag":59,"props":1953,"children":1954},{},[1955],{"type":50,"value":1956},"STOP at every dynamic param.",{"type":44,"tag":981,"props":1958,"children":1959},{},[1960,1962,1967],{"type":50,"value":1961},"Static enum → present choices and ",{"type":44,"tag":59,"props":1963,"children":1964},{},[1965],{"type":50,"value":1966},"STOP",{"type":50,"value":1968}," for user pick.",{"type":44,"tag":981,"props":1970,"children":1971},{},[1972,1974,1980],{"type":50,"value":1973},"Free-form with obvious default (e.g., ",{"type":44,"tag":76,"props":1975,"children":1977},{"className":1976},[],[1978],{"type":50,"value":1979},"folderPath=Inbox",{"type":50,"value":1981},") → use default, inform user.",{"type":44,"tag":981,"props":1983,"children":1984},{},[1985,1987],{"type":50,"value":1986},"Free-form with no default → ",{"type":44,"tag":59,"props":1988,"children":1989},{},[1990],{"type":50,"value":1991},"STOP and ask the user.",{"type":44,"tag":1898,"props":1993,"children":1994},{},[],{"type":44,"tag":59,"props":1996,"children":1997},{},[1998,2000,2005],{"type":50,"value":1999},"When assembling ",{"type":44,"tag":76,"props":2001,"children":2003},{"className":2002},[],[2004],{"type":50,"value":644},{"type":50,"value":2006},", build a nested object — do NOT emit dotted\nleaf names.",{"type":50,"value":2008}," All body-sourced leaves (top-level body + every nested\nsub-property) collapse into ONE entry whose ",{"type":44,"tag":76,"props":2010,"children":2012},{"className":2011},[],[2013],{"type":50,"value":652},{"type":50,"value":2015}," is ",{"type":44,"tag":59,"props":2017,"children":2018},{},[2019,2021],{"type":50,"value":2020},"literally the string\n",{"type":44,"tag":76,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":50,"value":660},{"type":50,"value":2027}," (NOT the Swagger body parameter's name) and whose ",{"type":44,"tag":76,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":50,"value":668},{"type":50,"value":2034}," is the\nnested object. Non-body dotted leaves group under their root segment. See\n",{"type":44,"tag":550,"props":2036,"children":2037},{"href":698},[2038],{"type":50,"value":701},{"type":50,"value":2040}," §2b for the exact pattern\nand worked examples.",{"type":44,"tag":981,"props":2042,"children":2043},{},[2044,2049,2050,2056,2058,2064],{"type":44,"tag":59,"props":2045,"children":2046},{},[2047],{"type":50,"value":2048},"Recurrence \u002F sliding window:",{"type":50,"value":1290},{"type":44,"tag":76,"props":2051,"children":2053},{"className":2052},[],[2054],{"type":50,"value":2055},"frequency",{"type":50,"value":2057}," (Second\u002FMinute\u002FHour\u002FDay) and ",{"type":44,"tag":76,"props":2059,"children":2061},{"className":2060},[],[2062],{"type":50,"value":2063},"interval",{"type":50,"value":557},{"type":44,"tag":981,"props":2066,"children":2067},{},[2068,2073,2075],{"type":44,"tag":59,"props":2069,"children":2070},{},[2071],{"type":50,"value":2072},"Callback URL — ask the user explicitly.",{"type":50,"value":2074}," Do NOT invent one. Format examples:",{"type":44,"tag":1104,"props":2076,"children":2077},{},[2078,2089,2094],{"type":44,"tag":981,"props":2079,"children":2080},{},[2081,2083],{"type":50,"value":2082},"Function App: ",{"type":44,"tag":76,"props":2084,"children":2086},{"className":2085},[],[2087],{"type":50,"value":2088},"https:\u002F\u002F{app}.azurewebsites.net\u002Fapi\u002F{fn}?code={key}",{"type":44,"tag":981,"props":2090,"children":2091},{},[2092],{"type":50,"value":2093},"Logic App HTTP trigger: full SAS URL from the Logic App's \"When a HTTP request is received\"",{"type":44,"tag":981,"props":2095,"children":2096},{},[2097,2099,2105],{"type":50,"value":2098},"Custom API: any ",{"type":44,"tag":76,"props":2100,"children":2102},{"className":2101},[],[2103],{"type":50,"value":2104},"https:\u002F\u002F...",{"type":50,"value":2106}," endpoint",{"type":44,"tag":981,"props":2108,"children":2109},{},[2110,2115,2117,2121,2123],{"type":44,"tag":59,"props":2111,"children":2112},{},[2113],{"type":50,"value":2114},"Callback authentication — ask the user.",{"type":50,"value":2116}," Options (full reference in ",{"type":44,"tag":550,"props":2118,"children":2119},{"href":1437},[2120],{"type":50,"value":1440},{"type":50,"value":2122},"):",{"type":44,"tag":140,"props":2124,"children":2125},{},[2126,2142],{"type":44,"tag":144,"props":2127,"children":2128},{},[2129],{"type":44,"tag":148,"props":2130,"children":2131},{},[2132,2137],{"type":44,"tag":152,"props":2133,"children":2134},{},[2135],{"type":50,"value":2136},"Type",{"type":44,"tag":152,"props":2138,"children":2139},{},[2140],{"type":50,"value":2141},"Use when",{"type":44,"tag":168,"props":2143,"children":2144},{},[2145,2162,2187,2212,2242,2289,2306],{"type":44,"tag":148,"props":2146,"children":2147},{},[2148,2157],{"type":44,"tag":175,"props":2149,"children":2150},{},[2151],{"type":44,"tag":2152,"props":2153,"children":2154},"em",{},[2155],{"type":50,"value":2156},"(none)",{"type":44,"tag":175,"props":2158,"children":2159},{},[2160],{"type":50,"value":2161},"Callback URL already contains its own auth token (e.g., Logic App SAS in querystring)",{"type":44,"tag":148,"props":2163,"children":2164},{},[2165,2174],{"type":44,"tag":175,"props":2166,"children":2167},{},[2168],{"type":44,"tag":76,"props":2169,"children":2171},{"className":2170},[],[2172],{"type":50,"value":2173},"QueryString",{"type":44,"tag":175,"props":2175,"children":2176},{},[2177,2179,2185],{"type":50,"value":2178},"Add a ",{"type":44,"tag":76,"props":2180,"children":2182},{"className":2181},[],[2183],{"type":50,"value":2184},"?key=value",{"type":50,"value":2186}," automatically (e.g., Function App key)",{"type":44,"tag":148,"props":2188,"children":2189},{},[2190,2199],{"type":44,"tag":175,"props":2191,"children":2192},{},[2193],{"type":44,"tag":76,"props":2194,"children":2196},{"className":2195},[],[2197],{"type":50,"value":2198},"Raw",{"type":44,"tag":175,"props":2200,"children":2201},{},[2202,2204,2210],{"type":50,"value":2203},"Send a literal ",{"type":44,"tag":76,"props":2205,"children":2207},{"className":2206},[],[2208],{"type":50,"value":2209},"Authorization: \u003Cscheme> \u003Cparameter>",{"type":50,"value":2211}," header",{"type":44,"tag":148,"props":2213,"children":2214},{},[2215,2224],{"type":44,"tag":175,"props":2216,"children":2217},{},[2218],{"type":44,"tag":76,"props":2219,"children":2221},{"className":2220},[],[2222],{"type":50,"value":2223},"Basic",{"type":44,"tag":175,"props":2225,"children":2226},{},[2227,2229,2235,2236],{"type":50,"value":2228},"HTTP Basic with ",{"type":44,"tag":76,"props":2230,"children":2232},{"className":2231},[],[2233],{"type":50,"value":2234},"username",{"type":50,"value":1796},{"type":44,"tag":76,"props":2237,"children":2239},{"className":2238},[],[2240],{"type":50,"value":2241},"password",{"type":44,"tag":148,"props":2243,"children":2244},{},[2245,2253],{"type":44,"tag":175,"props":2246,"children":2247},{},[2248],{"type":44,"tag":76,"props":2249,"children":2251},{"className":2250},[],[2252],{"type":50,"value":412},{"type":44,"tag":175,"props":2254,"children":2255},{},[2256,2258,2263,2265,2275,2277,2282,2284,2288],{"type":50,"value":2257},"Namespace acquires a token for ",{"type":44,"tag":76,"props":2259,"children":2261},{"className":2260},[],[2262],{"type":50,"value":425},{"type":50,"value":2264}," using its own MI (system- or user-assigned). ",{"type":44,"tag":59,"props":2266,"children":2267},{},[2268,2270],{"type":50,"value":2269},"Ask the user for ",{"type":44,"tag":76,"props":2271,"children":2273},{"className":2272},[],[2274],{"type":50,"value":425},{"type":50,"value":2276}," — if they don't provide one, default to ",{"type":44,"tag":76,"props":2278,"children":2280},{"className":2279},[],[2281],{"type":50,"value":441},{"type":50,"value":2283},". Never use the callback URL as the audience. See ",{"type":44,"tag":550,"props":2285,"children":2286},{"href":1437},[2287],{"type":50,"value":1440},{"type":50,"value":557},{"type":44,"tag":148,"props":2290,"children":2291},{},[2292,2301],{"type":44,"tag":175,"props":2293,"children":2294},{},[2295],{"type":44,"tag":76,"props":2296,"children":2298},{"className":2297},[],[2299],{"type":50,"value":2300},"ActiveDirectoryOAuth",{"type":44,"tag":175,"props":2302,"children":2303},{},[2304],{"type":50,"value":2305},"Namespace authenticates as an Entra app (tenant\u002FclientId\u002Fsecret\u002Faudience)",{"type":44,"tag":148,"props":2307,"children":2308},{},[2309,2318],{"type":44,"tag":175,"props":2310,"children":2311},{},[2312],{"type":44,"tag":76,"props":2313,"children":2315},{"className":2314},[],[2316],{"type":50,"value":2317},"ClientCertificate",{"type":44,"tag":175,"props":2319,"children":2320},{},[2321,2323,2329,2330],{"type":50,"value":2322},"Mutual TLS with a ",{"type":44,"tag":76,"props":2324,"children":2326},{"className":2325},[],[2327],{"type":50,"value":2328},"pfx",{"type":50,"value":1796},{"type":44,"tag":76,"props":2331,"children":2333},{"className":2332},[],[2334],{"type":50,"value":2241},{"type":44,"tag":981,"props":2336,"children":2337},{},[2338,2343,2345,2349],{"type":44,"tag":59,"props":2339,"children":2340},{},[2341],{"type":50,"value":2342},"Create the trigger config",{"type":50,"value":2344}," (one PUT). See ",{"type":44,"tag":550,"props":2346,"children":2347},{"href":698},[2348],{"type":50,"value":701},{"type":50,"value":2350}," Step 3 for the canonical body templates for each source × auth combination.",{"type":44,"tag":981,"props":2352,"children":2353},{},[2354,2364,2366,2370],{"type":44,"tag":59,"props":2355,"children":2356},{},[2357,2359],{"type":50,"value":2358},"Create the ",{"type":44,"tag":76,"props":2360,"children":2362},{"className":2361},[],[2363],{"type":50,"value":720},{"type":50,"value":2365}," (only for connector-event triggers). See ",{"type":44,"tag":550,"props":2367,"children":2368},{"href":698},[2369],{"type":50,"value":701},{"type":50,"value":731},{"type":44,"tag":981,"props":2372,"children":2373},{},[2374,2379,2381,2387,2389],{"type":44,"tag":59,"props":2375,"children":2376},{},[2377],{"type":50,"value":2378},"Verify",{"type":50,"value":2380}," the trigger state is ",{"type":44,"tag":76,"props":2382,"children":2384},{"className":2383},[],[2385],{"type":50,"value":2386},"Enabled",{"type":50,"value":2388},":",{"type":44,"tag":1011,"props":2390,"children":2392},{"className":1013,"code":2391,"language":1015,"meta":1016,"style":1016},"az rest --method GET \\\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}?api-version=2026-05-01-preview\" \\\n  --query \"properties.state\" -o tsv\n",[2393],{"type":44,"tag":76,"props":2394,"children":2395},{"__ignoreMap":1016},[2396,2419,2443],{"type":44,"tag":1022,"props":2397,"children":2398},{"class":1024,"line":1025},[2399,2403,2407,2411,2415],{"type":44,"tag":1022,"props":2400,"children":2401},{"style":1029},[2402],{"type":50,"value":1032},{"type":44,"tag":1022,"props":2404,"children":2405},{"style":1035},[2406],{"type":50,"value":1216},{"type":44,"tag":1022,"props":2408,"children":2409},{"style":1035},[2410],{"type":50,"value":1221},{"type":44,"tag":1022,"props":2412,"children":2413},{"style":1035},[2414],{"type":50,"value":1226},{"type":44,"tag":1022,"props":2416,"children":2417},{"style":1229},[2418],{"type":50,"value":1232},{"type":44,"tag":1022,"props":2420,"children":2421},{"class":1024,"line":28},[2422,2426,2430,2435,2439],{"type":44,"tag":1022,"props":2423,"children":2424},{"style":1035},[2425],{"type":50,"value":1240},{"type":44,"tag":1022,"props":2427,"children":2428},{"style":1051},[2429],{"type":50,"value":1054},{"type":44,"tag":1022,"props":2431,"children":2432},{"style":1035},[2433],{"type":50,"value":2434},"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":2436,"children":2437},{"style":1051},[2438],{"type":50,"value":1064},{"type":44,"tag":1022,"props":2440,"children":2441},{"style":1229},[2442],{"type":50,"value":1232},{"type":44,"tag":1022,"props":2444,"children":2445},{"class":1024,"line":1260},[2446,2450,2454,2459,2463,2467],{"type":44,"tag":1022,"props":2447,"children":2448},{"style":1035},[2449],{"type":50,"value":1266},{"type":44,"tag":1022,"props":2451,"children":2452},{"style":1051},[2453],{"type":50,"value":1054},{"type":44,"tag":1022,"props":2455,"children":2456},{"style":1035},[2457],{"type":50,"value":2458},"properties.state",{"type":44,"tag":1022,"props":2460,"children":2461},{"style":1051},[2462],{"type":50,"value":1064},{"type":44,"tag":1022,"props":2464,"children":2465},{"style":1035},[2466],{"type":50,"value":1069},{"type":44,"tag":1022,"props":2468,"children":2469},{"style":1035},[2470],{"type":50,"value":2471}," tsv\n",{"type":44,"tag":966,"props":2473,"children":2474},{},[],{"type":44,"tag":970,"props":2476,"children":2478},{"id":2477},"step-4b-mcp-server-config",[2479],{"type":50,"value":2480},"Step 4B: MCP server config",{"type":44,"tag":53,"props":2482,"children":2483},{},[2484,2485,2489,2490,2494,2495,2499,2500],{"type":50,"value":1707},{"type":44,"tag":59,"props":2486,"children":2487},{},[2488],{"type":50,"value":1712},{"type":50,"value":1161},{"type":44,"tag":550,"props":2491,"children":2492},{"href":803},[2493],{"type":50,"value":806},{"type":50,"value":1719},{"type":44,"tag":59,"props":2496,"children":2497},{},[2498],{"type":50,"value":1735},{"type":50,"value":1161},{"type":44,"tag":550,"props":2501,"children":2502},{"href":1739},[2503],{"type":50,"value":1742},{"type":44,"tag":977,"props":2505,"children":2506},{},[2507,2603,2989,3947],{"type":44,"tag":981,"props":2508,"children":2509},{},[2510,2515,2517,2598,2601],{"type":44,"tag":59,"props":2511,"children":2512},{},[2513],{"type":50,"value":2514},"Pick connector(s) + operation(s).",{"type":50,"value":2516}," Discover them:",{"type":44,"tag":1011,"props":2518,"children":2520},{"className":1013,"code":2519,"language":1015,"meta":1016,"style":1016},"az rest --method GET \\\n  --url \"https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002Fproviders\u002FMicrosoft.Web\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01\" \\\n  --query \"value[?properties.trigger == null].{name:name, summary:properties.summary, description:properties.description}\" -o table\n",[2521],{"type":44,"tag":76,"props":2522,"children":2523},{"__ignoreMap":1016},[2524,2547,2570],{"type":44,"tag":1022,"props":2525,"children":2526},{"class":1024,"line":1025},[2527,2531,2535,2539,2543],{"type":44,"tag":1022,"props":2528,"children":2529},{"style":1029},[2530],{"type":50,"value":1032},{"type":44,"tag":1022,"props":2532,"children":2533},{"style":1035},[2534],{"type":50,"value":1216},{"type":44,"tag":1022,"props":2536,"children":2537},{"style":1035},[2538],{"type":50,"value":1221},{"type":44,"tag":1022,"props":2540,"children":2541},{"style":1035},[2542],{"type":50,"value":1226},{"type":44,"tag":1022,"props":2544,"children":2545},{"style":1229},[2546],{"type":50,"value":1232},{"type":44,"tag":1022,"props":2548,"children":2549},{"class":1024,"line":28},[2550,2554,2558,2562,2566],{"type":44,"tag":1022,"props":2551,"children":2552},{"style":1035},[2553],{"type":50,"value":1240},{"type":44,"tag":1022,"props":2555,"children":2556},{"style":1051},[2557],{"type":50,"value":1054},{"type":44,"tag":1022,"props":2559,"children":2560},{"style":1035},[2561],{"type":50,"value":1860},{"type":44,"tag":1022,"props":2563,"children":2564},{"style":1051},[2565],{"type":50,"value":1064},{"type":44,"tag":1022,"props":2567,"children":2568},{"style":1229},[2569],{"type":50,"value":1232},{"type":44,"tag":1022,"props":2571,"children":2572},{"class":1024,"line":1260},[2573,2577,2581,2586,2590,2594],{"type":44,"tag":1022,"props":2574,"children":2575},{"style":1035},[2576],{"type":50,"value":1266},{"type":44,"tag":1022,"props":2578,"children":2579},{"style":1051},[2580],{"type":50,"value":1054},{"type":44,"tag":1022,"props":2582,"children":2583},{"style":1035},[2584],{"type":50,"value":2585},"value[?properties.trigger == null].{name:name, summary:properties.summary, description:properties.description}",{"type":44,"tag":1022,"props":2587,"children":2588},{"style":1051},[2589],{"type":50,"value":1064},{"type":44,"tag":1022,"props":2591,"children":2592},{"style":1035},[2593],{"type":50,"value":1069},{"type":44,"tag":1022,"props":2595,"children":2596},{"style":1035},[2597],{"type":50,"value":1074},{"type":44,"tag":1898,"props":2599,"children":2600},{},[],{"type":50,"value":2602},"Each MCP \"tool\" maps to one connector operation under one connection.",{"type":44,"tag":981,"props":2604,"children":2605},{},[2606,2611,2614,2616,2701,2704,2706,2712,2713,2719,2720,2726,2727,2733,2735,2740,2742,2829,2832,2837,2839,2938,2941,2946,2948,2953,2955,2961,2962,2968,2970,2976,2978,2982,2984,2988],{"type":44,"tag":59,"props":2607,"children":2608},{},[2609],{"type":50,"value":2610},"For each operation, triage every parameter — including each body sub-property.",{"type":44,"tag":1898,"props":2612,"children":2613},{},[],{"type":50,"value":2615},"First enumerate every parameter from the Swagger:",{"type":44,"tag":1104,"props":2617,"children":2618},{},[2619,2659],{"type":44,"tag":981,"props":2620,"children":2621},{},[2622,2624,2629,2631,2637,2639,2645,2646,2651,2652,2658],{"type":50,"value":2623},"All ",{"type":44,"tag":76,"props":2625,"children":2627},{"className":2626},[],[2628],{"type":50,"value":644},{"type":50,"value":2630}," entries (",{"type":44,"tag":76,"props":2632,"children":2634},{"className":2633},[],[2635],{"type":50,"value":2636},"path",{"type":50,"value":2638}," \u002F ",{"type":44,"tag":76,"props":2640,"children":2642},{"className":2641},[],[2643],{"type":50,"value":2644},"query",{"type":50,"value":2638},{"type":44,"tag":76,"props":2647,"children":2649},{"className":2648},[],[2650],{"type":50,"value":1913},{"type":50,"value":2638},{"type":44,"tag":76,"props":2653,"children":2655},{"className":2654},[],[2656],{"type":50,"value":2657},"header",{"type":50,"value":879},{"type":44,"tag":981,"props":2660,"children":2661},{},[2662,2664,2669,2671,2676,2678,2684,2686,2692,2694,2699],{"type":50,"value":2663},"For each ",{"type":44,"tag":76,"props":2665,"children":2667},{"className":2666},[],[2668],{"type":50,"value":1913},{"type":50,"value":2670}," parameter whose schema is an object (resolve ",{"type":44,"tag":76,"props":2672,"children":2674},{"className":2673},[],[2675],{"type":50,"value":1923},{"type":50,"value":2677},"),\nenumerate its ",{"type":44,"tag":76,"props":2679,"children":2681},{"className":2680},[],[2682],{"type":50,"value":2683},"properties",{"type":50,"value":2685}," and the inner ",{"type":44,"tag":76,"props":2687,"children":2689},{"className":2688},[],[2690],{"type":50,"value":2691},"required",{"type":50,"value":2693}," array. Recurse into\nnested objects and ",{"type":44,"tag":76,"props":2695,"children":2697},{"className":2696},[],[2698],{"type":50,"value":1931},{"type":50,"value":2700}," of arrays.",{"type":44,"tag":1898,"props":2702,"children":2703},{},[],{"type":50,"value":2705},"Then resolve dynamic markers — the four extension kinds\n(",{"type":44,"tag":76,"props":2707,"children":2709},{"className":2708},[],[2710],{"type":50,"value":2711},"x-ms-dynamic-values",{"type":50,"value":1462},{"type":44,"tag":76,"props":2714,"children":2716},{"className":2715},[],[2717],{"type":50,"value":2718},"-list",{"type":50,"value":1462},{"type":44,"tag":76,"props":2721,"children":2723},{"className":2722},[],[2724],{"type":50,"value":2725},"-tree",{"type":50,"value":1462},{"type":44,"tag":76,"props":2728,"children":2730},{"className":2729},[],[2731],{"type":50,"value":2732},"-schema",{"type":50,"value":2734},") ",{"type":44,"tag":59,"props":2736,"children":2737},{},[2738],{"type":50,"value":2739},"all apply",{"type":50,"value":2741}," here,\nexactly like trigger setup:",{"type":44,"tag":1104,"props":2743,"children":2744},{},[2745,2782,2799,2817],{"type":44,"tag":981,"props":2746,"children":2747},{},[2748,2753,2754,2759,2761,2766,2768,2772,2774,2780],{"type":44,"tag":76,"props":2749,"children":2751},{"className":2750},[],[2752],{"type":50,"value":2711},{"type":50,"value":2638},{"type":44,"tag":76,"props":2755,"children":2757},{"className":2756},[],[2758],{"type":50,"value":2718},{"type":50,"value":2760}," → ",{"type":44,"tag":76,"props":2762,"children":2764},{"className":2763},[],[2765],{"type":50,"value":267},{"type":50,"value":2767}," the lookup operation, ",{"type":44,"tag":59,"props":2769,"children":2770},{},[2771],{"type":50,"value":1966},{"type":50,"value":2773}," for user pick, store the ",{"type":44,"tag":76,"props":2775,"children":2777},{"className":2776},[],[2778],{"type":50,"value":2779},"value-path",{"type":50,"value":2781}," value.",{"type":44,"tag":981,"props":2783,"children":2784},{},[2785,2791,2793,2797],{"type":44,"tag":76,"props":2786,"children":2788},{"className":2787},[],[2789],{"type":50,"value":2790},"x-ms-dynamic-tree",{"type":50,"value":2792}," → walk the tree (root → children), ",{"type":44,"tag":59,"props":2794,"children":2795},{},[2796],{"type":50,"value":1966},{"type":50,"value":2798}," at each level, store the final opaque token.",{"type":44,"tag":981,"props":2800,"children":2801},{},[2802,2808,2809,2815],{"type":44,"tag":76,"props":2803,"children":2805},{"className":2804},[],[2806],{"type":50,"value":2807},"x-ms-dynamic-schema",{"type":50,"value":2638},{"type":44,"tag":76,"props":2810,"children":2812},{"className":2811},[],[2813],{"type":50,"value":2814},"-properties",{"type":50,"value":2816}," → resolve schema after parents are picked. Bake the parents so the LLM gets a stable tool shape.",{"type":44,"tag":981,"props":2818,"children":2819},{},[2820,2822,2827],{"type":50,"value":2821},"Cascading params (e.g., channel depends on team): always resolve parents first; pass their ",{"type":44,"tag":76,"props":2823,"children":2825},{"className":2824},[],[2826],{"type":50,"value":668},{"type":50,"value":2828}," (not display name) to child lookups.",{"type":44,"tag":1898,"props":2830,"children":2831},{},[],{"type":44,"tag":59,"props":2833,"children":2834},{},[2835],{"type":50,"value":2836},"STOP and ask the user, for every parameter (and every required body\nsub-property)",{"type":50,"value":2838},", whether it should be:",{"type":44,"tag":140,"props":2840,"children":2841},{},[2842,2858],{"type":44,"tag":144,"props":2843,"children":2844},{},[2845],{"type":44,"tag":148,"props":2846,"children":2847},{},[2848,2853],{"type":44,"tag":152,"props":2849,"children":2850},{},[2851],{"type":50,"value":2852},"Choice",{"type":44,"tag":152,"props":2854,"children":2855},{},[2856],{"type":50,"value":2857},"What it means",{"type":44,"tag":168,"props":2859,"children":2860},{},[2861,2888,2915],{"type":44,"tag":148,"props":2862,"children":2863},{},[2864,2875],{"type":44,"tag":175,"props":2865,"children":2866},{},[2867],{"type":44,"tag":59,"props":2868,"children":2869},{},[2870],{"type":44,"tag":76,"props":2871,"children":2873},{"className":2872},[],[2874],{"type":50,"value":832},{"type":44,"tag":175,"props":2876,"children":2877},{},[2878,2880,2886],{"type":50,"value":2879},"Bake a fixed value now (",{"type":44,"tag":76,"props":2881,"children":2883},{"className":2882},[],[2884],{"type":50,"value":2885},"{name, value}",{"type":50,"value":2887},"). LLM cannot change it. Use this for enumerable connector IDs (team\u002Fchannel\u002Fsite\u002Flist\u002Ffolder\u002Ffile\u002Fdb\u002Ftable) and for org-default fields.",{"type":44,"tag":148,"props":2889,"children":2890},{},[2891,2902],{"type":44,"tag":175,"props":2892,"children":2893},{},[2894],{"type":44,"tag":59,"props":2895,"children":2896},{},[2897],{"type":44,"tag":76,"props":2898,"children":2900},{"className":2899},[],[2901],{"type":50,"value":840},{"type":44,"tag":175,"props":2903,"children":2904},{},[2905,2907,2913],{"type":50,"value":2906},"LLM supplies on each call (",{"type":44,"tag":76,"props":2908,"children":2910},{"className":2909},[],[2911],{"type":50,"value":2912},"{name, schema}",{"type":50,"value":2914},"). Use this for free-form content (subject\u002Fbody\u002Frecipient) and for required fields with no fixed value.",{"type":44,"tag":148,"props":2916,"children":2917},{},[2918,2926],{"type":44,"tag":175,"props":2919,"children":2920},{},[2921],{"type":44,"tag":59,"props":2922,"children":2923},{},[2924],{"type":50,"value":2925},"skip",{"type":44,"tag":175,"props":2927,"children":2928},{},[2929,2931,2936],{"type":50,"value":2930},"Only valid if the field is optional (not in the Swagger ",{"type":44,"tag":76,"props":2932,"children":2934},{"className":2933},[],[2935],{"type":50,"value":2691},{"type":50,"value":2937}," array).",{"type":44,"tag":1898,"props":2939,"children":2940},{},[],{"type":44,"tag":59,"props":2942,"children":2943},{},[2944],{"type":50,"value":2945},"Required fields cannot be skipped.",{"type":50,"value":2947}," Body sub-properties are nested under\none ",{"type":44,"tag":76,"props":2949,"children":2951},{"className":2950},[],[2952],{"type":50,"value":840},{"type":50,"value":2954}," whose ",{"type":44,"tag":76,"props":2956,"children":2958},{"className":2957},[],[2959],{"type":50,"value":2960},"schema.type",{"type":50,"value":2015},{"type":44,"tag":76,"props":2963,"children":2965},{"className":2964},[],[2966],{"type":50,"value":2967},"\"object\"",{"type":50,"value":2969}," and whose\n",{"type":44,"tag":76,"props":2971,"children":2973},{"className":2972},[],[2974],{"type":50,"value":2975},"schema.properties",{"type":50,"value":2977}," mirrors the body. See\n",{"type":44,"tag":550,"props":2979,"children":2980},{"href":803},[2981],{"type":50,"value":806},{"type":50,"value":2983}," §\"Per-parameter\ntriage workflow\" and ",{"type":44,"tag":550,"props":2985,"children":2986},{"href":1739},[2987],{"type":50,"value":1742},{"type":50,"value":557},{"type":44,"tag":981,"props":2990,"children":2991},{},[2992,2997,2999,3909,3912,3914,3920],{"type":44,"tag":59,"props":2993,"children":2994},{},[2995],{"type":50,"value":2996},"PUT the MCP server config.",{"type":50,"value":2998}," Body shape:",{"type":44,"tag":1011,"props":3000,"children":3004},{"className":3001,"code":3002,"language":3003,"meta":1016,"style":1016},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"properties\": {\n    \"description\": \"...\",\n    \"connectors\": [\n      {\n        \"name\": \"office365\",\n        \"displayName\": \"Office 365\",\n        \"connectionName\": \"o365-conn\",\n        \"operations\": [\n          {\n            \"name\": \"Send_Email_(V2)\",\n            \"displayName\": \"Send Email\",\n            \"description\": \"Send an email via Office 365.\",\n            \"userParameters\": [\n              { \"name\": \"from\", \"value\": \"alerts@contoso.com\" }\n            ],\n            \"agentParameters\": [\n              { \"name\": \"emailMessage\", \"schema\": { \"type\": \"object\", \"required\": true, \"properties\": { \"To\": { \"type\": \"string\", \"required\": true }, \"Subject\": { \"type\": \"string\" }, \"Body\": { \"type\": \"string\" } } } }\n            ]\n          }\n        ]\n      }\n    ]\n  }\n}\n","json",[3005],{"type":44,"tag":76,"props":3006,"children":3007},{"__ignoreMap":1016},[3008,3016,3042,3081,3105,3113,3151,3188,3226,3251,3260,3299,3336,3373,3398,3476,3485,3510,3847,3856,3864,3873,3882,3891,3900],{"type":44,"tag":1022,"props":3009,"children":3010},{"class":1024,"line":1025},[3011],{"type":44,"tag":1022,"props":3012,"children":3013},{"style":1051},[3014],{"type":50,"value":3015},"{\n",{"type":44,"tag":1022,"props":3017,"children":3018},{"class":1024,"line":28},[3019,3024,3029,3033,3037],{"type":44,"tag":1022,"props":3020,"children":3021},{"style":1051},[3022],{"type":50,"value":3023},"  \"",{"type":44,"tag":1022,"props":3025,"children":3027},{"style":3026},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[3028],{"type":50,"value":2683},{"type":44,"tag":1022,"props":3030,"children":3031},{"style":1051},[3032],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3034,"children":3035},{"style":1051},[3036],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3038,"children":3039},{"style":1051},[3040],{"type":50,"value":3041}," {\n",{"type":44,"tag":1022,"props":3043,"children":3044},{"class":1024,"line":1260},[3045,3050,3055,3059,3063,3067,3072,3076],{"type":44,"tag":1022,"props":3046,"children":3047},{"style":1051},[3048],{"type":50,"value":3049},"    \"",{"type":44,"tag":1022,"props":3051,"children":3052},{"style":1029},[3053],{"type":50,"value":3054},"description",{"type":44,"tag":1022,"props":3056,"children":3057},{"style":1051},[3058],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3060,"children":3061},{"style":1051},[3062],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3064,"children":3065},{"style":1051},[3066],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3068,"children":3069},{"style":1035},[3070],{"type":50,"value":3071},"...",{"type":44,"tag":1022,"props":3073,"children":3074},{"style":1051},[3075],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3077,"children":3078},{"style":1051},[3079],{"type":50,"value":3080},",\n",{"type":44,"tag":1022,"props":3082,"children":3083},{"class":1024,"line":1348},[3084,3088,3092,3096,3100],{"type":44,"tag":1022,"props":3085,"children":3086},{"style":1051},[3087],{"type":50,"value":3049},{"type":44,"tag":1022,"props":3089,"children":3090},{"style":1029},[3091],{"type":50,"value":31},{"type":44,"tag":1022,"props":3093,"children":3094},{"style":1051},[3095],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3097,"children":3098},{"style":1051},[3099],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3101,"children":3102},{"style":1051},[3103],{"type":50,"value":3104}," [\n",{"type":44,"tag":1022,"props":3106,"children":3107},{"class":1024,"line":1357},[3108],{"type":44,"tag":1022,"props":3109,"children":3110},{"style":1051},[3111],{"type":50,"value":3112},"      {\n",{"type":44,"tag":1022,"props":3114,"children":3115},{"class":1024,"line":1366},[3116,3121,3126,3130,3134,3138,3143,3147],{"type":44,"tag":1022,"props":3117,"children":3118},{"style":1051},[3119],{"type":50,"value":3120},"        \"",{"type":44,"tag":1022,"props":3122,"children":3124},{"style":3123},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[3125],{"type":50,"value":652},{"type":44,"tag":1022,"props":3127,"children":3128},{"style":1051},[3129],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3131,"children":3132},{"style":1051},[3133],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3135,"children":3136},{"style":1051},[3137],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3139,"children":3140},{"style":1035},[3141],{"type":50,"value":3142},"office365",{"type":44,"tag":1022,"props":3144,"children":3145},{"style":1051},[3146],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3148,"children":3149},{"style":1051},[3150],{"type":50,"value":3080},{"type":44,"tag":1022,"props":3152,"children":3153},{"class":1024,"line":1375},[3154,3158,3163,3167,3171,3175,3180,3184],{"type":44,"tag":1022,"props":3155,"children":3156},{"style":1051},[3157],{"type":50,"value":3120},{"type":44,"tag":1022,"props":3159,"children":3160},{"style":3123},[3161],{"type":50,"value":3162},"displayName",{"type":44,"tag":1022,"props":3164,"children":3165},{"style":1051},[3166],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3168,"children":3169},{"style":1051},[3170],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3172,"children":3173},{"style":1051},[3174],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3176,"children":3177},{"style":1035},[3178],{"type":50,"value":3179},"Office 365",{"type":44,"tag":1022,"props":3181,"children":3182},{"style":1051},[3183],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3185,"children":3186},{"style":1051},[3187],{"type":50,"value":3080},{"type":44,"tag":1022,"props":3189,"children":3191},{"class":1024,"line":3190},8,[3192,3196,3201,3205,3209,3213,3218,3222],{"type":44,"tag":1022,"props":3193,"children":3194},{"style":1051},[3195],{"type":50,"value":3120},{"type":44,"tag":1022,"props":3197,"children":3198},{"style":3123},[3199],{"type":50,"value":3200},"connectionName",{"type":44,"tag":1022,"props":3202,"children":3203},{"style":1051},[3204],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3206,"children":3207},{"style":1051},[3208],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3210,"children":3211},{"style":1051},[3212],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3214,"children":3215},{"style":1035},[3216],{"type":50,"value":3217},"o365-conn",{"type":44,"tag":1022,"props":3219,"children":3220},{"style":1051},[3221],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3223,"children":3224},{"style":1051},[3225],{"type":50,"value":3080},{"type":44,"tag":1022,"props":3227,"children":3229},{"class":1024,"line":3228},9,[3230,3234,3239,3243,3247],{"type":44,"tag":1022,"props":3231,"children":3232},{"style":1051},[3233],{"type":50,"value":3120},{"type":44,"tag":1022,"props":3235,"children":3236},{"style":3123},[3237],{"type":50,"value":3238},"operations",{"type":44,"tag":1022,"props":3240,"children":3241},{"style":1051},[3242],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3244,"children":3245},{"style":1051},[3246],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3248,"children":3249},{"style":1051},[3250],{"type":50,"value":3104},{"type":44,"tag":1022,"props":3252,"children":3254},{"class":1024,"line":3253},10,[3255],{"type":44,"tag":1022,"props":3256,"children":3257},{"style":1051},[3258],{"type":50,"value":3259},"          {\n",{"type":44,"tag":1022,"props":3261,"children":3263},{"class":1024,"line":3262},11,[3264,3269,3274,3278,3282,3286,3291,3295],{"type":44,"tag":1022,"props":3265,"children":3266},{"style":1051},[3267],{"type":50,"value":3268},"            \"",{"type":44,"tag":1022,"props":3270,"children":3272},{"style":3271},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[3273],{"type":50,"value":652},{"type":44,"tag":1022,"props":3275,"children":3276},{"style":1051},[3277],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3279,"children":3280},{"style":1051},[3281],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3283,"children":3284},{"style":1051},[3285],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3287,"children":3288},{"style":1035},[3289],{"type":50,"value":3290},"Send_Email_(V2)",{"type":44,"tag":1022,"props":3292,"children":3293},{"style":1051},[3294],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3296,"children":3297},{"style":1051},[3298],{"type":50,"value":3080},{"type":44,"tag":1022,"props":3300,"children":3302},{"class":1024,"line":3301},12,[3303,3307,3311,3315,3319,3323,3328,3332],{"type":44,"tag":1022,"props":3304,"children":3305},{"style":1051},[3306],{"type":50,"value":3268},{"type":44,"tag":1022,"props":3308,"children":3309},{"style":3271},[3310],{"type":50,"value":3162},{"type":44,"tag":1022,"props":3312,"children":3313},{"style":1051},[3314],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3316,"children":3317},{"style":1051},[3318],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3320,"children":3321},{"style":1051},[3322],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3324,"children":3325},{"style":1035},[3326],{"type":50,"value":3327},"Send Email",{"type":44,"tag":1022,"props":3329,"children":3330},{"style":1051},[3331],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3333,"children":3334},{"style":1051},[3335],{"type":50,"value":3080},{"type":44,"tag":1022,"props":3337,"children":3339},{"class":1024,"line":3338},13,[3340,3344,3348,3352,3356,3360,3365,3369],{"type":44,"tag":1022,"props":3341,"children":3342},{"style":1051},[3343],{"type":50,"value":3268},{"type":44,"tag":1022,"props":3345,"children":3346},{"style":3271},[3347],{"type":50,"value":3054},{"type":44,"tag":1022,"props":3349,"children":3350},{"style":1051},[3351],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3353,"children":3354},{"style":1051},[3355],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3357,"children":3358},{"style":1051},[3359],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3361,"children":3362},{"style":1035},[3363],{"type":50,"value":3364},"Send an email via Office 365.",{"type":44,"tag":1022,"props":3366,"children":3367},{"style":1051},[3368],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3370,"children":3371},{"style":1051},[3372],{"type":50,"value":3080},{"type":44,"tag":1022,"props":3374,"children":3376},{"class":1024,"line":3375},14,[3377,3381,3386,3390,3394],{"type":44,"tag":1022,"props":3378,"children":3379},{"style":1051},[3380],{"type":50,"value":3268},{"type":44,"tag":1022,"props":3382,"children":3383},{"style":3271},[3384],{"type":50,"value":3385},"userParameters",{"type":44,"tag":1022,"props":3387,"children":3388},{"style":1051},[3389],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3391,"children":3392},{"style":1051},[3393],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3395,"children":3396},{"style":1051},[3397],{"type":50,"value":3104},{"type":44,"tag":1022,"props":3399,"children":3401},{"class":1024,"line":3400},15,[3402,3407,3411,3416,3420,3424,3428,3433,3437,3442,3446,3450,3454,3458,3462,3467,3471],{"type":44,"tag":1022,"props":3403,"children":3404},{"style":1051},[3405],{"type":50,"value":3406},"              {",{"type":44,"tag":1022,"props":3408,"children":3409},{"style":1051},[3410],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3412,"children":3414},{"style":3413},"--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53",[3415],{"type":50,"value":652},{"type":44,"tag":1022,"props":3417,"children":3418},{"style":1051},[3419],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3421,"children":3422},{"style":1051},[3423],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3425,"children":3426},{"style":1051},[3427],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3429,"children":3430},{"style":1035},[3431],{"type":50,"value":3432},"from",{"type":44,"tag":1022,"props":3434,"children":3435},{"style":1051},[3436],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3438,"children":3439},{"style":1051},[3440],{"type":50,"value":3441},",",{"type":44,"tag":1022,"props":3443,"children":3444},{"style":1051},[3445],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3447,"children":3448},{"style":3413},[3449],{"type":50,"value":668},{"type":44,"tag":1022,"props":3451,"children":3452},{"style":1051},[3453],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3455,"children":3456},{"style":1051},[3457],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3459,"children":3460},{"style":1051},[3461],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3463,"children":3464},{"style":1035},[3465],{"type":50,"value":3466},"alerts@contoso.com",{"type":44,"tag":1022,"props":3468,"children":3469},{"style":1051},[3470],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3472,"children":3473},{"style":1051},[3474],{"type":50,"value":3475}," }\n",{"type":44,"tag":1022,"props":3477,"children":3479},{"class":1024,"line":3478},16,[3480],{"type":44,"tag":1022,"props":3481,"children":3482},{"style":1051},[3483],{"type":50,"value":3484},"            ],\n",{"type":44,"tag":1022,"props":3486,"children":3488},{"class":1024,"line":3487},17,[3489,3493,3498,3502,3506],{"type":44,"tag":1022,"props":3490,"children":3491},{"style":1051},[3492],{"type":50,"value":3268},{"type":44,"tag":1022,"props":3494,"children":3495},{"style":3271},[3496],{"type":50,"value":3497},"agentParameters",{"type":44,"tag":1022,"props":3499,"children":3500},{"style":1051},[3501],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3503,"children":3504},{"style":1051},[3505],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3507,"children":3508},{"style":1051},[3509],{"type":50,"value":3104},{"type":44,"tag":1022,"props":3511,"children":3513},{"class":1024,"line":3512},18,[3514,3518,3522,3526,3530,3534,3538,3542,3546,3550,3554,3559,3563,3567,3572,3576,3581,3585,3589,3593,3598,3602,3606,3610,3614,3618,3622,3627,3631,3635,3639,3643,3647,3651,3657,3661,3665,3669,3673,3677,3681,3685,3689,3694,3698,3702,3706,3710,3714,3718,3723,3728,3732,3737,3741,3745,3749,3753,3757,3761,3765,3769,3773,3777,3781,3785,3790,3794,3798,3802,3806,3810,3814,3818,3822,3826,3830,3835,3839,3843],{"type":44,"tag":1022,"props":3515,"children":3516},{"style":1051},[3517],{"type":50,"value":3406},{"type":44,"tag":1022,"props":3519,"children":3520},{"style":1051},[3521],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3523,"children":3524},{"style":3413},[3525],{"type":50,"value":652},{"type":44,"tag":1022,"props":3527,"children":3528},{"style":1051},[3529],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3531,"children":3532},{"style":1051},[3533],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3535,"children":3536},{"style":1051},[3537],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3539,"children":3540},{"style":1035},[3541],{"type":50,"value":877},{"type":44,"tag":1022,"props":3543,"children":3544},{"style":1051},[3545],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3547,"children":3548},{"style":1051},[3549],{"type":50,"value":3441},{"type":44,"tag":1022,"props":3551,"children":3552},{"style":1051},[3553],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3555,"children":3556},{"style":3413},[3557],{"type":50,"value":3558},"schema",{"type":44,"tag":1022,"props":3560,"children":3561},{"style":1051},[3562],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3564,"children":3565},{"style":1051},[3566],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3568,"children":3569},{"style":1051},[3570],{"type":50,"value":3571}," {",{"type":44,"tag":1022,"props":3573,"children":3574},{"style":1051},[3575],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3577,"children":3579},{"style":3578},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[3580],{"type":50,"value":579},{"type":44,"tag":1022,"props":3582,"children":3583},{"style":1051},[3584],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3586,"children":3587},{"style":1051},[3588],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3590,"children":3591},{"style":1051},[3592],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3594,"children":3595},{"style":1035},[3596],{"type":50,"value":3597},"object",{"type":44,"tag":1022,"props":3599,"children":3600},{"style":1051},[3601],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3603,"children":3604},{"style":1051},[3605],{"type":50,"value":3441},{"type":44,"tag":1022,"props":3607,"children":3608},{"style":1051},[3609],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3611,"children":3612},{"style":3578},[3613],{"type":50,"value":2691},{"type":44,"tag":1022,"props":3615,"children":3616},{"style":1051},[3617],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3619,"children":3620},{"style":1051},[3621],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3623,"children":3624},{"style":1051},[3625],{"type":50,"value":3626}," true,",{"type":44,"tag":1022,"props":3628,"children":3629},{"style":1051},[3630],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3632,"children":3633},{"style":3578},[3634],{"type":50,"value":2683},{"type":44,"tag":1022,"props":3636,"children":3637},{"style":1051},[3638],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3640,"children":3641},{"style":1051},[3642],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3644,"children":3645},{"style":1051},[3646],{"type":50,"value":3571},{"type":44,"tag":1022,"props":3648,"children":3649},{"style":1051},[3650],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3652,"children":3654},{"style":3653},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[3655],{"type":50,"value":3656},"To",{"type":44,"tag":1022,"props":3658,"children":3659},{"style":1051},[3660],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3662,"children":3663},{"style":1051},[3664],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3666,"children":3667},{"style":1051},[3668],{"type":50,"value":3571},{"type":44,"tag":1022,"props":3670,"children":3671},{"style":1051},[3672],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3674,"children":3675},{"style":3026},[3676],{"type":50,"value":579},{"type":44,"tag":1022,"props":3678,"children":3679},{"style":1051},[3680],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3682,"children":3683},{"style":1051},[3684],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3686,"children":3687},{"style":1051},[3688],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3690,"children":3691},{"style":1035},[3692],{"type":50,"value":3693},"string",{"type":44,"tag":1022,"props":3695,"children":3696},{"style":1051},[3697],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3699,"children":3700},{"style":1051},[3701],{"type":50,"value":3441},{"type":44,"tag":1022,"props":3703,"children":3704},{"style":1051},[3705],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3707,"children":3708},{"style":3026},[3709],{"type":50,"value":2691},{"type":44,"tag":1022,"props":3711,"children":3712},{"style":1051},[3713],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3715,"children":3716},{"style":1051},[3717],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3719,"children":3720},{"style":1051},[3721],{"type":50,"value":3722}," true",{"type":44,"tag":1022,"props":3724,"children":3725},{"style":1051},[3726],{"type":50,"value":3727}," },",{"type":44,"tag":1022,"props":3729,"children":3730},{"style":1051},[3731],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3733,"children":3734},{"style":3653},[3735],{"type":50,"value":3736},"Subject",{"type":44,"tag":1022,"props":3738,"children":3739},{"style":1051},[3740],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3742,"children":3743},{"style":1051},[3744],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3746,"children":3747},{"style":1051},[3748],{"type":50,"value":3571},{"type":44,"tag":1022,"props":3750,"children":3751},{"style":1051},[3752],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3754,"children":3755},{"style":3026},[3756],{"type":50,"value":579},{"type":44,"tag":1022,"props":3758,"children":3759},{"style":1051},[3760],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3762,"children":3763},{"style":1051},[3764],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3766,"children":3767},{"style":1051},[3768],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3770,"children":3771},{"style":1035},[3772],{"type":50,"value":3693},{"type":44,"tag":1022,"props":3774,"children":3775},{"style":1051},[3776],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3778,"children":3779},{"style":1051},[3780],{"type":50,"value":3727},{"type":44,"tag":1022,"props":3782,"children":3783},{"style":1051},[3784],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3786,"children":3787},{"style":3653},[3788],{"type":50,"value":3789},"Body",{"type":44,"tag":1022,"props":3791,"children":3792},{"style":1051},[3793],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3795,"children":3796},{"style":1051},[3797],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3799,"children":3800},{"style":1051},[3801],{"type":50,"value":3571},{"type":44,"tag":1022,"props":3803,"children":3804},{"style":1051},[3805],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3807,"children":3808},{"style":3026},[3809],{"type":50,"value":579},{"type":44,"tag":1022,"props":3811,"children":3812},{"style":1051},[3813],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3815,"children":3816},{"style":1051},[3817],{"type":50,"value":2388},{"type":44,"tag":1022,"props":3819,"children":3820},{"style":1051},[3821],{"type":50,"value":1054},{"type":44,"tag":1022,"props":3823,"children":3824},{"style":1035},[3825],{"type":50,"value":3693},{"type":44,"tag":1022,"props":3827,"children":3828},{"style":1051},[3829],{"type":50,"value":1064},{"type":44,"tag":1022,"props":3831,"children":3832},{"style":1051},[3833],{"type":50,"value":3834}," }",{"type":44,"tag":1022,"props":3836,"children":3837},{"style":1051},[3838],{"type":50,"value":3834},{"type":44,"tag":1022,"props":3840,"children":3841},{"style":1051},[3842],{"type":50,"value":3834},{"type":44,"tag":1022,"props":3844,"children":3845},{"style":1051},[3846],{"type":50,"value":3475},{"type":44,"tag":1022,"props":3848,"children":3850},{"class":1024,"line":3849},19,[3851],{"type":44,"tag":1022,"props":3852,"children":3853},{"style":1051},[3854],{"type":50,"value":3855},"            ]\n",{"type":44,"tag":1022,"props":3857,"children":3858},{"class":1024,"line":24},[3859],{"type":44,"tag":1022,"props":3860,"children":3861},{"style":1051},[3862],{"type":50,"value":3863},"          }\n",{"type":44,"tag":1022,"props":3865,"children":3867},{"class":1024,"line":3866},21,[3868],{"type":44,"tag":1022,"props":3869,"children":3870},{"style":1051},[3871],{"type":50,"value":3872},"        ]\n",{"type":44,"tag":1022,"props":3874,"children":3876},{"class":1024,"line":3875},22,[3877],{"type":44,"tag":1022,"props":3878,"children":3879},{"style":1051},[3880],{"type":50,"value":3881},"      }\n",{"type":44,"tag":1022,"props":3883,"children":3885},{"class":1024,"line":3884},23,[3886],{"type":44,"tag":1022,"props":3887,"children":3888},{"style":1051},[3889],{"type":50,"value":3890},"    ]\n",{"type":44,"tag":1022,"props":3892,"children":3894},{"class":1024,"line":3893},24,[3895],{"type":44,"tag":1022,"props":3896,"children":3897},{"style":1051},[3898],{"type":50,"value":3899},"  }\n",{"type":44,"tag":1022,"props":3901,"children":3903},{"class":1024,"line":3902},25,[3904],{"type":44,"tag":1022,"props":3905,"children":3906},{"style":1051},[3907],{"type":50,"value":3908},"}\n",{"type":44,"tag":1898,"props":3910,"children":3911},{},[],{"type":50,"value":3913},"PUT to: ",{"type":44,"tag":76,"props":3915,"children":3917},{"className":3916},[],[3918],{"type":50,"value":3919},"...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs\u002F{name}?api-version=2026-05-01-preview",{"type":44,"tag":67,"props":3921,"children":3922},{},[3923],{"type":44,"tag":53,"props":3924,"children":3925},{},[3926,3937,3939,3945],{"type":44,"tag":59,"props":3927,"children":3928},{},[3929,3931],{"type":50,"value":3930},"Always serialize with ",{"type":44,"tag":76,"props":3932,"children":3934},{"className":3933},[],[3935],{"type":50,"value":3936},"ConvertTo-Json -Depth 20",{"type":50,"value":3938}," (or higher). The\ndefault depth (2) silently flattens nested body schemas to the literal\nstring ",{"type":44,"tag":76,"props":3940,"children":3942},{"className":3941},[],[3943],{"type":50,"value":3944},"\"System.Collections.Hashtable\"",{"type":50,"value":3946},". GET the config after the PUT and\nverify the nested properties are real objects.",{"type":44,"tag":981,"props":3948,"children":3949},{},[3950,3955,3957,3963,3965,3969],{"type":44,"tag":59,"props":3951,"children":3952},{},[3953],{"type":50,"value":3954},"GET the config",{"type":50,"value":3956}," and return ",{"type":44,"tag":76,"props":3958,"children":3960},{"className":3959},[],[3961],{"type":50,"value":3962},"properties.mcpEndpointUrl",{"type":50,"value":3964}," — that's the URL the MCP\nclient points at. See ",{"type":44,"tag":550,"props":3966,"children":3967},{"href":803},[3968],{"type":50,"value":806},{"type":50,"value":3970}," for the auth-mode + access-policy details.",{"type":44,"tag":966,"props":3972,"children":3973},{},[],{"type":44,"tag":970,"props":3975,"children":3977},{"id":3976},"step-4c-direct-api-call-via-dynamicinvoke",[3978,3980],{"type":50,"value":3979},"Step 4C: Direct API call via ",{"type":44,"tag":76,"props":3981,"children":3983},{"className":3982},[],[3984],{"type":50,"value":267},{"type":44,"tag":53,"props":3986,"children":3987},{},[3988,3989,3993,3994,4000,4001,4005,4006],{"type":50,"value":1707},{"type":44,"tag":59,"props":3990,"children":3991},{},[3992],{"type":50,"value":1712},{"type":50,"value":1161},{"type":44,"tag":550,"props":3995,"children":3997},{"href":3996},"references\u002Fdirect-api.md",[3998],{"type":50,"value":3999},"direct-api.md",{"type":50,"value":1719},{"type":44,"tag":59,"props":4002,"children":4003},{},[4004],{"type":50,"value":1735},{"type":50,"value":1161},{"type":44,"tag":550,"props":4007,"children":4008},{"href":1739},[4009],{"type":50,"value":1742},{"type":44,"tag":977,"props":4011,"children":4012},{},[4013,4026,4047],{"type":44,"tag":981,"props":4014,"children":4015},{},[4016,4018,4024],{"type":50,"value":4017},"Get the connector Swagger (",{"type":44,"tag":76,"props":4019,"children":4021},{"className":4020},[],[4022],{"type":50,"value":4023},"managedApis\u002F{connector}?export=true",{"type":50,"value":4025},") → operationId → path table",{"type":44,"tag":981,"props":4027,"children":4028},{},[4029,4031,4036,4038,4042,4043],{"type":50,"value":4030},"Resolve any ",{"type":44,"tag":76,"props":4032,"children":4034},{"className":4033},[],[4035],{"type":50,"value":365},{"type":50,"value":4037}," parameters with ",{"type":44,"tag":550,"props":4039,"children":4040},{"href":1739},[4041],{"type":50,"value":1742},{"type":50,"value":443},{"type":44,"tag":59,"props":4044,"children":4045},{},[4046],{"type":50,"value":1956},{"type":44,"tag":981,"props":4048,"children":4049},{},[4050,4052,4057,4059,4065,4067,4072,4074,4080,4081,4086,4088,4094],{"type":50,"value":4051},"POST to ",{"type":44,"tag":76,"props":4053,"children":4055},{"className":4054},[],[4056],{"type":50,"value":267},{"type":50,"value":4058}," with the resolved ",{"type":44,"tag":76,"props":4060,"children":4062},{"className":4061},[],[4063],{"type":50,"value":4064},"method",{"type":50,"value":4066}," + ",{"type":44,"tag":76,"props":4068,"children":4070},{"className":4069},[],[4071],{"type":50,"value":2636},{"type":50,"value":4073}," (+ optional ",{"type":44,"tag":76,"props":4075,"children":4077},{"className":4076},[],[4078],{"type":50,"value":4079},"queries",{"type":50,"value":1462},{"type":44,"tag":76,"props":4082,"children":4084},{"className":4083},[],[4085],{"type":50,"value":1913},{"type":50,"value":4087},", non-",{"type":44,"tag":76,"props":4089,"children":4091},{"className":4090},[],[4092],{"type":50,"value":4093},"Content-*",{"type":50,"value":4095}," headers).",{"type":44,"tag":966,"props":4097,"children":4098},{},[],{"type":44,"tag":970,"props":4100,"children":4102},{"id":4101},"final-verification-checklist",[4103],{"type":50,"value":4104},"Final verification checklist",{"type":44,"tag":53,"props":4106,"children":4107},{},[4108],{"type":44,"tag":59,"props":4109,"children":4110},{},[4111],{"type":50,"value":4112},"For trigger configs (path A):",{"type":44,"tag":1104,"props":4114,"children":4115},{},[4116,4128,4146,4162],{"type":44,"tag":981,"props":4117,"children":4118},{},[4119,4121,4126],{"type":50,"value":4120},"✅ Namespace exists; for ",{"type":44,"tag":76,"props":4122,"children":4124},{"className":4123},[],[4125],{"type":50,"value":412},{"type":50,"value":4127}," callback auth, namespace has the requested identity",{"type":44,"tag":981,"props":4129,"children":4130},{},[4131,4133,4138,4139,4144],{"type":50,"value":4132},"✅ For connector-event triggers: connection ",{"type":44,"tag":76,"props":4134,"children":4136},{"className":4135},[],[4137],{"type":50,"value":1566},{"type":50,"value":1462},{"type":44,"tag":76,"props":4140,"children":4142},{"className":4141},[],[4143],{"type":50,"value":720},{"type":50,"value":4145}," exists on the connection",{"type":44,"tag":981,"props":4147,"children":4148},{},[4149,4151,4156,4157],{"type":50,"value":4150},"✅ Trigger ",{"type":44,"tag":76,"props":4152,"children":4154},{"className":4153},[],[4155],{"type":50,"value":2458},{"type":50,"value":2015},{"type":44,"tag":76,"props":4158,"children":4160},{"className":4159},[],[4161],{"type":50,"value":2386},{"type":44,"tag":981,"props":4163,"children":4164},{},[4165],{"type":50,"value":4166},"✅ User-provided callback URL is reachable + accepts the chosen auth",{"type":44,"tag":53,"props":4168,"children":4169},{},[4170],{"type":44,"tag":59,"props":4171,"children":4172},{},[4173],{"type":50,"value":4174},"For MCP server configs (path B):",{"type":44,"tag":1104,"props":4176,"children":4177},{},[4178,4188,4200,4227],{"type":44,"tag":981,"props":4179,"children":4180},{},[4181,4183],{"type":50,"value":4182},"✅ All referenced connections are ",{"type":44,"tag":76,"props":4184,"children":4186},{"className":4185},[],[4187],{"type":50,"value":1566},{"type":44,"tag":981,"props":4189,"children":4190},{},[4191,4193,4198],{"type":50,"value":4192},"✅ ",{"type":44,"tag":76,"props":4194,"children":4196},{"className":4195},[],[4197],{"type":50,"value":3962},{"type":50,"value":4199}," is populated in the GET response",{"type":44,"tag":981,"props":4201,"children":4202},{},[4203,4205,4211,4213,4219,4221,4225],{"type":50,"value":4204},"✅ For Hosted MCP servers with ",{"type":44,"tag":76,"props":4206,"children":4208},{"className":4207},[],[4209],{"type":50,"value":4210},"AuthenticationMode != NotSpecified",{"type":50,"value":4212},": ",{"type":44,"tag":76,"props":4214,"children":4216},{"className":4215},[],[4217],{"type":50,"value":4218},"resourceAuth",{"type":50,"value":4220}," is set (see ",{"type":44,"tag":550,"props":4222,"children":4223},{"href":803},[4224],{"type":50,"value":806},{"type":50,"value":4226},")",{"type":44,"tag":981,"props":4228,"children":4229},{},[4230],{"type":50,"value":4231},"✅ Access policies on the MCP server config grant the consuming clients access",{"type":44,"tag":53,"props":4233,"children":4234},{},[4235],{"type":44,"tag":59,"props":4236,"children":4237},{},[4238],{"type":50,"value":4239},"For direct API (path C):",{"type":44,"tag":1104,"props":4241,"children":4242},{},[4243,4253],{"type":44,"tag":981,"props":4244,"children":4245},{},[4246,4248],{"type":50,"value":4247},"✅ Connection ",{"type":44,"tag":76,"props":4249,"children":4251},{"className":4250},[],[4252],{"type":50,"value":1566},{"type":44,"tag":981,"props":4254,"children":4255},{},[4256,4257,4262,4264,4270],{"type":50,"value":4192},{"type":44,"tag":76,"props":4258,"children":4260},{"className":4259},[],[4261],{"type":50,"value":267},{"type":50,"value":4263}," returns ",{"type":44,"tag":76,"props":4265,"children":4267},{"className":4266},[],[4268],{"type":50,"value":4269},"response.statusCode",{"type":50,"value":4271}," in 2xx",{"type":44,"tag":133,"props":4273,"children":4275},{"id":4274},"quick-reference",[4276],{"type":50,"value":4277},"Quick reference",{"type":44,"tag":1011,"props":4279,"children":4281},{"className":1013,"code":4280,"language":1015,"meta":1016,"style":1016},"# ARM base:  https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\n# API ver:   api-version=2026-05-01-preview\n\n# Namespace\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview\"\n\n# Connections\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002Fconnections?api-version=2026-05-01-preview\"\n\n# List trigger operations + summaries\naz rest --method GET --url \"...\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01\"\n\n# Get Swagger (paths, parameters, x-ms-dynamic-*)\naz rest --method GET --url \"...\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\" --url-parameters \"api-version=2016-06-01\" \"export=true\"\n\n# Dynamic invoke\naz rest --method POST --url \"...\u002FconnectorGateways\u002F{namespace}\u002Fconnections\u002F{conn}\u002FdynamicInvoke?api-version=2026-05-01-preview\" --body '{\"request\":{\"method\":\"GET\",\"path\":\"\u002F...\"}}'\n\n# Trigger configs\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs?api-version=2026-05-01-preview\"\naz rest --method POST --url \"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}\u002Fdisable?api-version=2026-05-01-preview\"\naz rest --method POST --url \"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}\u002Fenable?api-version=2026-05-01-preview\"\n\n# MCP server configs\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs?api-version=2026-05-01-preview\"\naz rest --method GET --url \"...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs\u002F{name}?api-version=2026-05-01-preview\" --query \"properties.mcpEndpointUrl\" -o tsv\n",[4282],{"type":44,"tag":76,"props":4283,"children":4284},{"__ignoreMap":1016},[4285,4294,4302,4311,4319,4356,4363,4371,4407,4414,4422,4458,4465,4473,4540,4547,4555,4612,4619,4627,4663,4699,4735,4742,4750,4786],{"type":44,"tag":1022,"props":4286,"children":4287},{"class":1024,"line":1025},[4288],{"type":44,"tag":1022,"props":4289,"children":4291},{"style":4290},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[4292],{"type":50,"value":4293},"# ARM base:  https:\u002F\u002Fmanagement.azure.com\u002Fsubscriptions\u002F{sub}\u002FresourceGroups\u002F{rg}\u002Fproviders\u002FMicrosoft.Web\u002FconnectorGateways\n",{"type":44,"tag":1022,"props":4295,"children":4296},{"class":1024,"line":28},[4297],{"type":44,"tag":1022,"props":4298,"children":4299},{"style":4290},[4300],{"type":50,"value":4301},"# API ver:   api-version=2026-05-01-preview\n",{"type":44,"tag":1022,"props":4303,"children":4304},{"class":1024,"line":1260},[4305],{"type":44,"tag":1022,"props":4306,"children":4308},{"emptyLinePlaceholder":4307},true,[4309],{"type":50,"value":4310},"\n",{"type":44,"tag":1022,"props":4312,"children":4313},{"class":1024,"line":1348},[4314],{"type":44,"tag":1022,"props":4315,"children":4316},{"style":4290},[4317],{"type":50,"value":4318},"# Namespace\n",{"type":44,"tag":1022,"props":4320,"children":4321},{"class":1024,"line":1357},[4322,4326,4330,4334,4338,4343,4347,4352],{"type":44,"tag":1022,"props":4323,"children":4324},{"style":1029},[4325],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4327,"children":4328},{"style":1035},[4329],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4331,"children":4332},{"style":1035},[4333],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4335,"children":4336},{"style":1035},[4337],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4339,"children":4340},{"style":1035},[4341],{"type":50,"value":4342}," --url",{"type":44,"tag":1022,"props":4344,"children":4345},{"style":1051},[4346],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4348,"children":4349},{"style":1035},[4350],{"type":50,"value":4351},"...\u002FconnectorGateways\u002F{namespace}?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4353,"children":4354},{"style":1051},[4355],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4357,"children":4358},{"class":1024,"line":1366},[4359],{"type":44,"tag":1022,"props":4360,"children":4361},{"emptyLinePlaceholder":4307},[4362],{"type":50,"value":4310},{"type":44,"tag":1022,"props":4364,"children":4365},{"class":1024,"line":1375},[4366],{"type":44,"tag":1022,"props":4367,"children":4368},{"style":4290},[4369],{"type":50,"value":4370},"# Connections\n",{"type":44,"tag":1022,"props":4372,"children":4373},{"class":1024,"line":3190},[4374,4378,4382,4386,4390,4394,4398,4403],{"type":44,"tag":1022,"props":4375,"children":4376},{"style":1029},[4377],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4379,"children":4380},{"style":1035},[4381],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4383,"children":4384},{"style":1035},[4385],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4387,"children":4388},{"style":1035},[4389],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4391,"children":4392},{"style":1035},[4393],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4395,"children":4396},{"style":1051},[4397],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4399,"children":4400},{"style":1035},[4401],{"type":50,"value":4402},"...\u002FconnectorGateways\u002F{namespace}\u002Fconnections?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4404,"children":4405},{"style":1051},[4406],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4408,"children":4409},{"class":1024,"line":3228},[4410],{"type":44,"tag":1022,"props":4411,"children":4412},{"emptyLinePlaceholder":4307},[4413],{"type":50,"value":4310},{"type":44,"tag":1022,"props":4415,"children":4416},{"class":1024,"line":3253},[4417],{"type":44,"tag":1022,"props":4418,"children":4419},{"style":4290},[4420],{"type":50,"value":4421},"# List trigger operations + summaries\n",{"type":44,"tag":1022,"props":4423,"children":4424},{"class":1024,"line":3262},[4425,4429,4433,4437,4441,4445,4449,4454],{"type":44,"tag":1022,"props":4426,"children":4427},{"style":1029},[4428],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4430,"children":4431},{"style":1035},[4432],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4434,"children":4435},{"style":1035},[4436],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4438,"children":4439},{"style":1035},[4440],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4442,"children":4443},{"style":1035},[4444],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4446,"children":4447},{"style":1051},[4448],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4450,"children":4451},{"style":1035},[4452],{"type":50,"value":4453},"...\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}\u002FapiOperations?api-version=2016-06-01",{"type":44,"tag":1022,"props":4455,"children":4456},{"style":1051},[4457],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4459,"children":4460},{"class":1024,"line":3301},[4461],{"type":44,"tag":1022,"props":4462,"children":4463},{"emptyLinePlaceholder":4307},[4464],{"type":50,"value":4310},{"type":44,"tag":1022,"props":4466,"children":4467},{"class":1024,"line":3338},[4468],{"type":44,"tag":1022,"props":4469,"children":4470},{"style":4290},[4471],{"type":50,"value":4472},"# Get Swagger (paths, parameters, x-ms-dynamic-*)\n",{"type":44,"tag":1022,"props":4474,"children":4475},{"class":1024,"line":3375},[4476,4480,4484,4488,4492,4496,4500,4505,4509,4514,4518,4523,4527,4531,4536],{"type":44,"tag":1022,"props":4477,"children":4478},{"style":1029},[4479],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4481,"children":4482},{"style":1035},[4483],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4485,"children":4486},{"style":1035},[4487],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4489,"children":4490},{"style":1035},[4491],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4493,"children":4494},{"style":1035},[4495],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4497,"children":4498},{"style":1051},[4499],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4501,"children":4502},{"style":1035},[4503],{"type":50,"value":4504},"...\u002Flocations\u002F{location}\u002FmanagedApis\u002F{connector}",{"type":44,"tag":1022,"props":4506,"children":4507},{"style":1051},[4508],{"type":50,"value":1064},{"type":44,"tag":1022,"props":4510,"children":4511},{"style":1035},[4512],{"type":50,"value":4513}," --url-parameters",{"type":44,"tag":1022,"props":4515,"children":4516},{"style":1051},[4517],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4519,"children":4520},{"style":1035},[4521],{"type":50,"value":4522},"api-version=2016-06-01",{"type":44,"tag":1022,"props":4524,"children":4525},{"style":1051},[4526],{"type":50,"value":1064},{"type":44,"tag":1022,"props":4528,"children":4529},{"style":1051},[4530],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4532,"children":4533},{"style":1035},[4534],{"type":50,"value":4535},"export=true",{"type":44,"tag":1022,"props":4537,"children":4538},{"style":1051},[4539],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4541,"children":4542},{"class":1024,"line":3400},[4543],{"type":44,"tag":1022,"props":4544,"children":4545},{"emptyLinePlaceholder":4307},[4546],{"type":50,"value":4310},{"type":44,"tag":1022,"props":4548,"children":4549},{"class":1024,"line":3478},[4550],{"type":44,"tag":1022,"props":4551,"children":4552},{"style":4290},[4553],{"type":50,"value":4554},"# Dynamic invoke\n",{"type":44,"tag":1022,"props":4556,"children":4557},{"class":1024,"line":3487},[4558,4562,4566,4570,4575,4579,4583,4588,4592,4597,4602,4607],{"type":44,"tag":1022,"props":4559,"children":4560},{"style":1029},[4561],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4563,"children":4564},{"style":1035},[4565],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4567,"children":4568},{"style":1035},[4569],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4571,"children":4572},{"style":1035},[4573],{"type":50,"value":4574}," POST",{"type":44,"tag":1022,"props":4576,"children":4577},{"style":1035},[4578],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4580,"children":4581},{"style":1051},[4582],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4584,"children":4585},{"style":1035},[4586],{"type":50,"value":4587},"...\u002FconnectorGateways\u002F{namespace}\u002Fconnections\u002F{conn}\u002FdynamicInvoke?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4589,"children":4590},{"style":1051},[4591],{"type":50,"value":1064},{"type":44,"tag":1022,"props":4593,"children":4594},{"style":1035},[4595],{"type":50,"value":4596}," --body",{"type":44,"tag":1022,"props":4598,"children":4599},{"style":1051},[4600],{"type":50,"value":4601}," '",{"type":44,"tag":1022,"props":4603,"children":4604},{"style":1035},[4605],{"type":50,"value":4606},"{\"request\":{\"method\":\"GET\",\"path\":\"\u002F...\"}}",{"type":44,"tag":1022,"props":4608,"children":4609},{"style":1051},[4610],{"type":50,"value":4611},"'\n",{"type":44,"tag":1022,"props":4613,"children":4614},{"class":1024,"line":3512},[4615],{"type":44,"tag":1022,"props":4616,"children":4617},{"emptyLinePlaceholder":4307},[4618],{"type":50,"value":4310},{"type":44,"tag":1022,"props":4620,"children":4621},{"class":1024,"line":3849},[4622],{"type":44,"tag":1022,"props":4623,"children":4624},{"style":4290},[4625],{"type":50,"value":4626},"# Trigger configs\n",{"type":44,"tag":1022,"props":4628,"children":4629},{"class":1024,"line":24},[4630,4634,4638,4642,4646,4650,4654,4659],{"type":44,"tag":1022,"props":4631,"children":4632},{"style":1029},[4633],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4635,"children":4636},{"style":1035},[4637],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4639,"children":4640},{"style":1035},[4641],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4643,"children":4644},{"style":1035},[4645],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4647,"children":4648},{"style":1035},[4649],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4651,"children":4652},{"style":1051},[4653],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4655,"children":4656},{"style":1035},[4657],{"type":50,"value":4658},"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4660,"children":4661},{"style":1051},[4662],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4664,"children":4665},{"class":1024,"line":3866},[4666,4670,4674,4678,4682,4686,4690,4695],{"type":44,"tag":1022,"props":4667,"children":4668},{"style":1029},[4669],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4671,"children":4672},{"style":1035},[4673],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4675,"children":4676},{"style":1035},[4677],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4679,"children":4680},{"style":1035},[4681],{"type":50,"value":4574},{"type":44,"tag":1022,"props":4683,"children":4684},{"style":1035},[4685],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4687,"children":4688},{"style":1051},[4689],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4691,"children":4692},{"style":1035},[4693],{"type":50,"value":4694},"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}\u002Fdisable?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4696,"children":4697},{"style":1051},[4698],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4700,"children":4701},{"class":1024,"line":3875},[4702,4706,4710,4714,4718,4722,4726,4731],{"type":44,"tag":1022,"props":4703,"children":4704},{"style":1029},[4705],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4707,"children":4708},{"style":1035},[4709],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4711,"children":4712},{"style":1035},[4713],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4715,"children":4716},{"style":1035},[4717],{"type":50,"value":4574},{"type":44,"tag":1022,"props":4719,"children":4720},{"style":1035},[4721],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4723,"children":4724},{"style":1051},[4725],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4727,"children":4728},{"style":1035},[4729],{"type":50,"value":4730},"...\u002FconnectorGateways\u002F{namespace}\u002FtriggerConfigs\u002F{name}\u002Fenable?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4732,"children":4733},{"style":1051},[4734],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4736,"children":4737},{"class":1024,"line":3884},[4738],{"type":44,"tag":1022,"props":4739,"children":4740},{"emptyLinePlaceholder":4307},[4741],{"type":50,"value":4310},{"type":44,"tag":1022,"props":4743,"children":4744},{"class":1024,"line":3893},[4745],{"type":44,"tag":1022,"props":4746,"children":4747},{"style":4290},[4748],{"type":50,"value":4749},"# MCP server configs\n",{"type":44,"tag":1022,"props":4751,"children":4752},{"class":1024,"line":3902},[4753,4757,4761,4765,4769,4773,4777,4782],{"type":44,"tag":1022,"props":4754,"children":4755},{"style":1029},[4756],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4758,"children":4759},{"style":1035},[4760],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4762,"children":4763},{"style":1035},[4764],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4766,"children":4767},{"style":1035},[4768],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4770,"children":4771},{"style":1035},[4772],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4774,"children":4775},{"style":1051},[4776],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4778,"children":4779},{"style":1035},[4780],{"type":50,"value":4781},"...\u002FconnectorGateways\u002F{namespace}\u002FmcpServerConfigs?api-version=2026-05-01-preview",{"type":44,"tag":1022,"props":4783,"children":4784},{"style":1051},[4785],{"type":50,"value":1280},{"type":44,"tag":1022,"props":4787,"children":4789},{"class":1024,"line":4788},26,[4790,4794,4798,4802,4806,4810,4814,4818,4822,4826,4830,4834,4838,4842],{"type":44,"tag":1022,"props":4791,"children":4792},{"style":1029},[4793],{"type":50,"value":1032},{"type":44,"tag":1022,"props":4795,"children":4796},{"style":1035},[4797],{"type":50,"value":1216},{"type":44,"tag":1022,"props":4799,"children":4800},{"style":1035},[4801],{"type":50,"value":1221},{"type":44,"tag":1022,"props":4803,"children":4804},{"style":1035},[4805],{"type":50,"value":1226},{"type":44,"tag":1022,"props":4807,"children":4808},{"style":1035},[4809],{"type":50,"value":4342},{"type":44,"tag":1022,"props":4811,"children":4812},{"style":1051},[4813],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4815,"children":4816},{"style":1035},[4817],{"type":50,"value":3919},{"type":44,"tag":1022,"props":4819,"children":4820},{"style":1051},[4821],{"type":50,"value":1064},{"type":44,"tag":1022,"props":4823,"children":4824},{"style":1035},[4825],{"type":50,"value":1048},{"type":44,"tag":1022,"props":4827,"children":4828},{"style":1051},[4829],{"type":50,"value":1054},{"type":44,"tag":1022,"props":4831,"children":4832},{"style":1035},[4833],{"type":50,"value":3962},{"type":44,"tag":1022,"props":4835,"children":4836},{"style":1051},[4837],{"type":50,"value":1064},{"type":44,"tag":1022,"props":4839,"children":4840},{"style":1035},[4841],{"type":50,"value":1069},{"type":44,"tag":1022,"props":4843,"children":4844},{"style":1035},[4845],{"type":50,"value":2471},{"type":44,"tag":133,"props":4847,"children":4849},{"id":4848},"references",[4850],{"type":50,"value":4851},"References",{"type":44,"tag":1104,"props":4853,"children":4854},{},[4855,4864,4875,4884,4893,4910,4919,4928,4937,4952,4963,4974],{"type":44,"tag":981,"props":4856,"children":4857},{},[4858,4862],{"type":44,"tag":550,"props":4859,"children":4860},{"href":995},[4861],{"type":50,"value":998},{"type":50,"value":4863}," — required tooling and Azure setup",{"type":44,"tag":981,"props":4865,"children":4866},{},[4867,4873],{"type":44,"tag":550,"props":4868,"children":4870},{"href":4869},"references\u002Fquickstart.md",[4871],{"type":50,"value":4872},"quickstart.md",{"type":50,"value":4874}," — minimal commands to list everything",{"type":44,"tag":981,"props":4876,"children":4877},{},[4878,4882],{"type":44,"tag":550,"props":4879,"children":4880},{"href":1571},[4881],{"type":50,"value":1574},{"type":50,"value":4883}," — connection CRUD + ACLs",{"type":44,"tag":981,"props":4885,"children":4886},{},[4887,4891],{"type":44,"tag":550,"props":4888,"children":4889},{"href":1547},[4890],{"type":50,"value":1550},{"type":50,"value":4892}," — OAuth consent link generation (exact body format)",{"type":44,"tag":981,"props":4894,"children":4895},{},[4896,4900,4902,4908],{"type":44,"tag":550,"props":4897,"children":4898},{"href":1739},[4899],{"type":50,"value":1742},{"type":50,"value":4901}," — ",{"type":44,"tag":76,"props":4903,"children":4905},{"className":4904},[],[4906],{"type":50,"value":4907},"x-ms-dynamic-{values,list,tree,schema}",{"type":50,"value":4909}," resolution algorithms",{"type":44,"tag":981,"props":4911,"children":4912},{},[4913,4917],{"type":44,"tag":550,"props":4914,"children":4915},{"href":698},[4916],{"type":50,"value":701},{"type":50,"value":4918}," — trigger config creation (all source types, all auth types)",{"type":44,"tag":981,"props":4920,"children":4921},{},[4922,4926],{"type":44,"tag":550,"props":4923,"children":4924},{"href":1437},[4925],{"type":50,"value":1440},{"type":50,"value":4927}," — callback authentication reference",{"type":44,"tag":981,"props":4929,"children":4930},{},[4931,4935],{"type":44,"tag":550,"props":4932,"children":4933},{"href":803},[4934],{"type":50,"value":806},{"type":50,"value":4936}," — MCP server config CRUD",{"type":44,"tag":981,"props":4938,"children":4939},{},[4940,4944,4945,4950],{"type":44,"tag":550,"props":4941,"children":4942},{"href":3996},[4943],{"type":50,"value":3999},{"type":50,"value":4901},{"type":44,"tag":76,"props":4946,"children":4948},{"className":4947},[],[4949],{"type":50,"value":267},{"type":50,"value":4951}," recipes",{"type":44,"tag":981,"props":4953,"children":4954},{},[4955,4961],{"type":44,"tag":550,"props":4956,"children":4958},{"href":4957},"references\u002Ftrigger-flow.md",[4959],{"type":50,"value":4960},"trigger-flow.md",{"type":50,"value":4962}," — end-to-end architecture diagram",{"type":44,"tag":981,"props":4964,"children":4965},{},[4966,4972],{"type":44,"tag":550,"props":4967,"children":4969},{"href":4968},"references\u002Ftutorial.md",[4970],{"type":50,"value":4971},"tutorial.md",{"type":50,"value":4973}," — walkthrough: recurrence trigger → user webhook",{"type":44,"tag":981,"props":4975,"children":4976},{},[4977,4981],{"type":44,"tag":550,"props":4978,"children":4979},{"href":552},[4980],{"type":50,"value":555},{"type":50,"value":4982}," — common issues",{"type":44,"tag":4984,"props":4985,"children":4986},"style",{},[4987],{"type":50,"value":4988},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4990,"total":28},[4991,4998],{"slug":4,"name":4,"fn":5,"description":6,"org":4992,"tags":4993,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4994,4995,4996,4997],{"name":22,"slug":23,"type":14},{"name":11,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":19,"slug":20,"type":14},{"slug":4999,"name":4999,"fn":5000,"description":5001,"org":5002,"tags":5003,"stars":24,"repoUrl":25,"updatedAt":5007},"azure-connectornamespace-aca-sandbox","manage Azure Connector Namespace connections","Azure Connector Namespace — ACA sandbox edition. Manage connector namespaces,\nconnections, and triggers that wire external services (Office 365, Teams, Forms,\nSharePoint, OneDrive, GitHub, Azure Blob) into ACA sandbox apps via event-driven\ntriggers or direct API calls using connection runtime URLs.\nUse when:\n- Managing connector namespaces and connections for ACA sandboxes\n- Creating trigger configs whose callbacks target sandbox endpoints\n- Wiring event sources to ACA sandbox callbacks via gatewayConnections\n- Building sandbox apps that call connector APIs (send email, post Teams message, etc.)\n- Reacting to events from one service and calling another\nTriggers: \"create trigger\", \"trigger config\", \"webhook trigger\", \"connector namespace\",\n\"connector\", \"connection\", \"email trigger\", \"send email\", \"onedrive\", \"sharepoint\",\n\"teams\", \"teams message\", \"microsoft forms\", \"form response\", \"aca sandbox\",\n\"sandbox group\", \"container apps sandbox\", \"notify\", \"automate\", \"when\", \"on new\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5004,5005,5006],{"name":22,"slug":23,"type":14},{"name":11,"slug":8,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:18:19.008492",{"items":5009,"total":5186},[5010,5029,5048,5065,5080,5095,5108,5123,5134,5148,5161,5174],{"slug":5011,"name":5011,"fn":5012,"description":5013,"org":5014,"tags":5015,"stars":5026,"repoUrl":5027,"updatedAt":5028},"azure-arg-external-evaluation-policy-author","author and test Azure Resource Graph policies","Use when the user wants to author, design, or test an Azure Policy that queries Azure Resource Graph (ARG) at request-time — i.e. a policy whose deny\u002Faudit decision depends on data from elsewhere in the subscription (sibling\u002Fparent resource state, RG-wide invariants, multi-hop relationships, etc.). Formally called Azure Policy External Evaluation; sometimes referred to colloquially as \"Invoke\". Drives an iterative KQL co-design loop against the user's real subscription via `az graph query`, then emits a policy definition, assignment, `.http` test flow, and an `EXPLANATION.md` companion. Read-only; never provisions anything.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5016,5017,5020,5023],{"name":11,"slug":8,"type":14},{"name":5018,"slug":5019,"type":14},"Compliance","compliance",{"name":5021,"slug":5022,"type":14},"Governance","governance",{"name":5024,"slug":5025,"type":14},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":5030,"name":5030,"fn":5031,"description":5032,"org":5033,"tags":5034,"stars":5045,"repoUrl":5046,"updatedAt":5047},"azure-blueprints-migration","migrate Azure Blueprints to Template Specs","Use when a user needs to migrate off Azure Blueprints (definitions and\u002For assignments) to Template Specs and Deployment Stacks before the January 31, 2027 retirement. Covers inventory, export, conversion to Bicep, policy decoupling, Template Spec publishing, Deployment Stack deployment with deny-settings, validation, and cutover.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5035,5036,5039,5042],{"name":11,"slug":8,"type":14},{"name":5037,"slug":5038,"type":14},"Deployment","deployment",{"name":5040,"slug":5041,"type":14},"Infrastructure as Code","infrastructure-as-code",{"name":5043,"slug":5044,"type":14},"Migration","migration",260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":5049,"name":5049,"fn":5050,"description":5051,"org":5052,"tags":5053,"stars":5062,"repoUrl":5063,"updatedAt":5064},"apiview-feedback-resolution","resolve APIView feedback on Azure SDKs","Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_typespec_customized_code_update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5054,5055,5056,5059],{"name":22,"slug":23,"type":14},{"name":11,"slug":8,"type":14},{"name":5057,"slug":5058,"type":14},"Code Review","code-review",{"name":5060,"slug":5061,"type":14},"Documentation","documentation",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":5066,"name":5066,"fn":5067,"description":5068,"org":5069,"tags":5070,"stars":5062,"repoUrl":5063,"updatedAt":5079},"azsdk-common-live-and-recorded-tests","deploy resources and run Azure SDK tests","Deploy test resources and run Azure SDK tests in live, record, or playback mode. WHEN: \"run live tests\", \"run recorded tests\", \"deploy test resources\", \"record tests\", \"run tests in record mode\", \"clean up test resources\", \"run tests against live resources\". DO NOT USE FOR: writing new tests, authoring Bicep templates, playback-only test runs without resource deployment. INVOKES: azure-sdk-mcp:azsdk_package_run_tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5071,5072,5073,5076],{"name":11,"slug":8,"type":14},{"name":5037,"slug":5038,"type":14},{"name":5074,"slug":5075,"type":14},"SDK","sdk",{"name":5077,"slug":5078,"type":14},"Testing","testing","2026-07-12T08:17:44.718943",{"slug":5081,"name":5081,"fn":5082,"description":5083,"org":5084,"tags":5085,"stars":5062,"repoUrl":5063,"updatedAt":5094},"azsdk-common-prepare-release-plan","manage Azure SDK release plan work items","Create, get, update, abandon, and link SDK PRs to release plan work items for Azure SDK releases. **UTILITY SKILL**. USE FOR: \"create release plan\", \"get release plan\", \"update release plan\", \"update API spec in release plan\", \"update SDK details in release plan\", \"abandon release plan\", \"link SDK PR to plan\", \"namespace approval\", \"check release plan status\". DO NOT USE FOR: SDK code generation, pipeline troubleshooting, API review feedback. INVOKES: azure-sdk-mcp:azsdk_create_release_plan, azure-sdk-mcp:azsdk_get_release_plan, azure-sdk-mcp:azsdk_get_release_plan_for_spec_pr, azure-sdk-mcp:azsdk_update_release_plan, azure-sdk-mcp:azsdk_update_api_spec_pull_request_in_release_plan, azure-sdk-mcp:azsdk_update_sdk_details_in_release_plan, azure-sdk-mcp:azsdk_abandon_release_plan, azure-sdk-mcp:azsdk_link_sdk_pull_request_to_release_plan, azure-sdk-mcp:azsdk_link_namespace_approval_issue.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5086,5087,5090,5093],{"name":11,"slug":8,"type":14},{"name":5088,"slug":5089,"type":14},"GitHub","github",{"name":5091,"slug":5092,"type":14},"Project Management","project-management",{"name":5074,"slug":5075,"type":14},"2026-07-12T08:17:38.345387",{"slug":5096,"name":5096,"fn":5097,"description":5098,"org":5099,"tags":5100,"stars":5062,"repoUrl":5063,"updatedAt":5107},"azsdk-common-sdk-release","release Azure SDK packages","Check release readiness and trigger the release pipeline for Azure SDK packages. **UTILITY SKILL**. USE FOR: \"release SDK\", \"trigger release\", \"check release readiness\", \"release pipeline\", \"publish package\", \"ship SDK\". DO NOT USE FOR: SDK development, code generation, pipeline debugging, release plan creation. INVOKES: azure-sdk-mcp:azsdk_release_sdk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5101,5102,5105,5106],{"name":11,"slug":8,"type":14},{"name":5103,"slug":5104,"type":14},"CI\u002FCD","ci-cd",{"name":5037,"slug":5038,"type":14},{"name":5074,"slug":5075,"type":14},"2026-07-12T08:17:34.27607",{"slug":5109,"name":5109,"fn":5110,"description":5111,"org":5112,"tags":5113,"stars":5062,"repoUrl":5063,"updatedAt":5122},"azure-typespec-author","author and modify Azure TypeSpec API specifications","Authors and modifies Azure TypeSpec (.tsp) API specifications. USE FOR: any TypeSpec\u002Ftsp change — api versions (add, bump, preview, stable, promote), resources, operations, models, properties, decorators, visibility, constraints, breaking changes, LRO, suppressions, operationId, spread model. Covers ARM resource-manager and data-plane services. DO NOT USE FOR: SDK generation, releasing SDK packages, or single MCP tool calls. INVOKES: azure-sdk-mcp:azsdk_typespec_generate_authoring_plan, azure-sdk-mcp:azsdk_run_typespec_validation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5114,5115,5116,5119],{"name":22,"slug":23,"type":14},{"name":11,"slug":8,"type":14},{"name":5117,"slug":5118,"type":14},"OpenAPI","openapi",{"name":5120,"slug":5121,"type":14},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":5124,"name":5124,"fn":5125,"description":5126,"org":5127,"tags":5128,"stars":5062,"repoUrl":5063,"updatedAt":5133},"generate-sdk-locally","generate and test Azure SDKs locally","Generate, build, and test Azure SDKs locally from TypeSpec with automatic customization. WHEN: \"generate SDK locally\", \"build SDK\", \"run SDK tests\", \"run CI checks\", \"validate package\", \"run checks\", \"update changelog\", \"fix SDK build errors\", \"fix breaking changes\", \"resolve SDK generation errors\", \"customize TypeSpec\", \"rename SDK client\", \"rename SDK model\", \"hide operation from SDK\", \"fix analyzer errors\", \"resolve customization drift\", \"create subclient\", \"update metadata\", \"update version\". DO NOT USE FOR: publishing to package registries, CI pipeline configuration, API design review. INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5129,5130,5131,5132],{"name":11,"slug":8,"type":14},{"name":5103,"slug":5104,"type":14},{"name":5074,"slug":5075,"type":14},{"name":5077,"slug":5078,"type":14},"2026-07-12T08:17:37.08523",{"slug":5135,"name":5135,"fn":5136,"description":5137,"org":5138,"tags":5139,"stars":5062,"repoUrl":5063,"updatedAt":5147},"markdown-token-optimizer","optimize markdown files for token efficiency","Analyze markdown files for token efficiency and reduce context-window bloat. **UTILITY SKILL**. DO NOT USE FOR: code optimization, general file editing, non-markdown files. TRIGGERS: optimize markdown, reduce tokens, token count, token bloat, too many tokens, make concise, shrink file, file too large, optimize for AI, token efficiency, verbose markdown, reduce file size. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5140,5143,5146],{"name":5141,"slug":5142,"type":14},"LLM","llm",{"name":5144,"slug":5145,"type":14},"Performance","performance",{"name":5120,"slug":5121,"type":14},"2026-07-12T08:17:42.080413",{"slug":5149,"name":5149,"fn":5150,"description":5151,"org":5152,"tags":5153,"stars":5062,"repoUrl":5063,"updatedAt":5160},"pipeline-troubleshooting","troubleshoot Azure SDK CI pipelines","Diagnose and resolve failures in Azure SDK CI and generation pipelines. **UTILITY SKILL**. USE FOR: \"pipeline failed\", \"build failure\", \"CI check failing\", \"SDK generation error\", \"reproduce pipeline locally\", \"debug SDK pipeline\". DO NOT USE FOR: local build issues without pipeline context, API design review, SDK publishing. INVOKES: azure-sdk-mcp:azsdk_analyze_pipeline, azure-sdk-mcp:azsdk_package_build_code, azure-sdk-mcp:azsdk_package_run_check.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5154,5155,5156,5159],{"name":11,"slug":8,"type":14},{"name":5103,"slug":5104,"type":14},{"name":5157,"slug":5158,"type":14},"Debugging","debugging",{"name":5074,"slug":5075,"type":14},"2026-07-12T08:17:40.821512",{"slug":5162,"name":5162,"fn":5163,"description":5164,"org":5165,"tags":5166,"stars":5062,"repoUrl":5063,"updatedAt":5173},"sensei","improve skill frontmatter compliance","**WORKFLOW SKILL** — Iteratively improve skill frontmatter compliance using the Ralph loop pattern. WHEN: \"run sensei\", \"sensei help\", \"improve skill\", \"fix frontmatter\", \"skill compliance\", \"frontmatter audit\", \"score skill\", \"check skill tokens\". INVOKES: token counting tools, test runners, git commands. FOR SINGLE OPERATIONS: use token CLI directly for counts\u002Fchecks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5167,5168,5169,5172],{"name":11,"slug":8,"type":14},{"name":5018,"slug":5019,"type":14},{"name":5170,"slug":5171,"type":14},"Process Optimization","process-optimization",{"name":5120,"slug":5121,"type":14},"2026-07-12T08:17:32.970921",{"slug":5175,"name":5175,"fn":5176,"description":5177,"org":5178,"tags":5179,"stars":5062,"repoUrl":5063,"updatedAt":5185},"skill-authoring","author agent skills for agentskills.io","Write Agent Skills that comply with the agentskills.io specification. WHEN: \"create a skill\", \"new skill\", \"write a skill\", \"skill template\", \"skill structure\", \"review skill\", \"skill PR\", \"skill compliance\", \"SKILL.md format\", \"skill frontmatter\", \"skill best practices\". DO NOT USE FOR: improving existing skills (use sensei), general documentation. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[5180,5181,5184],{"name":5060,"slug":5061,"type":14},{"name":5182,"slug":5183,"type":14},"Plugin Development","plugin-development",{"name":5120,"slug":5121,"type":14},"2026-07-12T08:17:35.873862",109]