[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69BVSSESTPDA4Z5WP8WEN01":3,"skill-same:01M69BVSSESTPDA4Z5WP8WEN01":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M69BVSSESTPDA4Z5WP8WEN01","list-connectors",null,"Lists connectors available in the active environment — including whether each is allowed or blocked by your organization's policy — plus the connection-bound data sources already wired into a Microsoft App. Use when discovering connectors and their operations before adding data sources.","microsoft\u002Fmanaged-apps","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69BTSR13CCGCPK40C03N7CN",36,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Flist-connectors\u002FSKILL.md",[],[19,20,21,22,9,23,24,25,26,27,28,29,30,31,32,33],"connectors","list connectors","list","policy","data","Bash","read","environment","operations","use","organization","active","app","sources","connection","2026-11-10 10:12:30",false,"---\nname: list-connectors\ndescription: Lists connectors available in the active environment — including whether each is allowed or blocked by your organization's policy — plus the connection-bound data sources already wired into a Microsoft App. Use when discovering connectors and their operations before adding data sources.\nallowed-tools: Read Bash AskUserQuestion\n---\n\n**? Shared Instructions: [shared-instructions.md](..\u002F..\u002Fshared\u002Fshared-instructions.md)** — Cross-cutting concerns.\n\n# List Connectors\n\nThree read-only views, depending on what the user is asking:\n\n1. **What connectors are available, and which are allowed vs blocked by org policy?** → `ms connector list` (lists every connector in the environment with a `Policy Status` of `Allowed` or `Blocked`).\n2. **What data sources are already bound to *this* app?** → `ms app show --json` (inspects `ms.config.json`).\n3. **What operations does a specific connector expose?** → `ms connector list-actions --connector \u003Cid>`, 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- **available**: list connectors available in the environment and whether each is allowed or blocked by org policy (`ms connector list`).\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: Available connectors + policy status\n\n```bash\nBIN=ms\n$BIN connector list [--search \u003Cterm>]\n```\n\nOutput is a table of connectors with a `Policy Status` column (`Allowed` or `Blocked`) and a\n`Tabular` column. Use it to confirm a connector is available and **not blocked by your\norganization's DLP policy** before planning an `\u002Fadd-*` invocation. Add `--search \u003Cterm>` to\nnarrow a large catalog.\n\n### Step 4b: 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       | `shared_commondataserviceforapps`  | action   | (entire connector)    |\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 4c: 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 table with three columns:\n\n| Column      | Meaning                                                                 |\n| ----------- | ----------------------------------------------------------------------- |\n| `Summary`   | Human-readable description (prefixed `[Deprecated]` where applicable).  |\n| `Behavior`  | `Allow` or `Deny` — whether org DLP policy permits the operation.       |\n| `Action ID` | The operation identifier.                                              |\n\nAllowed actions sort first. Use this to confirm an api-id supports the user's intent before\ninvoking the relevant `\u002Fadd-*` skill.\n\nFor scripting, `--json` returns objects with `id`, `summary`, `behavior`, and `deprecated`:\n\n```bash\n$BIN connector list-actions --connector \u003Capi-id> --json\n```\n\n**These `id` values are exactly what goes into connector-level `allowedActions`** in\n`ms.config.json` when a connection reference is shared. Use only entries whose `behavior` is\n`Allow` — a `Deny` action is already blocked by policy, so listing it grants nothing and\nmisleads whoever reads the config next.\n\nRead the JSON output directly, or filter it if `jq` is available:\n\n```bash\n$BIN connector list-actions --connector \u003Capi-id> --json | jq -r '.[] | select(.behavior == \"Allow\") | .id'\n```\n\n> This applies to **action** connectors only. Tabular data sources take a fixed vocabulary of\n> `\"get\"` \u002F `\"post\"` \u002F `\"patch\"` \u002F `\"delete\"` per table — never operation IDs from this\n> command. See [allowed-actions.md](..\u002F..\u002Fshared\u002Fallowed-actions.md).\n\n---\n\n## When the user wants a connection ID\n\nThe CLI creates or reuses connections **inline** while `ms app add data-source` 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 data-source` 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","**? Shared Instructions: [shared-instructions.md](..\u002F..\u002Fshared\u002Fshared-instructions.md)** — Cross-cutting concerns.\n\n# List Connectors\n\nThree read-only views, depending on what the user is asking:\n\n1. **What connectors are available, and which are allowed vs blocked by org policy?** → `ms connector list` (lists every connector in the environment with a `Policy Status` of `Allowed` or `Blocked`).\n2. **What data sources are already bound to *this* app?** → `ms app show --json` (inspects `ms.config.json`).\n3. **What operations does a specific connector expose?** → `ms connector list-actions --connector \u003Cid>`, 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- **available**: list connectors available in the environment and whether each is allowed or blocked by org policy (`ms connector list`).\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: Available connectors + policy status\n\n```bash\nBIN=ms\n$BIN connector list [--search \u003Cterm>]\n```\n\nOutput is a table of connectors with a `Policy Status` column (`Allowed` or `Blocked`) and a\n`Tabular` column. Use it to confirm a connector is available and **not blocked by your\norganization's DLP policy** before planning an `\u002Fadd-*` invocation. Add `--search \u003Cterm>` to\nnarrow a large catalog.\n\n### Step 4b: 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       | `shared_commondataserviceforapps`  | action   | (entire connector)    |\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 4c: 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 table with three columns:\n\n| Column      | Meaning                                                                 |\n| ----------- | ----------------------------------------------------------------------- |\n| `Summary`   | Human-readable description (prefixed `[Deprecated]` where applicable).  |\n| `Behavior`  | `Allow` or `Deny` — whether org DLP policy permits the operation.       |\n| `Action ID` | The operation identifier.                                              |\n\nAllowed actions sort first. Use this to confirm an api-id supports the user's intent before\ninvoking the relevant `\u002Fadd-*` skill.\n\nFor scripting, `--json` returns objects with `id`, `summary`, `behavior`, and `deprecated`:\n\n```bash\n$BIN connector list-actions --connector \u003Capi-id> --json\n```\n\n**These `id` values are exactly what goes into connector-level `allowedActions`** in\n`ms.config.json` when a connection reference is shared. Use only entries whose `behavior` is\n`Allow` — a `Deny` action is already blocked by policy, so listing it grants nothing and\nmisleads whoever reads the config next.\n\nRead the JSON output directly, or filter it if `jq` is available:\n\n```bash\n$BIN connector list-actions --connector \u003Capi-id> --json | jq -r '.[] | select(.behavior == \"Allow\") | .id'\n```\n\n> This applies to **action** connectors only. Tabular data sources take a fixed vocabulary of\n> `\"get\"` \u002F `\"post\"` \u002F `\"patch\"` \u002F `\"delete\"` per table — never operation IDs from this\n> command. See [allowed-actions.md](..\u002F..\u002Fshared\u002Fallowed-actions.md).\n\n---\n\n## When the user wants a connection ID\n\nThe CLI creates or reuses connections **inline** while `ms app add data-source` 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 data-source` 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",{"name":5,"description":7,"allowed-tools":39},"Read Bash AskUserQuestion","main","5e4bd47de38c9ae0327efb7c0003d250afff31b6","plugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Flist-connectors",11,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-06 04:02:23",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add microsoft\u002Fmanaged-apps --skill list-connectors",{"tool":56,"command":57},"bunx","bunx skills add microsoft\u002Fmanaged-apps --skill list-connectors",{"tool":59,"command":60},"pnpm","pnpm dlx skills add microsoft\u002Fmanaged-apps --skill list-connectors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Flist-connectors\u002FSKILL.md",true,[],[65,87,101,117,134,145],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":34},"01M69BW0D2HDW3YFJJX4QEYJF2","state","Store and query a Microsoft Managed App's built-in state and file attachments with `ms project state` CLI schema commands and generated TypeScript clients. First, with the user signed in to the CLI, run `ms feature status --name state --json`; if `feature.enabled` is not `true`, recommend an alternative connector or data source.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Fstate\u002FSKILL.md",[],[67,72,73,74,75,31,76,77,78,79,24,80,25,81,82,83,84,23,85,86],"status","cli","run","typescript","ms","project","generated","query","Connector","write","edit","recommend","commands","source","feature",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":34},"01M69BVYVZ0YYRMDY1WPVJ98VV","share","Shares (or unshares) a Microsoft App with users via `ms app share` \u002F `ms app unshare`. Use when updating app access control.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Fshare\u002FSKILL.md",[],[89,9,31,94,76,28,95,24,96,97,98,99,25,100],"Access Control","access","users","with","control","via","grep",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":34},"01M69BVX6TTS1A17ZA2BDP13KP","share-link","Manages tenant-wide share links for a Microsoft App via `ms app share link create`, `ms app share link list`, and `ms app share link revoke`. Use when you want to distribute app access via a URL instead of named principals.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Fshare-link\u002FSKILL.md",[],[108,89,109,110,9,31,111,76,112,28,95,113,114,24,99,115,25,100,116,21],"share link","link","create","links","for","URL","you","distribute","wide",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":34},"01M69BVVFK3WFDMJW2R5CYCRD4","play","Opens a Microsoft App in the browser via `ms app play`. Use when opening the live deployed version or a cloud-hosted preview (main branch or specific commit SHA) without starting a local dev server.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Fplay\u002FSKILL.md",[],[119,124,125,9,126,31,127,76,128,40,28,129,24,130,131,132,133,99,25,100],"dev","commit","local dev","branch","local","version","preview","local dev server","browser","server",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":34},"01M69BVRDCYENNS8XXM1E5RBYQ","list-apps","Discovers managed apps in the active environment via `ms app list --json` and optional `ms app show --json`. Use when listing or locating apps.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Flist-apps\u002FSKILL.md",[],[141,142,21,31,143,76,26,28,24,99,30,144,25,100],"list apps","apps","show","json",{"skillNo":146,"name":124,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":34},"01M69BVPVP9SPEY44ZG7PBDPQF","Runs a Microsoft App locally with hot reload via `ms app dev`. Use when starting or restarting local development and surfacing the App Player URL.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmanaged-apps\u002Fblob\u002Fmain\u002Fplugins\u002Fmicrosoft-managed-apps\u002Fskills\u002Fdev\u002FSKILL.md",[],[124,151,9,31,76,152,153,128,28,113,24,97,99,25,100],"development","local development","player"]