Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Copilot Studio MCP

NPM · COPILOT-STUDIO-MCP · SCANNED SEP 20

Build, test, ship and maintain Microsoft Copilot Studio agents from the editor

Available components

+4 this week 72 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 60 of 157 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 34022 tokens (~239/item across 142 items; 142 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 85% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 16 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "cs_logout" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 143 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Copilot Studio MCP server?

Copilot Studio MCP runs locally as an npm package, launched with npx -y copilot-studio-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · copilot-studio-mcp

# add to Claude Code
claude mcp add jgt87-copilot-studio-mcp -- npx -y copilot-studio-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "jgt87-copilot-studio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "copilot-studio-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "jgt87-copilot-studio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "copilot-studio-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add jgt87-copilot-studio-mcp -- npx -y copilot-studio-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jgt87-copilot-studio-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "copilot-studio-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jgt87-copilot-studio-mcp --command npx --arg -y --arg copilot-studio-mcp
# ~/.hermes/config.yaml
mcp_servers:
  jgt87-copilot-studio-mcp:
    command: "npx"
    args: ["-y", "copilot-studio-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "jgt87-copilot-studio-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "copilot-studio-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add jgt87-copilot-studio-mcp -t stdio -c npx -a -y copilot-studio-mcp
// mcp.json
{
  "mcpServers": {
    "jgt87-copilot-studio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "copilot-studio-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 16 Sept 26 +1
    • Security disclosure: fail → unverified functional
  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 −13
    • Malware scan: pass → unverified security
    • Tool safety: pass → unverified security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Stability: unverified → 0.10 functional
    • Package version: 0.1.6 → 0.1.7 functional
  • 13 Sept 26 +15
    • Malware scan: unverified → pass security
  • 11 Sept 26 53

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/copilot-studio-mcp@0.1.7

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 157 packages
Packages resolved 157
Deprecated 1
Stale 59
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 142 exposed · ~33,335 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cs_bind_flow_connection ~401

Point one of a flow's connection references at a real connection, which is the step that lets a flow be switched on. Picks the reference and the connection for you when there is only one of each, and asks when there is a choice. Handles both shapes: a flow that names a connection directly is edited in place, while a flow that came from a solution has its connectionreference row bound instead. Pass activate: true to turn the flow on in the same call once it is bound. Changes a live environment: requires confirm: true.

NameTypeReqDescription
activatebooleanTurn the flow on after binding; default false
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
connectionIdstringThe connection to bind (its name from cs_list_connections); default: the only usable one for this connector
connectorstringConnector id, e.g. shared_office365, to choose the reference by connector instead
dataverseUrlstringDataverse URL; default: from the workspace or the environment
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow (workflow) id (cs_list_flows)
referencestringWhich connection reference to bind; only needed when the flow has more than one
searchstringNarrow the candidate connections by display name or owner
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_block_org_agent ~291

Block an agent so nobody in the organisation can use it, or lift an existing block. This is a governance action across the whole tenant, not a deployment one: it does not unpublish or delete the agent, and it affects every user at once. Changes a live tenant: requires confirm: true. Needs the CopilotPackages.ReadWrite.All permission and runs against Graph beta, the only version that exposes it (cs_login scope 'graph_write'). Needs a Microsoft Agent 365 licence and is global-cloud only. Unverified against a live tenant.

NameTypeReqDescription
blockedbooleanyestrue blocks the agent for everyone, false lifts the block
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
idstringyesPackage id from cs_list_org_agents, e.g. P_19ae1zz1-56bc-505a-3d42-156df75a4xxy
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_build_flow_definition ~250

Compose a Power Automate cloud flow definition from a step spec, without touching any environment: a trigger (agent-callable by default, or manual, HTTP, schedule or a connector trigger) plus steps (connector operations, HTTP calls, conditions, loops, scopes, variables, compose, terminate, response, or raw JSON). Steps run in order. Returns the definition, the connection references it needs and any notes, and can write it to a file. Feed the same spec to cs_create_flow to create the flow, or cs_update_flow to replace an existing one. Use cs_list_connectors and cs_describe_connector to find connector ids, operation ids and their parameters first.

NameTypeReqDescription
connectionReferencePrefixstringPrefix for generated connection reference names, usually your publisher prefix
descriptionstring
namestringyes
outputFilestringWrite the definition JSON here as well
outputsarrayWhat the flow answers with (agent-callable and HTTP flows)
stepsarraySteps in order; each waits for the previous one to succeed
triggerDefault: 'agent' (When an agent calls the flow)

No output schema declared.

No examples provided.

cs_chat ~358

Send one utterance to the published agent and return its replies (and raw activities). Use conversationId to continue. If the agent answers with a sign-in card, signInUrl is returned.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, then poll cs_job_status. MCP clients cut a tool call off after about 60 seconds; this operation can take much longer, and without this the work i…
botIdstringAgent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID.
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
conversationIdstringContinue an earlier conversation from cs_chat
dataverseUrlstring
directLineSecretstring
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
maxMsnumberHow long to wait for replies, ms (default 25000, kept under the client call budget)
schemaNamestring
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
tokenEndpointstringExplicit DirectLine token endpoint
transportstringauto detects the agent's authentication mode via Dataverse; directline for no-auth/manual-auth agents; sdk for Entra SSO agents
utterancestringyes
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_check_drift ~274

Find changes made directly in Copilot Studio after the workspace was last cloned, pulled or pushed. mode 'quick' (default) reads the agent's component rows from Dataverse and compares them with the sync stamp: which topics, tools and knowledge sources changed, by whom, when, whether the agent settings changed and whether there are unpublished changes; needs a cached cs_login, no pac. mode 'full' runs pac copilot clone into a temporary folder and classifies every file as local-modified, remote-modified or both (conflict) against the stamp, with unified diffs. Both are read-only. Resolve drift with cs_pull (three-way merge), then commit.

NameTypeReqDescription
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
includeDiffsbooleanfull: include unified diffs (default true)
keepClonebooleanfull: keep the temporary clone and return its path
modestring
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_check_solution ~386

Analyse solution zip files with the Power Apps Checker service (Solution Checker or AppSource Certification rule set) and write the results locally. Use as a quality gate before cs_deploy_solution. Runs 'pac solution check' with the active pac auth profile. Mutates a live environment: requires confirm: true (a dry run otherwise). Only some inputs mutate; see the parameter descriptions.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
clearCachebooleanClear the tenant's checker enforcement cache
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
excludedFilesarrayFiles to exclude from the analysis
geostringChecker service geography
outputDirectorystringWhere to write the results
pathstringSolution zip file(s); glob allowed
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
ruleLevelOverridestringJSON file with rule level overrides
ruleSetstring'Solution Checker' (default), 'AppSource Certification' or a rule set id
saveResultsbooleanStore the results in the environment (Solution Health Hub)
solutionUrlstringSAS URL of a solution zip instead of path
timeoutSecondsnumberDefault 1800

No output schema declared.

No examples provided.

cs_clone_agent ~134

pac copilot clone: download an existing agent into a sync-connected workspace (a subfolder named after the agent under outputDir). Needs a pac auth profile. Records a sync stamp (.mcs/cs-sync.json) that cs_check_drift and the cs_push preflight compare against.

NameTypeReqDescription
botstringAgent id (GUID) or schema name; omit to be shown the agents in the environment
componentCollectionsarray
displayNamestringFolder name override
environmentstringEnvironment id or URL; default active profile
outputDirstring

No output schema declared.

No examples provided.

cs_clone_solution ~298

Export a solution from the environment and unpack it into a solution project folder (source-control layout). Read-only for the environment. Runs 'pac solution clone' with the active pac auth profile.

NameTypeReqDescription
asyncbooleanRun the operation asynchronously
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
includestringSettings to include in the export (pac solution export --include values)
localizebooleanExtract string resources into .resx files
mapstringMapping XML file for component folders
maxAsyncWaitTimenumberMax asynchronous wait time in minutes (default 60)
namestringyesSolution unique name
outputDirectorystringOutput directory
packageTypestringUnmanaged, Managed or Both (default Both)
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 3600

No output schema declared.

No examples provided.

cs_compare_environments ~248

Snapshot every environment in an ordered chain (e.g. DEV, TEST, ACC, PROD) and compare each adjacent pair. Returns one report per pair plus the first stage where drift appears. Snapshots go to <dir>/<label>, reports to <dir>/reports.

NameTypeReqDescription
agentsarrayAgent schema names or ids to clone; default: every agent pac copilot list returns
chainarrayyes
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
dirstringyes
failOnDriftboolean
includeDataversebooleanDefault true: flows, connection references, environment variables and publish state via Dataverse (needs cs_login; skipped silently otherwise)
includeDiffsboolean
maxAgentsnumberDefault 20
solutionstringSolution unique name to record version/managed state for
strictVariablesboolean
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.

No output schema declared.

No examples provided.

cs_compare_flow_runs ~321

Diff a failed run against a successful one to separate a data problem from a logic problem. Names the action where the two runs part company, lists every action whose status differs, and flags actions present in one run but not the other, which means the definition changed between them. With compareTriggerData it also reports which top-level keys of the trigger payload differ (key names only, never the values). The baseline defaults to the most recent successful run. Read-only. Uses the Power Automate service (cs_login scope 'flow'). Unverified against a live tenant.

NameTypeReqDescription
baselineRunIdstringRun to compare against; default the most recent successful one
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
compareTriggerDatabooleanAlso compare what the trigger handed each run
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow id (cs_list_flows)
runIdstringyesThe failed run (cs_list_flow_runs)
searchRunsnumberHow far back to look for a successful baseline; default 50
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_compare_snapshots ~181

Offline diff of two snapshot folders: solution version, per-agent YAML differences (noise such as ids, audit info and connection ids removed), flows, connection references, environment variables, unpublished changes. Writes <reportDir>/<a>-vs-<b>.md and .json. failOnDrift returns an error result when drift is found (for pipeline gates).

NameTypeReqDescription
astringyesSnapshot folder (earlier stage, e.g. DEV)
bstringyesSnapshot folder (later stage, e.g. TEST)
failOnDriftboolean
ignoredKeysarray
includeDiffsbooleanDefault true: unified diffs in the report
reportDirstringDefault: parent of b
strictVariablesbooleanTreat differing environment variable values as drift

No output schema declared.

No examples provided.

cs_create_agent ~408

pac copilot init: create a new agent workspace on disk. Without 'environment' it is a local scaffold (no sign-in). With 'environment' it also creates the live agent and connects the workspace (needs pac auth profile and confirm: true). With 'solutionName' the agent is created inside that solution (existing unmanaged solution, or a new one with createSolution: true) via init, pack, import and clone; without it, pac puts the agent in a solution named after the agent. authoringMode 'classic' is the standard harness (topics, evaluations); 'cli-copilot' is the GitHub Copilot harness.

NameTypeReqDescription
authoringModestring
backgroundbooleanRun in the background and return a jobId immediately, then poll cs_job_status. MCP clients cut a tool call off after about 60 seconds; this operation can take much longer, and without this the work i…
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
createSolutionbooleanCreate solutionName if it does not exist
environmentstringEnvironment id or URL to bootstrap into (creates a live agent)
instructionsstring
namestringyesAgent display name
projectDirstringFolder for the agent's files, new or empty. Omit it to be offered one named after the agent.
publisherPrefixstringPublisher prefix, 2-8 lowercase letters or digits: it becomes part of every component's schema name and must match the publisher of the solution the agent lands in. Omit it to be shown the publishers…
schemaNamestring
solutionNamestringUnique name of the solution to create the agent in (requires environment)
templatestringclassic only

No output schema declared.

No examples provided.

cs_create_agent_from_template ~289

Create a new agent in a solution from a template produced by cs_extract_agent_template. Runs 'pac copilot create' with the active pac auth profile. Mutates a live environment: requires confirm: true (a dry run otherwise).

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
cwdstringWorking directory for pac (for project commands: the solution project folder)
displayNamestringyesDisplay name of the new agent
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
schemaNamestringyesSchema (unique) name of the new agent, e.g. contoso_HelpDesk
solutionstringyesUnique name of the solution to create the agent in
templateFilestringyesTemplate YAML from cs_extract_agent_template
timeoutSecondsnumberDefault 900

No output schema declared.

No examples provided.

cs_create_auth_profile ~519

Create a pac authentication profile. Non-interactive: service principal (applicationId + clientSecret + tenant), certificate, managed identity, or GitHub / Azure DevOps federation. Interactive (a person signing in, which is the usual way to add an admin account): pass name, environment and background: true - pac opens its own browser, the call returns a jobId at once, and cs_job_status reports when the profile exists. Without background this blocks until the sign-in finishes and the client will usually give up first. Device code needs a terminal: this server gives pac no stdin. Runs 'pac auth create' with the active pac auth profile.

NameTypeReqDescription
applicationIdstringApp registration (client) id
azureDevOpsFederatedbooleanAzure DevOps federated credential (needs tenant and applicationId)
backgroundbooleanRun in the background and return a jobId immediately. Use this for interactive sign-in: pac opens a browser and waits, which would otherwise outlive the client's call timeout. Poll cs_job_status.
certificateDiskPathstringCertificate file for certificate auth
certificatePasswordstringCertificate password (masked in logs) (masked in logs and results)
clientSecretstringClient secret (masked in logs) (masked in logs and results)
cloudstringCloud instance (Public, UsGov, UsGovHigh, UsGovDod, China)
cwdstringWorking directory for pac (for project commands: the solution project folder)
deviceCodebooleanUse the device-code flow for interactive sign-in (blocks until done)
environmentstringDefault environment for the profile (id, URL, unique or partial name)
githubFederatedbooleanGitHub federated credential (needs tenant and applicationId)
managedIdentitybooleanUse the default Azure identity
namestringProfile name (max 30 characters)
passwordstringPassword (masked in logs) (masked in logs and results)
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
tenantstringTenant id (required with applicationId)
timeoutSecondsnumberDefault 600
usernamestringUser name for username/password auth (not recommended)

No output schema declared.

No examples provided.

cs_create_connection ~324

Create a Dataverse connection that authenticates with an app registration (application id + client secret) so flows and tools owned by a pipeline do not depend on a person. This is the only connection kind pac can create; connector connections (SharePoint, Outlook, MCP servers ...) are still authorised in the portal. Runs 'pac connection create' with the active pac auth profile. Mutates a live environment: requires confirm: true (a dry run otherwise).

NameTypeReqDescription
applicationIdstringyesApp registration (client) id
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
clientSecretstringyesClient secret; prefer a secret from a vault, it is masked in logs (masked in logs and results)
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
namestringyesConnection display name
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
tenantIdstringyesEntra tenant id
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_create_deployment_settings ~192

pac solution create-settings: the JSON that maps every connection reference (to a connection id in the target environment) and environment variable (to a target value). Pass connectionReferences / environmentVariables to fill values; the result lists what is still unmapped.

NameTypeReqDescription
connectionReferencesobjectlogicalName -> connectionId in the target environment
copilotAgentsobjectagent schema name -> Entra security group id allowed to use the agent in the target
environmentVariablesobjectschemaName -> value for the target
regeneratebooleanRecreate the file even if it exists (mappings are lost)
settingsFilestringDefault <solutionDir>/deployment-settings.json or next to the zip
solutionDirstringDirectory written by cs_pull_solution
zipstringSolution zip (or use solutionDir from cs_pull_solution)

No output schema declared.

No examples provided.

cs_create_flow ~459

Create a new Power Automate cloud flow, from a step spec (see cs_build_flow_definition: trigger plus connector, HTTP, condition, loop, variable and response steps) or from a ready-made definition, optionally straight into a solution. The flow is created switched off, because a flow can only be activated once its connection references are bound: bind them, then cs_set_flow_state on. To let an agent call it, use a trigger of type Request/kind Skills and add it as a tool with cs_add_tool type 'flow'. Changes a live environment: requires confirm: true.

NameTypeReqDescription
clientDataobjectThe whole clientdata document, when you have one (from cs_get_flow of another flow, for example)
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
connectionReferencePrefixstringPrefix for generated connection reference names, usually your publisher prefix
connectionReferencesobjectproperties.connectionReferences, when you pass a definition rather than steps
dataverseUrlstringDataverse URL; default: from the workspace or the environment
definitionobjectA ready-made Power Automate definition, instead of steps
descriptionstring
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
namestringyesFlow display name
outputsarrayWhat the flow answers with (agent-callable and HTTP flows)
solutionstringUnique name of the solution to create it in
stepsarraySteps in order; each waits for the previous one to succeed
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
triggerDefault: 'agent' (When an agent calls the flow)
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_create_solution ~179

Create a new unmanaged solution (and its publisher if missing) in an environment by packing an empty solution manifest and importing it with pac. Use it to prepare the container before cs_create_agent with solutionName. Requires confirm: true.

NameTypeReqDescription
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
displayNamestring
environmentstringEnvironment id or URL. Defaults to the active pac auth profile.
publisherNamestring
publisherPrefixstringyes2-8 lowercase characters, e.g. contoso
uniqueNamestringyese.g. contoso_Agents
workDirstringWhere the manifest and zip are written (default <workspace>/.cs-solutions/<uniqueName>)

No output schema declared.

No examples provided.

cs_create_test_set_csv ~144

Write the CSV the portal's Evaluation page imports (columns Question, Expected response; max 100 cases). Test sets cannot be created through the API, so this file is imported once in the portal; runs and results are then automated via cs_run_evaluation. suggestFromWorkspace derives cases from topics, starters and knowledge.

NameTypeReqDescription
casesarray
maxSuggestednumber
outputPathstringDefault <workspace>/../<agent>-testset.csv
suggestFromWorkspaceboolean
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_delete_agent ~84

pac copilot delete: permanently delete an agent from the environment. Requires confirm: true.

NameTypeReqDescription
botstringyesAgent id or schema name
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
environmentstringEnvironment id or URL. Defaults to the active pac auth profile.

No output schema declared.

No examples provided.

cs_delete_auth_profile ~167

Remove a pac auth profile by index or name (local credential store only). Runs 'pac auth delete' with the active pac auth profile.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstringWorking directory for pac (for project commands: the solution project folder)
indexnumberProfile index
namestringProfile name
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_delete_connection ~229

Delete a connection by id. Flows and tools bound to it stop working until rebound. Runs 'pac connection delete' with the active pac auth profile. Mutates a live environment: requires confirm: true (a dry run otherwise).

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
connectionIdstringyesConnection id (cs_list_connections)
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_delete_flow ~270

Remove a cloud flow from the environment for good. Read it with cs_get_flow first: any agent tool that calls this flow will be left pointing at nothing, and a flow that is still switched on has to be turned off with cs_set_flow_state before Dataverse will delete it. A managed flow cannot be deleted this way; uninstall the solution it came in. Changes a live environment and cannot be undone: requires confirm: true.

NameTypeReqDescription
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
dataverseUrlstringDataverse URL; default: from the workspace or the environment
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow (workflow) id (cs_list_flows)
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_delete_solution ~97

pac solution delete: delete an unmanaged solution container (its components stay in the environment) or uninstall a managed one (its components are removed). Requires confirm: true.

NameTypeReqDescription
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
environmentstringEnvironment id or URL. Defaults to the active pac auth profile.
namestringyesSolution unique name

No output schema declared.

No examples provided.

cs_deploy_pipeline ~298

Start a pipeline deployment of a solution to a stage (the alternative to cs_deploy_solution when the tenant uses Power Platform pipelines). stageId comes from cs_list_pipelines. Runs 'pac pipeline deploy' with the active pac auth profile. Mutates a live environment: requires confirm: true (a dry run otherwise).

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
currentVersionstringyesCurrent solution version
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
newVersionstringyesVersion to deploy as
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
solutionNamestringyesSolution unique name
stageIdstringyesDeployment stage id (cs_list_pipelines with pipeline)
timeoutSecondsnumberDefault 3600
waitbooleanWait until the deployment finishes

No output schema declared.

No examples provided.

cs_deploy_solution ~253

pac solution import into the target environment using the deployment settings file, then publish every Copilot Studio agent from the solution. Source: a zip, or a solutionDir from cs_pull_solution (managed zip preferred when present unless unmanaged: true), or an unpacked srcFolder (packed first). Blocks when connection references or environment variables are unmapped unless allowUnmapped. Requires confirm: true.

NameTypeReqDescription
allowUnmappedboolean
confirmbooleanRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
forceOverwriteboolean
maxAsyncWaitMinutesnumber
publishAgentsbooleanDefault true: pac copilot publish for each agent after import
settingsFilestring
skipLowerVersionboolean
solutionDirstring
srcFolderstringUnpacked solution folder to pack and deploy
stageAndUpgradeboolean
targetEnvironmentstringyesEnvironment id or URL to deploy into
unmanagedbooleanWith solutionDir: deploy the unmanaged zip instead of the managed one
zipstring

No output schema declared.

No examples provided.

cs_describe_connector ~236

Fetch (or read from cache) a connector's OpenAPI definition and list its operations with operationId, parameters (required, type, description) and response fields; marks MCP-capable connectors (x-ms-agentic-protocol). Exactly what cs_add_tool needs. Cached under .cs-catalog/<environment>/connectors/<name>.json and used by cs_validate.

NameTypeReqDescription
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
connectorstringyesshared_<name> or a display name
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
includeInternalboolean
operationstringFilter operations by id or summary
refreshboolean
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_describe_solution ~121

Export a solution (unmanaged, async) and unpack it locally, then inventory everything inside: agents (with harness and component counts), bot components by kind, cloud flows, connection references, environment variables, custom connectors, other component folders. Read-only for the environment.

NameTypeReqDescription
environmentstringEnvironment id or URL. Defaults to the active pac auth profile.
namestringyesSolution unique name
workDirstringWhere to put the export and unpacked source (default <workspace>/.cs-solutions/<name>)

No output schema declared.

No examples provided.

cs_describe_workspace ~69

Inventory of an agent workspace: settings, instructions, topics (with trigger phrases), knowledge sources, tools, flows, triggers, variables, connection references, sync metadata.

NameTypeReqDescription
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_edit_knowledge ~204

Change a knowledge source file: name, description, site URL, includeSubPages, trigger condition (null removes it), additional search terms. The first call changes nothing: it returns the files it would write, as a diff against what is there now, for the user to approve. Call it again with the same arguments plus confirm: true to write them.

NameTypeReqDescription
additionalSearchTermsstring|null
confirmbooleanRequired to write the change to the file. Without it the tool returns a preview - the changed lines against the current ones, and the character count - and writes nothing.
descriptionstring
includeSubPagesboolean
knowledgestringyes
renamestring
sitestring
triggerConditionstring|null
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_edit_tool ~272

Change an existing tool file: name, description, modelDescription / modelDisplayName (what the orchestrator routes on), operationId, connection mode or reference, output mode, and inputs (set / add / remove). Validates afterwards. The first call changes nothing: it returns the files it would write, as a diff against what is there now, for the user to approve. Call it again with the same arguments plus confirm: true to write them.

NameTypeReqDescription
addInputsarray
confirmbooleanRequired to write the change to the file. Without it the tool returns a preview - the changed lines against the current ones, and the character count - and writes nothing.
connectionModestring
connectionReferencestring
descriptionstring
modelDescriptionstring
modelDisplayNamestring
operationIdstring
outputModestring
removeInputsarraypropertyNames to drop
renamestring
setInputsarray
toolstringyesTool name, file stem or path
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_edit_topic ~281

Change an existing topic in place, keeping its comment header: rename, description, trigger phrases (set / add / remove), priority, append or insert nodes (same node spec as cs_add_topic), remove top-level nodes by id. Validates the file afterwards. The first call changes nothing: it returns the files it would write, as a diff against what is there now, for the user to approve. Call it again with the same arguments plus confirm: true to write them.

NameTypeReqDescription
addTriggerPhrasesarray
appendActionsarray
confirmbooleanRequired to write the change to the file. Without it the tool returns a preview - the changed lines against the current ones, and the character count - and writes nothing.
descriptionstring
insertActionsobject
prioritynumber|nullnull removes the priority
removeActionIdsarrayids of top-level nodes (see cs_describe_workspace or the file)
removeTriggerPhrasesarray
renamestring
setTriggerPhrasesarray
topicstringyesTopic name, file stem or path
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_env_fetch ~211

Run a FetchXML query against Dataverse through pac (read-only), e.g. to inspect bot or botcomponent rows without an MSAL sign-in. Runs 'pac env fetch' with the active pac auth profile.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 600
xmlstringFetchXML query text
xmlFilestringFile containing the FetchXML query

No output schema declared.

No examples provided.

cs_env_list ~173

Environments visible to the active pac auth profile. The pac-based alternative to cs_list_environments, which needs a cs_login. Runs 'pac env list' with the active pac auth profile.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstringWorking directory for pac (for project commands: the solution project folder)
filterstringOnly environments whose name contains this text
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_env_select ~165

Set the environment that pac commands use when none is passed (local profile setting). Runs 'pac env select' with the active pac auth profile.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringyesEnvironment id, URL, unique or partial name
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_env_who ~171

Organisation id, URL, version and the signed-in user for an environment. Runs 'pac env who' with the active pac auth profile.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_explain_flow_run ~317

Why one run of a cloud flow failed, in terms of the action that broke and what it was given. For each failed action it resolves the real error message - a failed connector action carries no error of its own, so the message is fetched from the action's outputs - classifies the failure as a connector, expression or timeout problem, and returns the inputs it was called with plus the outputs of the actions that ran just before it. Read-only. Start here when cs_list_flow_runs shows a failure. Uses the Power Automate service (cs_login scope 'flow'). Unverified against a live tenant.

NameTypeReqDescription
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow id (cs_list_flows)
includeInputsbooleanFetch each failed action's inputs as well; default true
runIdstringyesRun id (cs_list_flow_runs)
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
upstreamCountnumberSucceeded actions to include with their outputs, ending at the first failure; default 3
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_extract_agent_template ~264

Write a reusable YAML template from an existing agent (its topics, settings and components), for cs_create_agent_from_template in another environment or solution. Runs 'pac copilot extract-template' with the active pac auth profile.

NameTypeReqDescription
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
botstringyesAgent id or schema name
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
overwritebooleanOverwrite the file if it exists
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
templateFilestringyesPath of the YAML template to write
templateNamestringTemplate name (default kickStartTemplate)
templateVersionstringTemplate version X.Y.Z (default 1.0.0)
timeoutSecondsnumberDefault 600

No output schema declared.

No examples provided.

cs_extract_translations ~278

Export the localisable strings of one or all agents as .resx or .json files, from the environment or from an unpacked solution folder. Runs 'pac copilot extract-translation' with the active pac auth profile.

NameTypeReqDescription
allbooleanWrite files for every supported language, not only the primary one
backgroundbooleanRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
botstringAgent id or schema name; omit for every agent
cwdstringWorking directory for pac (for project commands: the solution project folder)
environmentstringEnvironment id or URL; default: the environment of the active pac auth profile
formatstringresx (default) or json
outDirstringOutput directory
overwritebooleanOverwrite existing files
profilestringpac auth profile to run as: the admin account for tenant commands. Defaults to CPS_ADMIN_PROFILE for admin commands and CPS_PAC_PROFILE otherwise, then the active profile. cs_init lists the profiles.
sourceDirstringUnpacked solution folder to read instead of the environment
timeoutSecondsnumberDefault 900

No output schema declared.

No examples provided.

cs_generate_instructions ~390

Write the agent's instructions for it - the system prompt that decides how it answers. Builds a brief from purpose, audience, tone, capabilities, boundaries and examples, send it to an AI Builder prompt or model (pac copilot model predict; pick one with cs_list_prompts), and return the generated instructions. With apply: true the text is written into the agent's instructions (agent.mcs.yml, or settings.mcs.yml for cli-copilot), and only with confirm: true as well - without it the generated text comes back with the change it would make and the character count, and nothing is written. Pass currentInstructions/changeRequest (or refine: true to read the workspace) to revise existing instructions instead.

NameTypeReqDescription
applybooleanWrite the result into the agent instructions (needs confirm: true as well)
audiencestring
boundariesarray
capabilitiesarrayDefault: derived from the workspace (topics, knowledge, tools)
changeRequeststring
confirmbooleanRequired to write the change to the file. Without it the tool returns a preview - the changed lines against the current ones, and the character count - and writes nothing.
environmentstringEnvironment id or URL. Defaults to the active pac auth profile.
examplesarray
inputModestring
languagestring
modelIdstring
modelNamestringFull or partial AI Builder model / prompt name
purposestringWhat the agent is for; required unless refining
refinebooleanRevise the workspace's current instructions using changeRequest
tonestring
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_get_evaluation_run ~179

Status and per-case results of an evaluation run, with a pass/fail summary per test method.

NameTypeReqDescription
botIdstringAgent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID.
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
includeRawboolean
runIdstringyes
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_get_flow ~253

Answer 'what does this flow actually do?': one flow's trigger and action names, its connection references, and the whole Power Automate definition when 'includeDefinition' is set. Read-only. Use it before cs_update_flow, and to see why a flow cannot be switched on. For what happened on a particular run, use cs_list_flow_runs and cs_explain_flow_run instead.

NameTypeReqDescription
clientIdstringEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
dataverseUrlstringDataverse URL; default: from the workspace or the environment
environmentIdstringPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow (workflow) id; cs_list_flows shows it
includeDefinitionbooleanInclude the full definition JSON (large)
tenantIdstringEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestringPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

Common questions

What is the Copilot Studio MCP server?

Copilot Studio MCP is listed in the public MCP registry as io.github.jgt87/copilot-studio-mcp. Build, test, ship and maintain Microsoft Copilot Studio agents from the editor. This page covers its npm package (copilot-studio-mcp).

Is the Copilot Studio MCP server safe to use?

Copilot Studio MCP scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Copilot Studio MCP server expose?

Copilot Studio MCP exposes 142 tools: cs_init, cs_login, cs_login_status, cs_logout, cs_set_tool_preset, and 137 more. Their descriptions and schemas cost roughly 33,335 tokens of context every time the server is loaded.

Is the Copilot Studio MCP server still maintained?

Copilot Studio MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Copilot Studio MCP server under?

Copilot Studio MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.