list-connectors
Skill34 starsChanged 4 months agoMITView on GitHub
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.
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 27
Read memory-bank.md for the app's environment, if recorded.
- Very specific: line 71
Use this to spot drift (e.g., ms.config.json claims a data source that no longer exists in the env).
- Very specific: line 110
Read the JSON output directly, or filter it if jq is available:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
📋 Shared Instructions: shared-instructions.md — Cross-cutting concerns.
List Connectors
Three read-only views, depending on what the user is asking:
- What connectors are available, and which are allowed vs blocked by org policy? →
ms connector list(lists every connector in the environment with aPolicy StatusofAllowedorBlocked). - What data sources are already bound to this app? →
ms app show --json(inspectsms.config.json). - What operations does a specific connector expose? →
ms connector list-actions --connector <id>, or browse the public reference for available api-ids.
Workflow
- Memory Bank → 2. Verify Env → 3. Mode → 4. Run + Present
Step 1: Check Memory Bank
Read memory-bank.md for the app's environment, if recorded. This is for context/verification only (confirming you're working against the expected app/environment) — ms app show --json and ms connector list-actions don't take environment targeting from it and the listing isn't scoped by it.
Step 2: Verify Env
BIN=ms
$BIN auth status # confirm the active UPNStep 3: Mode
Ask (or infer):
- available: list connectors available in the environment and whether each is allowed or blocked by org policy (
ms connector list). - app: enumerate data sources already wired into the current project (requires
ms.config.jsonin cwd). - connector: list the operations exposed by a specific connector — useful when planning an
/add-*invocation.
Step 4a: Available connectors + policy status
BIN=ms
$BIN connector list [--search <term>]Output is a table of connectors with a Policy Status column (Allowed or Blocked) and a
Tabular column. Use it to confirm a connector is available and not blocked by your
organization's DLP policy before planning an /add-* invocation. Add --search <term> to
narrow a large catalog.
Step 4b: App-bound data sources
test -f ms.config.json || { echo "Not in a Microsoft App workspace."; exit 1; }
$BIN app show --jsonParse the response for the data-source list and print a summary:
| Connector | api-id | Type | Name |
| Dataverse | dataverse | table | contact |
| SharePoint Online | shared_sharepointonline | table | Project Milestones |
| Teams | shared_teams | action | (entire connector) |
Use this to spot drift (e.g., ms.config.json claims a data source that no longer exists in the env).
Step 4c: Discover operations on a connector
The CLI prompts for / creates connections inline when an /add-* skill runs, so users rarely need to look up connection IDs ahead of time. The more useful query is "what can this connector do?":
$BIN connector list-actions --connector <api-id> [--search <term>]Examples:
$BIN connector list-actions --connector shared_office365 --search Mail
$BIN connector list-actions --connector shared_sharepointonline --search GetItemsOutput is a table with three columns:
| Column | Meaning |
Summary | Human-readable description (prefixed [Deprecated] where applicable). |
Behavior | Allow or Deny — whether org DLP policy permits the operation. |
Action ID | The operation identifier. |
Allowed actions sort first. Use this to confirm an api-id supports the user's intent before
invoking the relevant /add-* skill.
For scripting, --json returns objects with id, summary, behavior, and deprecated:
$BIN connector list-actions --connector <api-id> --jsonThese id values are exactly what goes into connector-level allowedActions in
ms.config.json when a connection reference is shared. Use only entries whose behavior is
Allow — a Deny action is already blocked by policy, so listing it grants nothing and
misleads whoever reads the config next.
Read the JSON output directly, or filter it if jq is available:
$BIN connector list-actions --connector <api-id> --json | jq -r '.[] | select(.behavior == "Allow") | .id'This applies to action connectors only. Tabular data sources take a fixed vocabulary of
"get"/"post"/"patch"/"delete"per table — never operation IDs from this command. See allowed-actions.md.
When the user wants a connection ID
The CLI creates or reuses connections inline while ms app add data-source runs — you don't
need a connection ID to start an /add-* skill. Two cases need a bit more care:
--non-interactive: the CLI can't open a browser or run the SSO flow, so it can't create a connection. It expects--connection-id. If you omit it, the CLI first prints the available connections for that connector (Display Name + Connection ID) and then errors — copy a Connection ID from that table, or discover one viams app show --json(connections already bound to the app). If no connection exists yet, run the command once in interactive mode (omit--non-interactive) so the CLI creates it inline, then reuse the printed Connection ID for subsequent scripted runs.- SQL (
shared_sql): each SQL connection points at a different database, so when scripting non-interactively pass the--connection-idfor the right database explicitly.
To create a connection that doesn't exist yet, just run ms app add data-source interactively:
the CLI handles consent + sign-in (silent SSO, or a browser dialog), creates the connection,
prints its Connection ID, and binds it — no maker portal needed.
In this repository23 other files it gives its agents.
- github-actions/AGENTS.mdAGENTS.md
- plugins/microsoft-managed-apps/AGENTS.mdAGENTS.md
- add-azuredevopsSkill
- add-backendSkill
- add-data-sourceSkill
- add-dataverseSkill
- add-excelSkill
- add-mcscopilotSkill
- add-office365Skill
- add-office365-usersSkill
- add-onedriveSkill
- add-sharepointSkill
- add-teamsSkill
- add-workiqSkill
- create-appSkill
- delete-appSkill
- deploySkill
- devSkill
- list-appsSkill
- playSkill
- share-linkSkill
- shareSkill
- stateSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

