You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Initial plan
* feat: rename agency_params to copilot_params and replace agency CLI references with copilot
Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/6de925b5-b695-4ace-ace7-292d6f1896a2
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
* feat: remove built-in MCP spawning via copilot mcp subcommand
Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/d23028c8-f3ae-424f-a2cc-6adb95730353
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
* feat: add COPILOT_CLI_VERSION to dependency version updater workflow
Expand the update-awf-version workflow to also check for new
releases of github/copilot-cli and open PRs to update the
COPILOT_CLI_VERSION constant. Bumps max PRs from 1 to 2 to
allow both dependencies to be updated in a single run.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: remove agency-style built-in MCP references from AGENTS.md
Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/b1199267-7b57-4f8e-b88f-9241078a80c7
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
* fix: remove --mcp flag generation from generate_copilot_params; Copilot CLI has no mcp subcommand
Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/5780d9cc-3b6e-4640-bd7b-df37f2acb416
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
* fix: restore builtin MCP --mcp flag generation in copilot params
The MCP server iteration that adds --mcp flags for enabled built-in MCPs
was accidentally removed during the agency rename refactor.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: remove --mcp flag generation for builtin MCPs
Copilot CLI has no built-in MCPs — all MCPs are handled via the MCP
firewall. Update the test to assert --mcp flags are not generated.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: update docs to reflect removal of --mcp flag generation
All MCPs are now handled via the MCP firewall, not --mcp CLI flags.
Renamed 'Agency parameters' to 'Copilot parameters' in test docs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
Co-authored-by: James Devine <james_a_devine@outlook.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+32-86Lines changed: 32 additions & 86 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -398,7 +398,7 @@ The compiler transforms the input into valid Azure DevOps pipeline YAML based on
398
398
- **Standalone**: Uses `templates/base.yml`
399
399
- **1ES**: Uses `templates/1es-base.yml`
400
400
401
-
Explicit markings are embedded in these templates that the compiler is allowed to replace e.g. `{{ agency_params }}` denotes parameters which are passed to the agency command line tool. The compiler should not replace sections denoted by `${{ some content }}`. What follows is a mapping of markings to responsibilities (primarily for the standalone template).
401
+
Explicit markings are embedded in these templates that the compiler is allowed to replace e.g. `{{ copilot_params }}` denotes parameters which are passed to the copilot command line tool. The compiler should not replace sections denoted by `${{ some content }}`. What follows is a mapping of markings to responsibilities (primarily for the standalone template).
402
402
403
403
## {{ repositories }}
404
404
For each additional repository specified in the front matter append:
@@ -467,17 +467,16 @@ This distinction allows resources (like templates) to be available as pipeline r
467
467
468
468
Should be replaced with the human-readable name from the front matter (e.g., "Daily Code Review"). This is used for display purposes like stage names.
469
469
470
-
## {{ agency_params }}
470
+
## {{ copilot_params }}
471
471
472
-
Additional params provided to agency CLI. The compiler generates:
472
+
Additional params provided to copilot CLI. The compiler generates:
473
473
- `--model <model>` - AI model from `engine` front matter field (default: claude-opus-4.5)
474
474
- `--disable-builtin-mcps`- Disables all built-in MCPs initially
- `--disable-mcp-server <name>`- Disables specific MCPs (all built-in MCPs are disabled by default and must be explicitly enabled via mcp-servers config)
478
-
- `--mcp <name>`- Enables MCPs specified in front matter
477
+
- `--disable-mcp-server <name>`- Disables specific Copilot CLI MCPs
479
478
480
-
Only built-in MCPs are passed via params. Custom MCPs (with command field) are handled separately.
479
+
All MCPs (both built-in and custom) are handled via the MCP firewall config, not via `--mcp` flags.
481
480
482
481
## {{ pool }}
483
482
@@ -552,7 +551,7 @@ Should be replaced with the appropriate working directory based on the effective
552
551
- `root`: `$(Build.SourcesDirectory)`- the checkout root directory
553
552
- `repo`: `$(Build.SourcesDirectory)/$(Build.Repository.Name)`- the repository's subfolder
554
553
555
-
This is used for the `workingDirectory` property of the agency copilot task.
554
+
This is used for the `workingDirectory` property of the copilot task.
556
555
557
556
## {{ source_path }}
558
557
@@ -726,16 +725,16 @@ Should be replaced with the agent context root for 1ES Agency jobs. This determi
726
725
727
726
## {{ mcp_configuration }}
728
727
729
-
Should be replaced with the MCP server configuration for 1ES templates. For each enabled built-in MCP, generates service connection references:
728
+
Should be replaced with the MCP server configuration for 1ES templates. For each `mcp-servers:` entry without a `command:` field, generates a service connection reference using the entry name:
Custom MCP servers (with `command:` field) are not supported in 1ES target. Only built-in MCPs with corresponding service connections are supported.
737
+
Custom MCP servers (with `command:` field) are not supported in 1ES target. Only entries without a `command:` (which have a corresponding service connection) are supported.
739
738
740
739
## {{ global_options }}
741
740
@@ -1119,30 +1118,7 @@ cargo add <crate-name>
1119
1118
1120
1119
## MCP Configuration
1121
1120
1122
-
The `mcp-servers:` field provides a unified way to configure both built-in and custom MCP (Model Context Protocol) servers. The compiler distinguishes between them by checking for the `command:` field—if present, it's a custom server; otherwise, it's a built-in.
1123
-
1124
-
### Built-in MCP Servers
1125
-
1126
-
Enable built-in servers with `true` or configure them with options:
1127
-
1128
-
```yaml
1129
-
mcp-servers:
1130
-
ado: true # enabled with all default functions
1131
-
ado-ext: true # Extended ADO functionality
1132
-
asa: true # Azure Stream Analytics MCP
1133
-
bluebird: true # Bluebird MCP
1134
-
calculator: true # Calculator MCP
1135
-
es-chat: true
1136
-
icm: # enabled with restricted functions
1137
-
allowed:
1138
-
- create_incident
1139
-
- get_incident
1140
-
kusto:
1141
-
allowed:
1142
-
- query
1143
-
msft-learn: true
1144
-
stack: true # Stack MCP
1145
-
```
1121
+
The `mcp-servers:` field configures custom MCP (Model Context Protocol) servers that the agent can use. Each entry must include a `command:` field specifying the executable to spawn.
1146
1122
1147
1123
### Custom MCP Servers
1148
1124
@@ -1160,28 +1136,16 @@ mcp-servers:
1160
1136
1161
1137
### Configuration Properties
1162
1138
1163
-
**For built-in MCPs:**
1164
-
- `true`- Enable with all default functions
1165
-
- `allowed:`- Array of function names to restrict available tools
1166
-
- `service-connection:`- (1ES target only) Override the service connection name used for this MCP. If not specified, defaults to `mcp-<name>-service-connection` (e.g., `mcp-ado-service-connection` for the `ado` MCP)
1167
-
1168
-
**For custom MCPs (requires `command:`):**
1169
1139
- `command:`- The executable to run (e.g., `"node"`, `"python"`, `"dotnet"`)
1170
1140
- `args:`- Array of command-line arguments passed to the command
1171
1141
- `allowed:`- Array of function names agents are permitted to call (required for security)
1172
1142
- `env:`- Optional environment variables for the MCP server process
1143
+
- `service-connection:`- (1ES target only) Override the service connection name used for this MCP. If not specified, defaults to `mcp-<name>-service-connection`
1173
1144
1174
-
### Example: Mixed Configuration
1145
+
### Example: Multiple Custom MCP Servers
1175
1146
1176
1147
```yaml
1177
1148
mcp-servers:
1178
-
# Built-in servers
1179
-
ado: true
1180
-
ado-ext: true
1181
-
es-chat: true
1182
-
icm:
1183
-
allowed: [create_incident, get_incident]
1184
-
1185
1149
# Custom Python MCP server
1186
1150
data-processor:
1187
1151
command: "python"
@@ -1207,7 +1171,6 @@ mcp-servers:
1207
1171
2. **Command Validation**: The compiler validates that commands are from a trusted set
1208
1172
3. **Argument Sanitization**: Arguments are validated to prevent injection attacks
1209
1173
4. **Environment Isolation**: MCP servers run in the same isolated sandbox as the pipeline
1210
-
5. **Built-in Trust**: Built-in MCPs are pre-vetted; custom MCPs require explicit `allowed:` list
1211
1174
1212
1175
## Network Isolation (AWF)
1213
1176
@@ -1323,17 +1286,13 @@ When agents are configured with multiple MCPs (e.g., `ado`, `kusto`, `icm`), the
The firewall is automatically configured in generated pipelines:
1417
1363
1418
1364
1.**Config Generation**: The compiler generates `mcp-firewall-config.json` from the agent's `mcp-servers:` front matter
1419
-
2.**MCP Registration**: The firewall is registered in the agency MCP config as `mcp-firewall`
1420
-
3.**Runtime Launch**: When agency starts, it launches the firewall which spawns upstream MCPs
1365
+
2.**MCP Registration**: The firewall is registered in the copilot MCP config as `mcp-firewall`
1366
+
3.**Runtime Launch**: When copilot starts, it launches the firewall which spawns upstream MCPs
1421
1367
1422
1368
The firewall config is written to `$(Agent.TempDirectory)/staging/mcp-firewall-config.json` in its own pipeline step, making it easy to inspect and debug.
1423
1369
@@ -1426,9 +1372,9 @@ The firewall config is written to `$(Agent.TempDirectory)/staging/mcp-firewall-c
1426
1372
All tool call attempts are logged to the centralized log file at `$HOME/.ado-aw/logs/YYYY-MM-DD.log`:
0 commit comments