Copilot Studio MCP
NPM · COPILOT-STUDIO-MCP · SCANNED SEP 20
Build, test, ship and maintain Microsoft Copilot Studio agents from the editor
Available components
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
- 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 5 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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
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
claude mcp add jgt87-copilot-studio-mcp -- npx -y copilot-studio-mcp
{
"mcpServers": {
"jgt87-copilot-studio-mcp": {
"command": "npx",
"args": [
"-y",
"copilot-studio-mcp"
]
}
}
} {
"servers": {
"jgt87-copilot-studio-mcp": {
"command": "npx",
"args": [
"-y",
"copilot-studio-mcp"
]
}
}
} codex mcp add jgt87-copilot-studio-mcp -- npx -y copilot-studio-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jgt87-copilot-studio-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"copilot-studio-mcp"
],
"enabled": true
}
}
} openclaw mcp add jgt87-copilot-studio-mcp --command npx --arg -y --arg copilot-studio-mcp
mcp_servers:
jgt87-copilot-studio-mcp:
command: "npx"
args: ["-y", "copilot-studio-mcp"] {
"McpServers": {
"jgt87-copilot-studio-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"copilot-studio-mcp"
]
}
}
} assistant mcp add jgt87-copilot-studio-mcp -t stdio -c npx -a -y copilot-studio-mcp
{
"mcpServers": {
"jgt87-copilot-studio-mcp": {
"command": "npx",
"args": [
"-y",
"copilot-studio-mcp"
]
}
}
} 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.
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 →
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 →
cs_bind_flow_connection Bind a flow's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| activate | boolean | – | Turn the flow on after binding; default false |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| connectionId | string | – | The connection to bind (its name from cs_list_connections); default: the only usable one for this connector |
| connector | string | – | Connector id, e.g. shared_office365, to choose the reference by connector instead |
| dataverseUrl | string | – | Dataverse URL; default: from the workspace or the environment |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| flowId | string | yes | Flow (workflow) id (cs_list_flows) |
| reference | string | – | Which connection reference to bind; only needed when the flow has more than one |
| search | string | – | Narrow the candidate connections by display name or owner |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | 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 Block or unblock an agent for the organisation ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| blocked | boolean | yes | true blocks the agent for everyone, false lifts the block |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| id | string | yes | Package id from cs_list_org_agents, e.g. P_19ae1zz1-56bc-505a-3d42-156df75a4xxy |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | 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 Build a flow definition from steps ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| connectionReferencePrefix | string | – | Prefix for generated connection reference names, usually your publisher prefix |
| description | string | – | – |
| name | string | yes | – |
| outputFile | string | – | Write the definition JSON here as well |
| outputs | array | – | What the flow answers with (agent-callable and HTTP flows) |
| steps | array | – | 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 Chat with the published agent ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | 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… |
| botId | string | – | Agent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID. |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| conversationId | string | – | Continue an earlier conversation from cs_chat |
| dataverseUrl | string | – | – |
| directLineSecret | string | – | – |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| maxMs | number | – | How long to wait for replies, ms (default 25000, kept under the client call budget) |
| schemaName | string | – | – |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| tokenEndpoint | string | – | Explicit DirectLine token endpoint |
| transport | string | – | auto detects the agent's authentication mode via Dataverse; directline for no-auth/manual-auth agents; sdk for Entra SSO agents |
| utterance | string | yes | – |
| workspace | string | – | 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 Detect portal changes since the last sync ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| includeDiffs | boolean | – | full: include unified diffs (default true) |
| keepClone | boolean | – | full: keep the temporary clone and return its path |
| mode | string | – | – |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | 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 Run Solution Checker ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| clearCache | boolean | – | Clear the tenant's checker enforcement cache |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| excludedFiles | array | – | Files to exclude from the analysis |
| geo | string | – | Checker service geography |
| outputDirectory | string | – | Where to write the results |
| path | string | – | Solution zip file(s); glob allowed |
| profile | string | – | 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. |
| ruleLevelOverride | string | – | JSON file with rule level overrides |
| ruleSet | string | – | 'Solution Checker' (default), 'AppSource Certification' or a rule set id |
| saveResults | boolean | – | Store the results in the environment (Solution Health Hub) |
| solutionUrl | string | – | SAS URL of a solution zip instead of path |
| timeoutSeconds | number | – | Default 1800 |
No output schema declared.
No examples provided.
cs_clone_agent Clone an agent to disk ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| bot | string | – | Agent id (GUID) or schema name; omit to be shown the agents in the environment |
| componentCollections | array | – | – |
| displayName | string | – | Folder name override |
| environment | string | – | Environment id or URL; default active profile |
| outputDir | string | – | – |
No output schema declared.
No examples provided.
cs_clone_solution Clone a solution into a project ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| async | boolean | – | Run the operation asynchronously |
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| include | string | – | Settings to include in the export (pac solution export --include values) |
| localize | boolean | – | Extract string resources into .resx files |
| map | string | – | Mapping XML file for component folders |
| maxAsyncWaitTime | number | – | Max asynchronous wait time in minutes (default 60) |
| name | string | yes | Solution unique name |
| outputDirectory | string | – | Output directory |
| packageType | string | – | Unmanaged, Managed or Both (default Both) |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 3600 |
No output schema declared.
No examples provided.
cs_compare_environments Compare a DTAP chain ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| agents | array | – | Agent schema names or ids to clone; default: every agent pac copilot list returns |
| chain | array | yes | – |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| dir | string | yes | – |
| failOnDrift | boolean | – | – |
| includeDataverse | boolean | – | Default true: flows, connection references, environment variables and publish state via Dataverse (needs cs_login; skipped silently otherwise) |
| includeDiffs | boolean | – | – |
| maxAgents | number | – | Default 20 |
| solution | string | – | Solution unique name to record version/managed state for |
| strictVariables | boolean | – | – |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
No output schema declared.
No examples provided.
cs_compare_flow_runs Compare a failed flow run with one that worked ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| baselineRunId | string | – | Run to compare against; default the most recent successful one |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| compareTriggerData | boolean | – | Also compare what the trigger handed each run |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| flowId | string | yes | Flow id (cs_list_flows) |
| runId | string | yes | The failed run (cs_list_flow_runs) |
| searchRuns | number | – | How far back to look for a successful baseline; default 50 |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | 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 Compare two 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).
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | yes | Snapshot folder (earlier stage, e.g. DEV) |
| b | string | yes | Snapshot folder (later stage, e.g. TEST) |
| failOnDrift | boolean | – | – |
| ignoredKeys | array | – | – |
| includeDiffs | boolean | – | Default true: unified diffs in the report |
| reportDir | string | – | Default: parent of b |
| strictVariables | boolean | – | Treat differing environment variable values as drift |
No output schema declared.
No examples provided.
cs_create_agent Create a new 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.
| Name | Type | Req | Description |
|---|---|---|---|
| authoringMode | string | – | – |
| background | boolean | – | 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… |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| createSolution | boolean | – | Create solutionName if it does not exist |
| environment | string | – | Environment id or URL to bootstrap into (creates a live agent) |
| instructions | string | – | – |
| name | string | yes | Agent display name |
| projectDir | string | – | Folder for the agent's files, new or empty. Omit it to be offered one named after the agent. |
| publisherPrefix | string | – | 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… |
| schemaName | string | – | – |
| solutionName | string | – | Unique name of the solution to create the agent in (requires environment) |
| template | string | – | classic only |
No output schema declared.
No examples provided.
cs_create_agent_from_template Create an agent from a 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).
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| displayName | string | yes | Display name of the new agent |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| profile | string | – | 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. |
| schemaName | string | yes | Schema (unique) name of the new agent, e.g. contoso_HelpDesk |
| solution | string | yes | Unique name of the solution to create the agent in |
| templateFile | string | yes | Template YAML from cs_extract_agent_template |
| timeoutSeconds | number | – | Default 900 |
No output schema declared.
No examples provided.
cs_create_auth_profile Create a pac 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.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | – | App registration (client) id |
| azureDevOpsFederated | boolean | – | Azure DevOps federated credential (needs tenant and applicationId) |
| background | boolean | – | 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. |
| certificateDiskPath | string | – | Certificate file for certificate auth |
| certificatePassword | string | – | Certificate password (masked in logs) (masked in logs and results) |
| clientSecret | string | – | Client secret (masked in logs) (masked in logs and results) |
| cloud | string | – | Cloud instance (Public, UsGov, UsGovHigh, UsGovDod, China) |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| deviceCode | boolean | – | Use the device-code flow for interactive sign-in (blocks until done) |
| environment | string | – | Default environment for the profile (id, URL, unique or partial name) |
| githubFederated | boolean | – | GitHub federated credential (needs tenant and applicationId) |
| managedIdentity | boolean | – | Use the default Azure identity |
| name | string | – | Profile name (max 30 characters) |
| password | string | – | Password (masked in logs) (masked in logs and results) |
| profile | string | – | 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. |
| tenant | string | – | Tenant id (required with applicationId) |
| timeoutSeconds | number | – | Default 600 |
| username | string | – | User name for username/password auth (not recommended) |
No output schema declared.
No examples provided.
cs_create_connection Create a service-principal Dataverse 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).
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | App registration (client) id |
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| clientSecret | string | yes | Client secret; prefer a secret from a vault, it is masked in logs (masked in logs and results) |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| name | string | yes | Connection display name |
| profile | string | – | 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. |
| tenantId | string | yes | Entra tenant id |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_create_deployment_settings Create or update 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.
| Name | Type | Req | Description |
|---|---|---|---|
| connectionReferences | object | – | logicalName -> connectionId in the target environment |
| copilotAgents | object | – | agent schema name -> Entra security group id allowed to use the agent in the target |
| environmentVariables | object | – | schemaName -> value for the target |
| regenerate | boolean | – | Recreate the file even if it exists (mappings are lost) |
| settingsFile | string | – | Default <solutionDir>/deployment-settings.json or next to the zip |
| solutionDir | string | – | Directory written by cs_pull_solution |
| zip | string | – | Solution zip (or use solutionDir from cs_pull_solution) |
No output schema declared.
No examples provided.
cs_create_flow Create a cloud 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clientData | object | – | The whole clientdata document, when you have one (from cs_get_flow of another flow, for example) |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| connectionReferencePrefix | string | – | Prefix for generated connection reference names, usually your publisher prefix |
| connectionReferences | object | – | properties.connectionReferences, when you pass a definition rather than steps |
| dataverseUrl | string | – | Dataverse URL; default: from the workspace or the environment |
| definition | object | – | A ready-made Power Automate definition, instead of steps |
| description | string | – | – |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| name | string | yes | Flow display name |
| outputs | array | – | What the flow answers with (agent-callable and HTTP flows) |
| solution | string | – | Unique name of the solution to create it in |
| steps | array | – | Steps in order; each waits for the previous one to succeed |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| trigger | – | – | Default: 'agent' (When an agent calls the flow) |
| workspace | string | – | 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 Create an unmanaged 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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| displayName | string | – | – |
| environment | string | – | Environment id or URL. Defaults to the active pac auth profile. |
| publisherName | string | – | – |
| publisherPrefix | string | yes | 2-8 lowercase characters, e.g. contoso |
| uniqueName | string | yes | e.g. contoso_Agents |
| workDir | string | – | Where the manifest and zip are written (default <workspace>/.cs-solutions/<uniqueName>) |
No output schema declared.
No examples provided.
cs_create_test_set_csv Create an evaluation test set (CSV for import) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| cases | array | – | – |
| maxSuggested | number | – | – |
| outputPath | string | – | Default <workspace>/../<agent>-testset.csv |
| suggestFromWorkspace | boolean | – | – |
| workspace | string | – | 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 Delete an agent ~84
pac copilot delete: permanently delete an agent from the environment. Requires confirm: true.
| Name | Type | Req | Description |
|---|---|---|---|
| bot | string | yes | Agent id or schema name |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| environment | string | – | Environment id or URL. Defaults to the active pac auth profile. |
No output schema declared.
No examples provided.
cs_delete_auth_profile Delete a pac 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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| index | number | – | Profile index |
| name | string | – | Profile name |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_delete_connection Delete a 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).
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| connectionId | string | yes | Connection id (cs_list_connections) |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_delete_flow Delete a cloud 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| dataverseUrl | string | – | Dataverse URL; default: from the workspace or the environment |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| flowId | string | yes | Flow (workflow) id (cs_list_flows) |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | 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 Delete a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| environment | string | – | Environment id or URL. Defaults to the active pac auth profile. |
| name | string | yes | Solution unique name |
No output schema declared.
No examples provided.
cs_deploy_pipeline Deploy through a Power Platform 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).
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| currentVersion | string | yes | Current solution version |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| newVersion | string | yes | Version to deploy as |
| profile | string | – | 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. |
| solutionName | string | yes | Solution unique name |
| stageId | string | yes | Deployment stage id (cs_list_pipelines with pipeline) |
| timeoutSeconds | number | – | Default 3600 |
| wait | boolean | – | Wait until the deployment finishes |
No output schema declared.
No examples provided.
cs_deploy_solution Deploy a solution to another environment (1:1) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| allowUnmapped | boolean | – | – |
| confirm | boolean | – | Required to actually perform a change in a live environment. Without it the tool returns a dry run. |
| forceOverwrite | boolean | – | – |
| maxAsyncWaitMinutes | number | – | – |
| publishAgents | boolean | – | Default true: pac copilot publish for each agent after import |
| settingsFile | string | – | – |
| skipLowerVersion | boolean | – | – |
| solutionDir | string | – | – |
| srcFolder | string | – | Unpacked solution folder to pack and deploy |
| stageAndUpgrade | boolean | – | – |
| targetEnvironment | string | yes | Environment id or URL to deploy into |
| unmanaged | boolean | – | With solutionDir: deploy the unmanaged zip instead of the managed one |
| zip | string | – | – |
No output schema declared.
No examples provided.
cs_describe_connector Describe a connector's operations ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| connector | string | yes | shared_<name> or a display name |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| includeInternal | boolean | – | – |
| operation | string | – | Filter operations by id or summary |
| refresh | boolean | – | – |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | 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 Describe a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| environment | string | – | Environment id or URL. Defaults to the active pac auth profile. |
| name | string | yes | Solution unique name |
| workDir | string | – | Where to put the export and unpacked source (default <workspace>/.cs-solutions/<name>) |
No output schema declared.
No examples provided.
cs_describe_workspace Describe the workspace ~69
Inventory of an agent workspace: settings, instructions, topics (with trigger phrases), knowledge sources, tools, flows, triggers, variables, connection references, sync metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace | string | – | 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 Edit a knowledge source ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalSearchTerms | string|null | – | – |
| confirm | boolean | – | 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. |
| description | string | – | – |
| includeSubPages | boolean | – | – |
| knowledge | string | yes | – |
| rename | string | – | – |
| site | string | – | – |
| triggerCondition | string|null | – | – |
| workspace | string | – | 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 Edit a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| addInputs | array | – | – |
| confirm | boolean | – | 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. |
| connectionMode | string | – | – |
| connectionReference | string | – | – |
| description | string | – | – |
| modelDescription | string | – | – |
| modelDisplayName | string | – | – |
| operationId | string | – | – |
| outputMode | string | – | – |
| removeInputs | array | – | propertyNames to drop |
| rename | string | – | – |
| setInputs | array | – | – |
| tool | string | yes | Tool name, file stem or path |
| workspace | string | – | 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 Edit a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| addTriggerPhrases | array | – | – |
| appendActions | array | – | – |
| confirm | boolean | – | 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. |
| description | string | – | – |
| insertActions | object | – | – |
| priority | number|null | – | null removes the priority |
| removeActionIds | array | – | ids of top-level nodes (see cs_describe_workspace or the file) |
| removeTriggerPhrases | array | – | – |
| rename | string | – | – |
| setTriggerPhrases | array | – | – |
| topic | string | yes | Topic name, file stem or path |
| workspace | string | – | 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 Run a FetchXML query ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 600 |
| xml | string | – | FetchXML query text |
| xmlFile | string | – | File containing the FetchXML query |
No output schema declared.
No examples provided.
cs_env_list List environments (pac) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| filter | string | – | Only environments whose name contains this text |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_env_select Select the default environment for the pac profile ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | yes | Environment id, URL, unique or partial name |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_env_who Show environment details (pac) ~171
Organisation id, URL, version and the signed-in user for an environment. Runs 'pac env who' with the active pac auth profile.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| profile | string | – | 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. |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_explain_flow_run Explain a failed 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| flowId | string | yes | Flow id (cs_list_flows) |
| includeInputs | boolean | – | Fetch each failed action's inputs as well; default true |
| runId | string | yes | Run id (cs_list_flow_runs) |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| upstreamCount | number | – | Succeeded actions to include with their outputs, ending at the first failure; default 3 |
| workspace | string | – | 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 Extract an 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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| bot | string | yes | Agent id or schema name |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| overwrite | boolean | – | Overwrite the file if it exists |
| profile | string | – | 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. |
| templateFile | string | yes | Path of the YAML template to write |
| templateName | string | – | Template name (default kickStartTemplate) |
| templateVersion | string | – | Template version X.Y.Z (default 1.0.0) |
| timeoutSeconds | number | – | Default 600 |
No output schema declared.
No examples provided.
cs_extract_translations Extract translation files ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | Write files for every supported language, not only the primary one |
| background | boolean | – | Run in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status. |
| bot | string | – | Agent id or schema name; omit for every agent |
| cwd | string | – | Working directory for pac (for project commands: the solution project folder) |
| environment | string | – | Environment id or URL; default: the environment of the active pac auth profile |
| format | string | – | resx (default) or json |
| outDir | string | – | Output directory |
| overwrite | boolean | – | Overwrite existing files |
| profile | string | – | 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. |
| sourceDir | string | – | Unpacked solution folder to read instead of the environment |
| timeoutSeconds | number | – | Default 900 |
No output schema declared.
No examples provided.
cs_generate_instructions Generate agent instructions with an AI Builder prompt ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| apply | boolean | – | Write the result into the agent instructions (needs confirm: true as well) |
| audience | string | – | – |
| boundaries | array | – | – |
| capabilities | array | – | Default: derived from the workspace (topics, knowledge, tools) |
| changeRequest | string | – | – |
| confirm | boolean | – | 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. |
| environment | string | – | Environment id or URL. Defaults to the active pac auth profile. |
| examples | array | – | – |
| inputMode | string | – | – |
| language | string | – | – |
| modelId | string | – | – |
| modelName | string | – | Full or partial AI Builder model / prompt name |
| purpose | string | – | What the agent is for; required unless refining |
| refine | boolean | – | Revise the workspace's current instructions using changeRequest |
| tone | string | – | – |
| workspace | string | – | Path 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 Get an evaluation run ~179
Status and per-case results of an evaluation run, with a pass/fail summary per test method.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | – | Agent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID. |
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| includeRaw | boolean | – | – |
| runId | string | yes | – |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | Path to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory. |
No output schema declared.
No examples provided.
cs_get_flow Read one cloud 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clientId | string | – | Entra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id. |
| dataverseUrl | string | – | Dataverse URL; default: from the workspace or the environment |
| environmentId | string | – | Power Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID. |
| flowId | string | yes | Flow (workflow) id; cs_list_flows shows it |
| includeDefinition | boolean | – | Include the full definition JSON (large) |
| tenantId | string | – | Entra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID. |
| workspace | string | – | Path to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory. |
No output schema declared.
No examples provided.
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.