Skip to content
AI & Agents
Skill

/detect-mode

Detect a Copilot Studio agent's authentication mode (DirectLine vs M365) by querying Dataverse. Returns the mode and connection details needed to chat.

BOOST
From plugin
copilot-studio
46931 skills4 agents1 hook
Install
$ npx -y skills add microsoft/skills-for-copilot-studio --skill detect-mode --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/detect-mode

Context preview

The summary Claude sees to decide when to auto-load this skill.

Detect a Copilot Studio agent's authentication mode (DirectLine vs M365) by querying Dataverse. Returns the mode and connection details needed to chat.

SKILL.md

detect-mode.SKILL.md
user-invocable: false
description: Detect a Copilot Studio agent's authentication mode (DirectLine vs M365) by querying Dataverse. Returns the mode and connection details needed to chat.
argument-hint: [--agent-dir <path>]
allowed-tools: Bash(node *chat-with-agent.bundle.js --detect-only *), Read, Glob
agent: copilot-studio-test

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

1. Run the detect-only command:

   node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js --detect-only $ARGUMENTS

If the agent is not at the project root, pass `--agent-dir <path>`.

2. 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 `tokenEndpoint` is 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`.

3. 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 |

Read more
Ships withcopilot-studio

A plugin for Claude Code, GitHub Copilot CLI, and VS Code that enables authoring, testing, and troubleshooting Microsoft Copilot Studio STANDARD agents through YAML files — directly from your terminal or editor.

Get the whole plugin

Other skills on copilot-studio.