Skip to main content
Glama

Publish the agent

cs_publish

Publishes an agent's current Copilot Studio draft to live channels so real users can access it. Push local edits first, then confirm to release.

Instructions

Make the agent's current draft visible to real users on its channels - the tool for 'go live', 'release it' and 'make my changes live'. It publishes what is already in Copilot Studio, so send local edits up with cs_push first. via 'pac' runs 'pac copilot publish'; via 'dataverse' calls the PvaPublish action with the MSAL token and polls until publishedon changes. Requires confirm: true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
viaNo
botIdNoAgent (bot) id. Defaults to workspace sync metadata or CPS_AGENT_ID.
confirmNoRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
clientIdNoEntra app (client) id for MSAL. Defaults to CPS_CLIENT_ID, then the first-party VS Code id.
tenantIdNoEntra tenant id. Defaults to the workspace sync metadata, then CPS_TENANT_ID.
workspaceNoPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.
backgroundNoRun 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 is orphaned rather than cancelled.
dataverseUrlNo
environmentIdNoPower Platform environment id (GUID). Defaults to workspace sync metadata or CPS_ENVIRONMENT_ID.
timeoutSecondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.8
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv0.1.5

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the real-user-visible side effect, the confirm:true gating, the dry-run-without-confirm behavior, and the two execution paths (pac CLI vs PvaPublish via MSAL token polling until publishedon changes). It does not discuss reversibility, permissions/roles, or failure modes, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then prerequisite, then execution mechanics; every sentence carries information. The implementation detail ('PvaPublish action', 'publishedon changes') is slightly lower-level than an agent strictly needs, but it is compact and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no annotations and no output schema, the description covers the critical gaps: the confirm gate, the prerequisite step, and the long-running/background implication (reinforced by the background param's jobId/cs_job_status note in the schema). It stops short of describing the success result or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 70% and the 'via' enum has no schema description, so the description earns real credit by explaining what each value does ('pac copilot publish' vs the PvaPublish action with polling). It also restates the confirm:true requirement, reinforcing the one parameter that most affects behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and object ('make the agent's current draft visible to real users on its channels') and gives synonym triggers ('go live', 'release it'). It also distinguishes itself from the closest sibling by clarifying it publishes what is already in Copilot Studio rather than uploading local edits, which is exactly the boundary an agent needs against cs_push.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use context plus an explicit prerequisite/alternative: 'send local edits up with cs_push first'. It does not state a when-not condition or contrast with other publish-adjacent siblings such as cs_publish_customizations or cs_deploy_pipeline, but the sequencing guidance is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools