Skip to main content
Glama

Merge translation files

cs_merge_translations

Import translated .resx or .json files back into Copilot Studio agents, previewing changes with a dry run before writing to a live environment or unpacked solution folder.

Instructions

Import translated .resx or .json files back into one or more agents (environment or unpacked solution folder). whatIf previews the merge without writing. Runs 'pac copilot merge-translation' 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.

Input Schema

NameRequiredDescriptionDefault
cwdNoWorking directory for pac (for project commands: the solution project folder)
filesYesTranslation files; glob patterns allowed
whatIfNoReport what would change without changing anything
confirmNoRequired to actually perform a change in a live environment. Without it the tool returns a dry run.
profileNopac 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.
verboseNoMore diagnostic output
solutionNoSolution unique name
sourceDirNoUnpacked solution folder to update instead of the environment
backgroundNoRun in the background and return a jobId immediately, for a command that takes longer than the client will wait. Poll cs_job_status.
environmentNoEnvironment id or URL; default: the environment of the active pac auth profile
timeoutSecondsNoDefault 900

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.2/5.0
Behavior5/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 so well: it discloses that this mutates a live environment, that confirm: true is required to actually write, that omitting it yields a dry run, that whatIf is a no-write preview, and that long runs can be backgrounded and polled via cs_job_status. It also names the execution context (pac auth profile) and warns that only some inputs mutate.

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?

Five compact sentences, front-loaded with the purpose and immediately followed by the preview/commit distinction. Every sentence carries operational information, though the staccato, colon-heavy phrasing ('Mutates a live environment: requires confirm: true (a dry run otherwise).') reads slightly telegraphic rather than polished.

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 an 11-parameter mutation tool with no annotations and no output schema, the description covers the concerns an agent must know before calling: mutation scope, confirmation requirement, dry-run default, background job handling, and auth profile resolution. It does not describe what a successful merge returns or what a dry-run report contains, which is a minor gap given no output schema exists.

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 description coverage is 100%, so the baseline is 3 and the schema already explains all 11 parameters. The description adds genuine value beyond it by clarifying the confirm/whatIf interaction semantics ('a dry run otherwise') and by flagging that 'Only some inputs mutate; see the parameter descriptions' — telling the agent not to assume every field is a write trigger.

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

Purpose4/5

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

The first sentence gives a specific verb+resource+scope: 'Import translated .resx or .json files back into one or more agents (environment or unpacked solution folder).' It also names the underlying pac command, so an agent knows exactly what operation runs. It does not explicitly reference the inverse sibling cs_extract_translations, so differentiation is implied by directionality ('back into') rather than stated.

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?

It clearly states the preview path ('whatIf previews the merge without writing') and the commit path ('requires confirm: true (a dry run otherwise)'), which is actionable when/when-not guidance. What is missing is any named alternative tool or routing rule (e.g., against cs_extract_translations or cs_pull), leaving the agent to infer that this is the counterpart to extraction.

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