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

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

Available components

0 this week 77 Trust /100

Last scanned (1 day ago)

Scores higher than 55% of npm servers

Category AI and Machine Learning

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 Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @azure/msal-node 6.0.1, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 59 of 154 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency45
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 18 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
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 35890 tokens (~242/item across 148 items; 148 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 86% 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 149 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
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.

  • 4 Nov 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 29 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 28 Oct 26 0
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified ▼ functional
  • 27 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 −5
    • CVE-2026-109461 affects this package: high ▼ security
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 21 Oct 26 0
    • Stability: 0.97 → pass security
  • 20 Oct 26 0
    • Stability: pass → 0.97 functional
  • 18 Oct 26 0
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 0.1.7 → 0.1.8 functional
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 5 Nov 2026 · Analysed npm/copilot-studio-mcp@0.1.8

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 →

Vulnerabilities 2 findings
ID CVE Severity Vector Fix available
GHSA-xcx6-jx8p-x3h5 CVE-2026-109461 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 154 packages
Packages resolved 154
Deprecated 1
Stale 58
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 148 exposed · ~35,203 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
activateboolean–Turn the flow on after binding; default false
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
connectionIdstring–The connection to bind (its name from cs_list_connections); default: the only usable one for this connector
connectorstring–Connector id, e.g. shared_office365, to choose the reference by connector instead
dataverseUrlstring–Dataverse URL; default: from the workspace or the environment
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow (workflow) id (cs_list_flows)
referencestring–Which connection reference to bind; only needed when the flow has more than one
searchstring–Narrow the candidate connections by display name or owner
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path 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
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmboolean–Required 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
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path 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
connectionReferencePrefixstring–Prefix for generated connection reference names, usually your publisher prefix
descriptionstring––
namestringyes–
outputFilestring–Write the definition JSON here as well
outputsarray–What the flow answers with (agent-callable and HTTP flows)
stepsarray–Steps in order; each waits for the previous one to succeed
trigger––Default: '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
backgroundboolean–Run 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…
botIdstring–Agent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID.
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
conversationIdstring–Continue an earlier conversation from cs_chat
dataverseUrlstring––
directLineSecretstring––
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
maxMsnumber–How long to wait for replies, ms (default 25000, kept under the client call budget)
schemaNamestring––
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
tokenEndpointstring–Explicit DirectLine token endpoint
transportstring–auto detects the agent's authentication mode via Dataverse; directline for no-auth/manual-auth agents; sdk for Entra SSO agents
utterancestringyes–
workspacestring–Path 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
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
includeDiffsboolean–full: include unified diffs (default true)
keepCloneboolean–full: keep the temporary clone and return its path
modestring––
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_check_solution ~408

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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
clearCacheboolean–Clear the tenant's checker enforcement cache
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
customEndpointstring–Custom URL of the Power Apps Checker endpoint, instead of the geography's
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
excludedFilesarray–Files to exclude from the analysis
geostring–Checker service geography
outputDirectorystring–Where to write the results
pathstring–Solution zip file(s); glob allowed
profilestring–pac 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.
ruleLevelOverridestring–JSON file with rule level overrides
ruleSetstring–'Solution Checker' (default), 'AppSource Certification' or a rule set id
saveResultsboolean–Store the results in the environment (Solution Health Hub)
solutionUrlstring–SAS URL of a solution zip instead of path
timeoutSecondsnumber–Default 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
botstring–Agent id (GUID) or schema name; omit to be shown the agents in the environment
componentCollectionsarray––
displayNamestring–Folder name override
environmentstring–Environment 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
asyncboolean–Run the operation asynchronously
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
includestring–Settings to include in the export (pac solution export --include values)
localizeboolean–Extract string resources into .resx files
mapstring–Mapping XML file for component folders
maxAsyncWaitTimenumber–Max asynchronous wait time in minutes (default 60)
namestringyesSolution unique name
outputDirectorystring–Output directory
packageTypestring–Unmanaged, Managed or Both (default Both)
profilestring–pac 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.
timeoutSecondsnumber–Default 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
agentsarray–Agent schema names or ids to clone; default: every agent pac copilot list returns
chainarrayyes–
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
dirstringyes–
failOnDriftboolean––
includeDataverseboolean–Default true: flows, connection references, environment variables and publish state via Dataverse (needs cs_login; skipped silently otherwise)
includeDiffsboolean––
maxAgentsnumber–Default 20
solutionstring–Solution unique name to record version/managed state for
strictVariablesboolean––
tenantIdstring–Entra 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
baselineRunIdstring–Run to compare against; default the most recent successful one
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
compareTriggerDataboolean–Also compare what the trigger handed each run
environmentIdstring–Power 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)
searchRunsnumber–How far back to look for a successful baseline; default 50
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path 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––
includeDiffsboolean–Default true: unified diffs in the report
reportDirstring–Default: parent of b
strictVariablesboolean–Treat 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––
backgroundboolean–Run 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…
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
createSolutionboolean–Create solutionName if it does not exist
environmentstring–Environment id or URL to bootstrap into (creates a live agent)
instructionsstring––
namestringyesAgent display name
projectDirstring–Folder for the agent's files, new or empty. Omit it to be offered one named after the agent.
publisherPrefixstring–Publisher 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––
solutionNamestring–Unique name of the solution to create the agent in (requires environment)
templatestring–classic 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
cwdstring–Working directory for pac (for project commands: the solution project folder)
displayNamestringyesDisplay name of the new agent
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
profilestring–pac 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
timeoutSecondsnumber–Default 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
applicationIdstring–App registration (client) id
azureDevOpsFederatedboolean–Azure DevOps federated credential (needs tenant and applicationId)
backgroundboolean–Run 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.
certificateDiskPathstring–Certificate file for certificate auth
certificatePasswordstring–Certificate password (masked in logs) (masked in logs and results)
clientSecretstring–Client secret (masked in logs) (masked in logs and results)
cloudstring–Cloud instance (Public, UsGov, UsGovHigh, UsGovDod, China)
cwdstring–Working directory for pac (for project commands: the solution project folder)
deviceCodeboolean–Use the device-code flow for interactive sign-in (blocks until done)
environmentstring–Default environment for the profile (id, URL, unique or partial name)
githubFederatedboolean–GitHub federated credential (needs tenant and applicationId)
managedIdentityboolean–Use the default Azure identity
namestring–Profile name (max 30 characters)
passwordstring–Password (masked in logs) (masked in logs and results)
profilestring–pac 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.
tenantstring–Tenant id (required with applicationId)
timeoutSecondsnumber–Default 600
usernamestring–User 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
backgroundboolean–Run 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)
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
namestringyesConnection display name
profilestring–pac 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
timeoutSecondsnumber–Default 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
connectionReferencesobject–logicalName -> connectionId in the target environment
copilotAgentsobject–agent schema name -> Entra security group id allowed to use the agent in the target
environmentVariablesobject–schemaName -> value for the target
regenerateboolean–Recreate the file even if it exists (mappings are lost)
settingsFilestring–Default <solutionDir>/deployment-settings.json or next to the zip
solutionDirstring–Directory written by cs_pull_solution
zipstring–Solution 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
clientDataobject–The whole clientdata document, when you have one (from cs_get_flow of another flow, for example)
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
connectionReferencePrefixstring–Prefix for generated connection reference names, usually your publisher prefix
connectionReferencesobject–properties.connectionReferences, when you pass a definition rather than steps
dataverseUrlstring–Dataverse URL; default: from the workspace or the environment
definitionobject–A ready-made Power Automate definition, instead of steps
descriptionstring––
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
namestringyesFlow display name
outputsarray–What the flow answers with (agent-callable and HTTP flows)
solutionstring–Unique name of the solution to create it in
stepsarray–Steps in order; each waits for the previous one to succeed
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
trigger––Default: 'agent' (When an agent calls the flow)
workspacestring–Path 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
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
displayNamestring––
environmentstring–Environment id or URL. Defaults to the active pac auth profile.
publisherNamestring––
publisherPrefixstringyes2-8 lowercase characters, e.g. contoso
uniqueNamestringyese.g. contoso_Agents
workDirstring–Where 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––
outputPathstring–Default <workspace>/../<agent>-testset.csv
suggestFromWorkspaceboolean––
workspacestring–Path 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
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
environmentstring–Environment 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstring–Working directory for pac (for project commands: the solution project folder)
indexnumber–Profile index
namestring–Profile name
profilestring–pac 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.
timeoutSecondsnumber–Default 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
connectionIdstringyesConnection id (cs_list_connections)
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
profilestring–pac 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.
timeoutSecondsnumber–Default 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
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
dataverseUrlstring–Dataverse URL; default: from the workspace or the environment
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow (workflow) id (cs_list_flows)
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path 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
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
environmentstring–Environment 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
currentVersionstringyesCurrent solution version
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
newVersionstringyesVersion to deploy as
profilestring–pac 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)
timeoutSecondsnumber–Default 3600
waitboolean–Wait 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––
confirmboolean–Required to actually perform a change in a live environment. Without it the tool returns a dry run.
forceOverwriteboolean––
maxAsyncWaitMinutesnumber––
publishAgentsboolean–Default true: pac copilot publish for each agent after import
settingsFilestring––
skipLowerVersionboolean––
solutionDirstring––
srcFolderstring–Unpacked solution folder to pack and deploy
stageAndUpgradeboolean––
targetEnvironmentstringyesEnvironment id or URL to deploy into
unmanagedboolean–With 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
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
connectorstringyesshared_<name> or a display name
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
includeInternalboolean––
operationstring–Filter operations by id or summary
refreshboolean––
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path 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
environmentstring–Environment id or URL. Defaults to the active pac auth profile.
namestringyesSolution unique name
workDirstring–Where 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
workspacestring–Path to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_download_channel_manifest ~300

Answer 'give me the Teams app package for this agent': download the channel manifest zip (manifest.json plus icons) for an agent published to the Microsoft 365 and Teams channel, the same file the portal offers as 'Download .zip', for sideloading or the Teams admin centre. Writes only the zip file; nothing in the environment changes. The agent must already be published to that channel. Follows the published Power Platform API reference; not yet verified against a live tenant.

NameTypeReqDescription
botIdstring–Agent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID.
channelstring–Channel name; M365 is the only one the API supports today
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
includeAgentSchemaboolean–Also put the agent schema in the package
outputPathstring–Where to write the zip. Default: beside the workspace, else the temp folder
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

cs_download_evaluation_snapshot ~263

Answer 'what exactly did that evaluation run test?': download the agent content snapshot the run was scored against, as the service zipped it, so it can be compared with the workspace now (unzip, then cs_compare_snapshots or a file diff). Writes only the zip file; the environment is not touched. Follows the published Power Platform API reference; not yet verified against a live tenant.

NameTypeReqDescription
botIdstring–Agent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID.
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
outputPathstring–Where to write the zip. Default: beside the workspace, else the temp folder
runIdstringyescs_list_evaluation_runs shows the ids
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspacestring–Path 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––
confirmboolean–Required 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––
workspacestring–Path 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––
confirmboolean–Required 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––
removeInputsarray–propertyNames to drop
renamestring––
setInputsarray––
toolstringyesTool name, file stem or path
workspacestring–Path 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––
confirmboolean–Required 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|null–null removes the priority
removeActionIdsarray–ids of top-level nodes (see cs_describe_workspace or the file)
removeTriggerPhrasesarray––
renamestring––
setTriggerPhrasesarray––
topicstringyesTopic name, file stem or path
workspacestring–Path 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
profilestring–pac 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.
timeoutSecondsnumber–Default 600
xmlstring–FetchXML query text
xmlFilestring–File 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstring–Working directory for pac (for project commands: the solution project folder)
filterstring–Only environments whose name contains this text
profilestring–pac 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.
timeoutSecondsnumber–Default 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstringyesEnvironment id, URL, unique or partial name
profilestring–pac 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.
timeoutSecondsnumber–Default 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
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
profilestring–pac 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.
timeoutSecondsnumber–Default 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
clientIdstring–Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
environmentIdstring–Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
flowIdstringyesFlow id (cs_list_flows)
includeInputsboolean–Fetch each failed action's inputs as well; default true
runIdstringyesRun id (cs_list_flow_runs)
tenantIdstring–Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
upstreamCountnumber–Succeeded actions to include with their outputs, ending at the first failure; default 3
workspacestring–Path 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
backgroundboolean–Run 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
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
overwriteboolean–Overwrite the file if it exists
profilestring–pac 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
templateNamestring–Template name (default kickStartTemplate)
templateVersionstring–Template version X.Y.Z (default 1.0.0)
timeoutSecondsnumber–Default 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
allboolean–Write files for every supported language, not only the primary one
backgroundboolean–Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
botstring–Agent id or schema name; omit for every agent
cwdstring–Working directory for pac (for project commands: the solution project folder)
environmentstring–Environment id or URL; default: the environment of the active pac auth profile
formatstring–resx (default) or json
outDirstring–Output directory
overwriteboolean–Overwrite existing files
profilestring–pac 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.
sourceDirstring–Unpacked solution folder to read instead of the environment
timeoutSecondsnumber–Default 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
applyboolean–Write the result into the agent instructions (needs confirm: true as well)
audiencestring––
boundariesarray––
capabilitiesarray–Default: derived from the workspace (topics, knowledge, tools)
changeRequeststring––
confirmboolean–Required 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.
environmentstring–Environment id or URL. Defaults to the active pac auth profile.
examplesarray––
inputModestring––
languagestring––
modelIdstring––
modelNamestring–Full or partial AI Builder model / prompt name
purposestring–What the agent is for; required unless refining
refineboolean–Revise the workspace's current instructions using changeRequest
tonestring––
workspacestring–Path to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.

No output schema declared.

No examples provided.

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
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 77 out of 100 on VerifyMCP. We recorded 2 known advisories against it as of 4 November 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 148 tools: cs_init, cs_login, cs_login_status, cs_logout, cs_set_tool_preset, and 143 more. Their descriptions and schemas cost roughly 35,203 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 4 November 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.