[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-list-connectors":3,"mdc-1qdoxl-key":30,"related-repo-microsoft-list-connectors":787,"related-org-microsoft-list-connectors":863},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":28,"mdContent":29},"list-connectors","discover Microsoft App connectors and data sources","Lists connectors reachable in the active environment and the connection-bound data sources already wired into a Microsoft App. Use when discovering connectors and their operations before adding data sources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,17],{"name":13,"slug":14,"type":15},"Integrations","integrations","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"API Development","api-development",2,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FManaged-Apps","2026-07-07T06:53:09.758008",null,3,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":23},[],"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FManaged-Apps\u002Ftree\u002FHEAD\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Flist-connectors","---\nname: list-connectors\ndescription: Lists connectors reachable in the active environment and the connection-bound data sources already wired into a Microsoft App. Use when discovering connectors and their operations before adding data sources.\nuser-invocable: true\nallowed-tools: Read, Bash, AskUserQuestion\nmodel: sonnet\n---\n\n**📋 Shared Instructions: [shared-instructions.md](${CLAUDE_PLUGIN_ROOT}\u002Fshared\u002Fshared-instructions.md)** — Cross-cutting concerns.\n\n# List Connectors\n\nTwo read-only views, depending on what the user is asking:\n\n1. **What data sources are already bound to *this* app?** → `ms app show --json` (inspects `ms.config.json`).\n2. **What connectors are reachable in the active environment?** → `ms connector list-actions --connector \u003Cid>` for a specific connector, or browse the public reference for available api-ids.\n\n## Workflow\n\n1. Memory Bank → 2. Verify Env → 3. Mode → 4. Run + Present\n\n---\n\n### Step 1: Check Memory Bank\n\nRead `memory-bank.md` for the app's environment, if recorded. This is for context\u002Fverification only (confirming you're working against the expected app\u002Fenvironment) — `ms app show --json` and `ms connector list-actions` don't take environment targeting from it and the listing isn't scoped by it.\n\n### Step 2: Verify Env\n\n```bash\nBIN=ms\n$BIN auth status                                      # confirm the active UPN\n```\n\n### Step 3: Mode\n\nAsk (or infer):\n\n- **app**: enumerate data sources already wired into the current project (requires `ms.config.json` in cwd).\n- **connector**: list the operations exposed by a specific connector — useful when planning an `\u002Fadd-*` invocation.\n\n### Step 4a: App-bound data sources\n\n```bash\ntest -f ms.config.json || { echo \"Not in a Microsoft App workspace.\"; exit 1; }\n$BIN app show --json\n```\n\nParse the response for the data-source list and print a summary:\n\n| Connector       | api-id                            | Type     | Name                  |\n| --------------- | --------------------------------- | -------- | --------------------- |\n| Dataverse       | `dataverse`                       | table    | `contact`             |\n| SharePoint Online | `shared_sharepointonline`        | table    | `Project Milestones`  |\n| Teams           | `shared_teams`                    | action   | (entire connector)    |\n\nUse this to spot drift (e.g., `ms.config.json` claims a data source that no longer exists in the env).\n\n### Step 4b: Discover operations on a connector\n\nThe CLI prompts for \u002F creates connections inline when an `\u002Fadd-*` skill runs, so users rarely need to look up connection IDs ahead of time. The more useful query is \"what can this connector do?\":\n\n```bash\n$BIN connector list-actions --connector \u003Capi-id> [--search \u003Cterm>]\n```\n\nExamples:\n\n```bash\n$BIN connector list-actions --connector shared_office365 --search Mail\n$BIN connector list-actions --connector shared_sharepointonline --search GetItems\n```\n\nOutput is a list of operation names and their summaries. Use it to confirm an api-id supports the user's intent before invoking the relevant `\u002Fadd-*` skill.\n\n---\n\n## When the user wants a connection ID\n\nThe CLI creates or reuses connections **inline** while `ms app add connector` runs — you don't\nneed a connection ID to start an `\u002Fadd-*` skill. Two cases need a bit more care:\n\n- **`--non-interactive`**: the CLI can't open a browser or run the SSO flow, so it can't create\n  a connection. It expects `--connection-id`. If you omit it, the CLI **first prints the\n  available connections** for that connector (Display Name + Connection ID) and **then** errors —\n  copy a Connection ID from that table, or discover one via `ms app show --json` (connections\n  already bound to the app). If **no** connection exists yet, **run the command once in\n  interactive mode** (omit `--non-interactive`) so the CLI creates it inline, then reuse the\n  printed Connection ID for subsequent scripted runs.\n- **SQL (`shared_sql`)**: each SQL connection points at a different database, so when scripting\n  non-interactively pass the `--connection-id` for the right database explicitly.\n\nTo **create** a connection that doesn't exist yet, just run `ms app add connector` interactively:\nthe CLI handles consent + sign-in (silent SSO, or a browser dialog), creates the connection,\nprints its Connection ID, and binds it — no maker portal needed.\n",{"data":31,"body":35},{"name":4,"description":6,"user-invocable":32,"allowed-tools":33,"model":34},true,"Read, Bash, AskUserQuestion","sonnet",{"type":36,"children":37},"root",[38,59,65,70,127,134,142,146,153,181,187,236,242,247,286,292,381,386,511,523,529,541,594,599,622,634,637,643,670,762,781],{"type":39,"tag":40,"props":41,"children":42},"element","p",{},[43,57],{"type":39,"tag":44,"props":45,"children":46},"strong",{},[47,50],{"type":48,"value":49},"text","📋 Shared Instructions: ",{"type":39,"tag":51,"props":52,"children":54},"a",{"href":53},"$%7BCLAUDE_PLUGIN_ROOT%7D\u002Fshared\u002Fshared-instructions.md",[55],{"type":48,"value":56},"shared-instructions.md",{"type":48,"value":58}," — Cross-cutting concerns.",{"type":39,"tag":60,"props":61,"children":62},"h1",{"id":4},[63],{"type":48,"value":64},"List Connectors",{"type":39,"tag":40,"props":66,"children":67},{},[68],{"type":48,"value":69},"Two read-only views, depending on what the user is asking:",{"type":39,"tag":71,"props":72,"children":73},"ol",{},[74,110],{"type":39,"tag":75,"props":76,"children":77},"li",{},[78,91,93,100,102,108],{"type":39,"tag":44,"props":79,"children":80},{},[81,83,89],{"type":48,"value":82},"What data sources are already bound to ",{"type":39,"tag":84,"props":85,"children":86},"em",{},[87],{"type":48,"value":88},"this",{"type":48,"value":90}," app?",{"type":48,"value":92}," → ",{"type":39,"tag":94,"props":95,"children":97},"code",{"className":96},[],[98],{"type":48,"value":99},"ms app show --json",{"type":48,"value":101}," (inspects ",{"type":39,"tag":94,"props":103,"children":105},{"className":104},[],[106],{"type":48,"value":107},"ms.config.json",{"type":48,"value":109},").",{"type":39,"tag":75,"props":111,"children":112},{},[113,118,119,125],{"type":39,"tag":44,"props":114,"children":115},{},[116],{"type":48,"value":117},"What connectors are reachable in the active environment?",{"type":48,"value":92},{"type":39,"tag":94,"props":120,"children":122},{"className":121},[],[123],{"type":48,"value":124},"ms connector list-actions --connector \u003Cid>",{"type":48,"value":126}," for a specific connector, or browse the public reference for available api-ids.",{"type":39,"tag":128,"props":129,"children":131},"h2",{"id":130},"workflow",[132],{"type":48,"value":133},"Workflow",{"type":39,"tag":71,"props":135,"children":136},{},[137],{"type":39,"tag":75,"props":138,"children":139},{},[140],{"type":48,"value":141},"Memory Bank → 2. Verify Env → 3. Mode → 4. Run + Present",{"type":39,"tag":143,"props":144,"children":145},"hr",{},[],{"type":39,"tag":147,"props":148,"children":150},"h3",{"id":149},"step-1-check-memory-bank",[151],{"type":48,"value":152},"Step 1: Check Memory Bank",{"type":39,"tag":40,"props":154,"children":155},{},[156,158,164,166,171,173,179],{"type":48,"value":157},"Read ",{"type":39,"tag":94,"props":159,"children":161},{"className":160},[],[162],{"type":48,"value":163},"memory-bank.md",{"type":48,"value":165}," for the app's environment, if recorded. This is for context\u002Fverification only (confirming you're working against the expected app\u002Fenvironment) — ",{"type":39,"tag":94,"props":167,"children":169},{"className":168},[],[170],{"type":48,"value":99},{"type":48,"value":172}," and ",{"type":39,"tag":94,"props":174,"children":176},{"className":175},[],[177],{"type":48,"value":178},"ms connector list-actions",{"type":48,"value":180}," don't take environment targeting from it and the listing isn't scoped by it.",{"type":39,"tag":147,"props":182,"children":184},{"id":183},"step-2-verify-env",[185],{"type":48,"value":186},"Step 2: Verify Env",{"type":39,"tag":188,"props":189,"children":194},"pre",{"className":190,"code":191,"language":192,"meta":193,"style":193},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","BIN=ms\n$BIN auth status                                      # confirm the active UPN\n","bash","",[195],{"type":39,"tag":94,"props":196,"children":197},{"__ignoreMap":193},[198,222],{"type":39,"tag":199,"props":200,"children":203},"span",{"class":201,"line":202},"line",1,[204,210,216],{"type":39,"tag":199,"props":205,"children":207},{"style":206},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[208],{"type":48,"value":209},"BIN",{"type":39,"tag":199,"props":211,"children":213},{"style":212},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[214],{"type":48,"value":215},"=",{"type":39,"tag":199,"props":217,"children":219},{"style":218},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[220],{"type":48,"value":221},"ms\n",{"type":39,"tag":199,"props":223,"children":224},{"class":201,"line":20},[225,230],{"type":39,"tag":199,"props":226,"children":227},{"style":206},[228],{"type":48,"value":229},"$BIN auth status                                      ",{"type":39,"tag":199,"props":231,"children":233},{"style":232},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[234],{"type":48,"value":235},"# confirm the active UPN\n",{"type":39,"tag":147,"props":237,"children":239},{"id":238},"step-3-mode",[240],{"type":48,"value":241},"Step 3: Mode",{"type":39,"tag":40,"props":243,"children":244},{},[245],{"type":48,"value":246},"Ask (or infer):",{"type":39,"tag":248,"props":249,"children":250},"ul",{},[251,268],{"type":39,"tag":75,"props":252,"children":253},{},[254,259,261,266],{"type":39,"tag":44,"props":255,"children":256},{},[257],{"type":48,"value":258},"app",{"type":48,"value":260},": enumerate data sources already wired into the current project (requires ",{"type":39,"tag":94,"props":262,"children":264},{"className":263},[],[265],{"type":48,"value":107},{"type":48,"value":267}," in cwd).",{"type":39,"tag":75,"props":269,"children":270},{},[271,276,278,284],{"type":39,"tag":44,"props":272,"children":273},{},[274],{"type":48,"value":275},"connector",{"type":48,"value":277},": list the operations exposed by a specific connector — useful when planning an ",{"type":39,"tag":94,"props":279,"children":281},{"className":280},[],[282],{"type":48,"value":283},"\u002Fadd-*",{"type":48,"value":285}," invocation.",{"type":39,"tag":147,"props":287,"children":289},{"id":288},"step-4a-app-bound-data-sources",[290],{"type":48,"value":291},"Step 4a: App-bound data sources",{"type":39,"tag":188,"props":293,"children":295},{"className":190,"code":294,"language":192,"meta":193,"style":193},"test -f ms.config.json || { echo \"Not in a Microsoft App workspace.\"; exit 1; }\n$BIN app show --json\n",[296],{"type":39,"tag":94,"props":297,"children":298},{"__ignoreMap":193},[299,373],{"type":39,"tag":199,"props":300,"children":301},{"class":201,"line":202},[302,308,313,318,323,328,333,338,343,348,353,358,364,368],{"type":39,"tag":199,"props":303,"children":305},{"style":304},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[306],{"type":48,"value":307},"test",{"type":39,"tag":199,"props":309,"children":310},{"style":218},[311],{"type":48,"value":312}," -f",{"type":39,"tag":199,"props":314,"children":315},{"style":218},[316],{"type":48,"value":317}," ms.config.json",{"type":39,"tag":199,"props":319,"children":320},{"style":212},[321],{"type":48,"value":322}," ||",{"type":39,"tag":199,"props":324,"children":325},{"style":212},[326],{"type":48,"value":327}," {",{"type":39,"tag":199,"props":329,"children":330},{"style":304},[331],{"type":48,"value":332}," echo",{"type":39,"tag":199,"props":334,"children":335},{"style":212},[336],{"type":48,"value":337}," \"",{"type":39,"tag":199,"props":339,"children":340},{"style":218},[341],{"type":48,"value":342},"Not in a Microsoft App workspace.",{"type":39,"tag":199,"props":344,"children":345},{"style":212},[346],{"type":48,"value":347},"\"",{"type":39,"tag":199,"props":349,"children":350},{"style":212},[351],{"type":48,"value":352},";",{"type":39,"tag":199,"props":354,"children":355},{"style":304},[356],{"type":48,"value":357}," exit",{"type":39,"tag":199,"props":359,"children":361},{"style":360},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[362],{"type":48,"value":363}," 1",{"type":39,"tag":199,"props":365,"children":366},{"style":212},[367],{"type":48,"value":352},{"type":39,"tag":199,"props":369,"children":370},{"style":212},[371],{"type":48,"value":372}," }\n",{"type":39,"tag":199,"props":374,"children":375},{"class":201,"line":20},[376],{"type":39,"tag":199,"props":377,"children":378},{"style":206},[379],{"type":48,"value":380},"$BIN app show --json\n",{"type":39,"tag":40,"props":382,"children":383},{},[384],{"type":48,"value":385},"Parse the response for the data-source list and print a summary:",{"type":39,"tag":387,"props":388,"children":389},"table",{},[390,419],{"type":39,"tag":391,"props":392,"children":393},"thead",{},[394],{"type":39,"tag":395,"props":396,"children":397},"tr",{},[398,404,409,414],{"type":39,"tag":399,"props":400,"children":401},"th",{},[402],{"type":48,"value":403},"Connector",{"type":39,"tag":399,"props":405,"children":406},{},[407],{"type":48,"value":408},"api-id",{"type":39,"tag":399,"props":410,"children":411},{},[412],{"type":48,"value":413},"Type",{"type":39,"tag":399,"props":415,"children":416},{},[417],{"type":48,"value":418},"Name",{"type":39,"tag":420,"props":421,"children":422},"tbody",{},[423,454,484],{"type":39,"tag":395,"props":424,"children":425},{},[426,432,441,445],{"type":39,"tag":427,"props":428,"children":429},"td",{},[430],{"type":48,"value":431},"Dataverse",{"type":39,"tag":427,"props":433,"children":434},{},[435],{"type":39,"tag":94,"props":436,"children":438},{"className":437},[],[439],{"type":48,"value":440},"dataverse",{"type":39,"tag":427,"props":442,"children":443},{},[444],{"type":48,"value":387},{"type":39,"tag":427,"props":446,"children":447},{},[448],{"type":39,"tag":94,"props":449,"children":451},{"className":450},[],[452],{"type":48,"value":453},"contact",{"type":39,"tag":395,"props":455,"children":456},{},[457,462,471,475],{"type":39,"tag":427,"props":458,"children":459},{},[460],{"type":48,"value":461},"SharePoint Online",{"type":39,"tag":427,"props":463,"children":464},{},[465],{"type":39,"tag":94,"props":466,"children":468},{"className":467},[],[469],{"type":48,"value":470},"shared_sharepointonline",{"type":39,"tag":427,"props":472,"children":473},{},[474],{"type":48,"value":387},{"type":39,"tag":427,"props":476,"children":477},{},[478],{"type":39,"tag":94,"props":479,"children":481},{"className":480},[],[482],{"type":48,"value":483},"Project Milestones",{"type":39,"tag":395,"props":485,"children":486},{},[487,492,501,506],{"type":39,"tag":427,"props":488,"children":489},{},[490],{"type":48,"value":491},"Teams",{"type":39,"tag":427,"props":493,"children":494},{},[495],{"type":39,"tag":94,"props":496,"children":498},{"className":497},[],[499],{"type":48,"value":500},"shared_teams",{"type":39,"tag":427,"props":502,"children":503},{},[504],{"type":48,"value":505},"action",{"type":39,"tag":427,"props":507,"children":508},{},[509],{"type":48,"value":510},"(entire connector)",{"type":39,"tag":40,"props":512,"children":513},{},[514,516,521],{"type":48,"value":515},"Use this to spot drift (e.g., ",{"type":39,"tag":94,"props":517,"children":519},{"className":518},[],[520],{"type":48,"value":107},{"type":48,"value":522}," claims a data source that no longer exists in the env).",{"type":39,"tag":147,"props":524,"children":526},{"id":525},"step-4b-discover-operations-on-a-connector",[527],{"type":48,"value":528},"Step 4b: Discover operations on a connector",{"type":39,"tag":40,"props":530,"children":531},{},[532,534,539],{"type":48,"value":533},"The CLI prompts for \u002F creates connections inline when an ",{"type":39,"tag":94,"props":535,"children":537},{"className":536},[],[538],{"type":48,"value":283},{"type":48,"value":540}," skill runs, so users rarely need to look up connection IDs ahead of time. The more useful query is \"what can this connector do?\":",{"type":39,"tag":188,"props":542,"children":544},{"className":190,"code":543,"language":192,"meta":193,"style":193},"$BIN connector list-actions --connector \u003Capi-id> [--search \u003Cterm>]\n",[545],{"type":39,"tag":94,"props":546,"children":547},{"__ignoreMap":193},[548],{"type":39,"tag":199,"props":549,"children":550},{"class":201,"line":202},[551,556,561,565,570,575,580,584,589],{"type":39,"tag":199,"props":552,"children":553},{"style":206},[554],{"type":48,"value":555},"$BIN connector list-actions --connector ",{"type":39,"tag":199,"props":557,"children":558},{"style":212},[559],{"type":48,"value":560},"\u003C",{"type":39,"tag":199,"props":562,"children":563},{"style":206},[564],{"type":48,"value":408},{"type":39,"tag":199,"props":566,"children":567},{"style":212},[568],{"type":48,"value":569},">",{"type":39,"tag":199,"props":571,"children":572},{"style":212},[573],{"type":48,"value":574}," [",{"type":39,"tag":199,"props":576,"children":577},{"style":206},[578],{"type":48,"value":579},"--search ",{"type":39,"tag":199,"props":581,"children":582},{"style":212},[583],{"type":48,"value":560},{"type":39,"tag":199,"props":585,"children":586},{"style":206},[587],{"type":48,"value":588},"term",{"type":39,"tag":199,"props":590,"children":591},{"style":212},[592],{"type":48,"value":593},">]\n",{"type":39,"tag":40,"props":595,"children":596},{},[597],{"type":48,"value":598},"Examples:",{"type":39,"tag":188,"props":600,"children":602},{"className":190,"code":601,"language":192,"meta":193,"style":193},"$BIN connector list-actions --connector shared_office365 --search Mail\n$BIN connector list-actions --connector shared_sharepointonline --search GetItems\n",[603],{"type":39,"tag":94,"props":604,"children":605},{"__ignoreMap":193},[606,614],{"type":39,"tag":199,"props":607,"children":608},{"class":201,"line":202},[609],{"type":39,"tag":199,"props":610,"children":611},{"style":206},[612],{"type":48,"value":613},"$BIN connector list-actions --connector shared_office365 --search Mail\n",{"type":39,"tag":199,"props":615,"children":616},{"class":201,"line":20},[617],{"type":39,"tag":199,"props":618,"children":619},{"style":206},[620],{"type":48,"value":621},"$BIN connector list-actions --connector shared_sharepointonline --search GetItems\n",{"type":39,"tag":40,"props":623,"children":624},{},[625,627,632],{"type":48,"value":626},"Output is a list of operation names and their summaries. Use it to confirm an api-id supports the user's intent before invoking the relevant ",{"type":39,"tag":94,"props":628,"children":630},{"className":629},[],[631],{"type":48,"value":283},{"type":48,"value":633}," skill.",{"type":39,"tag":143,"props":635,"children":636},{},[],{"type":39,"tag":128,"props":638,"children":640},{"id":639},"when-the-user-wants-a-connection-id",[641],{"type":48,"value":642},"When the user wants a connection ID",{"type":39,"tag":40,"props":644,"children":645},{},[646,648,653,655,661,663,668],{"type":48,"value":647},"The CLI creates or reuses connections ",{"type":39,"tag":44,"props":649,"children":650},{},[651],{"type":48,"value":652},"inline",{"type":48,"value":654}," while ",{"type":39,"tag":94,"props":656,"children":658},{"className":657},[],[659],{"type":48,"value":660},"ms app add connector",{"type":48,"value":662}," runs — you don't\nneed a connection ID to start an ",{"type":39,"tag":94,"props":664,"children":666},{"className":665},[],[667],{"type":48,"value":283},{"type":48,"value":669}," skill. Two cases need a bit more care:",{"type":39,"tag":248,"props":671,"children":672},{},[673,737],{"type":39,"tag":75,"props":674,"children":675},{},[676,685,687,693,695,700,702,707,709,714,716,721,723,728,730,735],{"type":39,"tag":44,"props":677,"children":678},{},[679],{"type":39,"tag":94,"props":680,"children":682},{"className":681},[],[683],{"type":48,"value":684},"--non-interactive",{"type":48,"value":686},": the CLI can't open a browser or run the SSO flow, so it can't create\na connection. It expects ",{"type":39,"tag":94,"props":688,"children":690},{"className":689},[],[691],{"type":48,"value":692},"--connection-id",{"type":48,"value":694},". If you omit it, the CLI ",{"type":39,"tag":44,"props":696,"children":697},{},[698],{"type":48,"value":699},"first prints the\navailable connections",{"type":48,"value":701}," for that connector (Display Name + Connection ID) and ",{"type":39,"tag":44,"props":703,"children":704},{},[705],{"type":48,"value":706},"then",{"type":48,"value":708}," errors —\ncopy a Connection ID from that table, or discover one via ",{"type":39,"tag":94,"props":710,"children":712},{"className":711},[],[713],{"type":48,"value":99},{"type":48,"value":715}," (connections\nalready bound to the app). If ",{"type":39,"tag":44,"props":717,"children":718},{},[719],{"type":48,"value":720},"no",{"type":48,"value":722}," connection exists yet, ",{"type":39,"tag":44,"props":724,"children":725},{},[726],{"type":48,"value":727},"run the command once in\ninteractive mode",{"type":48,"value":729}," (omit ",{"type":39,"tag":94,"props":731,"children":733},{"className":732},[],[734],{"type":48,"value":684},{"type":48,"value":736},") so the CLI creates it inline, then reuse the\nprinted Connection ID for subsequent scripted runs.",{"type":39,"tag":75,"props":738,"children":739},{},[740,753,755,760],{"type":39,"tag":44,"props":741,"children":742},{},[743,745,751],{"type":48,"value":744},"SQL (",{"type":39,"tag":94,"props":746,"children":748},{"className":747},[],[749],{"type":48,"value":750},"shared_sql",{"type":48,"value":752},")",{"type":48,"value":754},": each SQL connection points at a different database, so when scripting\nnon-interactively pass the ",{"type":39,"tag":94,"props":756,"children":758},{"className":757},[],[759],{"type":48,"value":692},{"type":48,"value":761}," for the right database explicitly.",{"type":39,"tag":40,"props":763,"children":764},{},[765,767,772,774,779],{"type":48,"value":766},"To ",{"type":39,"tag":44,"props":768,"children":769},{},[770],{"type":48,"value":771},"create",{"type":48,"value":773}," a connection that doesn't exist yet, just run ",{"type":39,"tag":94,"props":775,"children":777},{"className":776},[],[778],{"type":48,"value":660},{"type":48,"value":780}," interactively:\nthe CLI handles consent + sign-in (silent SSO, or a browser dialog), creates the connection,\nprints its Connection ID, and binds it — no maker portal needed.",{"type":39,"tag":782,"props":783,"children":784},"style",{},[785],{"type":48,"value":786},"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":788,"total":862},[789,801,818,833,844,856],{"slug":790,"name":790,"fn":791,"description":792,"org":793,"tags":794,"stars":20,"repoUrl":21,"updatedAt":800},"add-azuredevops","integrate Azure DevOps into Microsoft Apps","Adds Azure DevOps by delegating to `\u002Fadd-connector` with `api-id=shared_visualstudioteamservices` and action mode. Use when adding Azure DevOps integration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[795,798,799],{"name":796,"slug":797,"type":15},"Azure DevOps","azure-devops",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:53:11.295258",{"slug":802,"name":802,"fn":803,"description":804,"org":805,"tags":806,"stars":20,"repoUrl":21,"updatedAt":817},"add-office365","integrate Office 365 Outlook","Adds Office 365 Outlook by delegating to `\u002Fadd-connector` with `api-id=shared_office365` and action mode. Use when integrating Outlook mail\u002Fcalendar.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[807,808,811,814],{"name":9,"slug":8,"type":15},{"name":809,"slug":810,"type":15},"Microsoft 365","microsoft-365",{"name":812,"slug":813,"type":15},"Outlook Calendar","outlook-calendar",{"name":815,"slug":816,"type":15},"Outlook Email","outlook-email","2026-07-03T16:31:36.717786",{"slug":819,"name":819,"fn":820,"description":821,"org":822,"tags":823,"stars":20,"repoUrl":21,"updatedAt":832},"add-workiq","add Work IQ Copilot MCP","Adds Work IQ Copilot MCP by delegating to \u002Fadd-connector with api-id=shared_a365copilotchatmcp and action mode. Use when users need Microsoft 365 knowledge-grounded Work IQ search\u002Fchat.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[824,827,830,831],{"name":825,"slug":826,"type":15},"Copilot","copilot",{"name":828,"slug":829,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},{"name":809,"slug":810,"type":15},"2026-07-03T16:31:35.439156",{"slug":834,"name":834,"fn":835,"description":836,"org":837,"tags":838,"stars":20,"repoUrl":21,"updatedAt":843},"delete-app","delete Microsoft Apps","Deletes a Microsoft App via `ms app delete`. Use when the user asks to delete an app; always require explicit confirmation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[839,840],{"name":9,"slug":8,"type":15},{"name":841,"slug":842,"type":15},"Operations","operations","2026-07-07T06:53:08.459223",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":20,"repoUrl":21,"updatedAt":855},"list-apps","discover Microsoft Apps in the environment","Discovers Microsoft Apps in the active environment via `ms app list --json` and optional `ms app show --json`. Use when listing or locating apps.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[850,853,854],{"name":851,"slug":852,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},{"name":841,"slug":842,"type":15},"2026-07-03T16:31:37.983568",{"slug":4,"name":4,"fn":5,"description":6,"org":857,"tags":858,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[859,860,861],{"name":18,"slug":19,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},6,{"items":864,"total":1057},[865,887,908,929,944,961,972,983,998,1013,1032,1045],{"slug":866,"name":866,"fn":867,"description":868,"org":869,"tags":870,"stars":884,"repoUrl":885,"updatedAt":886},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[871,874,877,878,881],{"name":872,"slug":873,"type":15},"Engineering","engineering",{"name":875,"slug":876,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":879,"slug":880,"type":15},"Project Management","project-management",{"name":882,"slug":883,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":888,"name":888,"fn":889,"description":890,"org":891,"tags":892,"stars":905,"repoUrl":906,"updatedAt":907},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[893,896,899,902],{"name":894,"slug":895,"type":15},".NET","net",{"name":897,"slug":898,"type":15},"Agents","agents",{"name":900,"slug":901,"type":15},"Azure","azure",{"name":903,"slug":904,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":909,"name":909,"fn":910,"description":911,"org":912,"tags":913,"stars":905,"repoUrl":906,"updatedAt":928},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[914,917,918,921,924,925],{"name":915,"slug":916,"type":15},"Analytics","analytics",{"name":900,"slug":901,"type":15},{"name":919,"slug":920,"type":15},"Data Analysis","data-analysis",{"name":922,"slug":923,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":926,"slug":927,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":930,"name":930,"fn":931,"description":932,"org":933,"tags":934,"stars":905,"repoUrl":906,"updatedAt":943},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[935,938,939,940],{"name":936,"slug":937,"type":15},"AI Infrastructure","ai-infrastructure",{"name":900,"slug":901,"type":15},{"name":922,"slug":923,"type":15},{"name":941,"slug":942,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":945,"name":945,"fn":946,"description":947,"org":948,"tags":949,"stars":905,"repoUrl":906,"updatedAt":960},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[950,951,954,955,956,959],{"name":900,"slug":901,"type":15},{"name":952,"slug":953,"type":15},"Compliance","compliance",{"name":903,"slug":904,"type":15},{"name":9,"slug":8,"type":15},{"name":957,"slug":958,"type":15},"Python","python",{"name":941,"slug":942,"type":15},"2026-07-18T05:14:23.017504",{"slug":962,"name":962,"fn":963,"description":964,"org":965,"tags":966,"stars":905,"repoUrl":906,"updatedAt":971},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[967,968,969,970],{"name":915,"slug":916,"type":15},{"name":900,"slug":901,"type":15},{"name":903,"slug":904,"type":15},{"name":957,"slug":958,"type":15},"2026-07-31T05:54:29.068751",{"slug":973,"name":973,"fn":974,"description":975,"org":976,"tags":977,"stars":905,"repoUrl":906,"updatedAt":982},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[978,979,980,981],{"name":18,"slug":19,"type":15},{"name":900,"slug":901,"type":15},{"name":9,"slug":8,"type":15},{"name":957,"slug":958,"type":15},"2026-07-18T05:14:16.988376",{"slug":984,"name":984,"fn":985,"description":986,"org":987,"tags":988,"stars":905,"repoUrl":906,"updatedAt":997},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[989,990,993,996],{"name":900,"slug":901,"type":15},{"name":991,"slug":992,"type":15},"Computer Vision","computer-vision",{"name":994,"slug":995,"type":15},"Images","images",{"name":957,"slug":958,"type":15},"2026-07-18T05:14:18.007737",{"slug":999,"name":999,"fn":1000,"description":1001,"org":1002,"tags":1003,"stars":905,"repoUrl":906,"updatedAt":1012},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1004,1005,1008,1011],{"name":900,"slug":901,"type":15},{"name":1006,"slug":1007,"type":15},"Configuration","configuration",{"name":1009,"slug":1010,"type":15},"Feature Flags","feature-flags",{"name":922,"slug":923,"type":15},"2026-07-03T16:32:01.278468",{"slug":1014,"name":1014,"fn":1015,"description":1016,"org":1017,"tags":1018,"stars":905,"repoUrl":906,"updatedAt":1031},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1019,1022,1025,1028],{"name":1020,"slug":1021,"type":15},"Cosmos DB","cosmos-db",{"name":1023,"slug":1024,"type":15},"Database","database",{"name":1026,"slug":1027,"type":15},"NoSQL","nosql",{"name":1029,"slug":1030,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1033,"name":1033,"fn":1015,"description":1034,"org":1035,"tags":1036,"stars":905,"repoUrl":906,"updatedAt":1044},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1037,1038,1039,1040,1041],{"name":1020,"slug":1021,"type":15},{"name":1023,"slug":1024,"type":15},{"name":9,"slug":8,"type":15},{"name":1026,"slug":1027,"type":15},{"name":1042,"slug":1043,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1046,"name":1046,"fn":1047,"description":1048,"org":1049,"tags":1050,"stars":905,"repoUrl":906,"updatedAt":1056},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1051,1052,1053,1054,1055],{"name":900,"slug":901,"type":15},{"name":1020,"slug":1021,"type":15},{"name":1023,"slug":1024,"type":15},{"name":922,"slug":923,"type":15},{"name":1026,"slug":1027,"type":15},"2026-05-13T06:14:17.582229",267]