
detect-mode
✓ Official★ 345by microsoft · part of microsoft/skills-for-copilot-studio
Detect a Copilot Studio agent's authentication mode (DirectLine vs M365) by querying Dataverse. Returns the mode and connection details needed to chat.
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
Detect Agent Authentication Mode
Query the Dataverse bots entity to determine whether the agent uses DirectLine (no auth / manual auth) or the Copilot Studio SDK (integrated auth / Entra ID SSO).
Instructions
-
Run the detect-only command:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js --detect-only $ARGUMENTSIf the agent is not at the project root, pass
--agent-dir <path>. -
Parse the JSON output from stdout:
DirectLine mode (authenticationmode 1 or 3)
{ "status": "ok", "mode": "directline", "authenticationmode": 1, "tokenEndpoint": "https://...", "schemaName": "..." }The agent uses no authentication or manual authentication. No user credentials needed. The
tokenEndpointis ready to use with/copilot-studio:chat-directline.M365 mode (authenticationmode 2)
{ "status": "ok", "mode": "m365", "authenticationmode": 2, "schemaName": "..." }The agent uses integrated authentication (Entra ID SSO). An App Registration Client ID is needed for
/copilot-studio:chat-sdk. -
Return the result to the caller. Do not proceed to chat — that is a separate step.
Error Handling
| Error | Cause | Resolution |
|---|---|---|
No agent.mcs.yml found | No agent in workspace | Clone the agent first |
No .mcs/conn.json found | Agent not cloned via VS Code extension | Clone with the extension |
Could not detect authentication mode | No cached Dataverse token | Run a push/pull first to cache tokens, or ask the user about their auth config |
npx skills add https://github.com/microsoft/skills-for-copilot-studio --skill detect-modeRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MIT— you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub →