Skip to content

Commit 6750a3e

Browse files
waageherCopilotjc-clark
authored
Add Azure DevOps MCP server setup example for Coding agent (#57591)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com>
1 parent 54c7eab commit 6750a3e

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

content/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,54 @@ The [Cloudflare MCP server](https://github.com/cloudflare/mcp-server-cloudflare)
222222
}
223223
```
224224

225+
### Example: Azure DevOps
226+
227+
The [Azure DevOps MCP server](https://github.com/microsoft/azure-devops-mcp) creates a seamless connection between {% data variables.product.prodname_copilot_short %} and your Azure DevOps services, including work items, pipelines or documentation.
228+
229+
To use the Azure DevOps MCP server with {% data variables.copilot.copilot_coding_agent %}, you must update the repository's copilot-setup-steps.yml file to include an Azure login workflow step.
230+
231+
1. Configure OIDC in a Microsoft Entra application, trusting {% data variables.product.github %}. See [Use the Azure Login action with OpenID Connect](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect).
232+
1. Setup access to Azure DevOps organization and projects for the application identity. See [Add organization users and manage access](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/add-organization-users).
233+
1. Add a `.github/workflows/copilot-setup-steps.yml` Actions workflow file in your repository if you do not already have one.
234+
1. Add an Azure login step to the `copilot-setup-steps` workflow job.
235+
```yaml copy
236+
on:
237+
workflow_dispatch:
238+
permissions:
239+
id-token: write
240+
contents: read
241+
jobs:
242+
copilot-setup-steps:
243+
runs-on: ubuntu-latest
244+
permissions:
245+
id-token: write
246+
contents: read
247+
environment: copilot
248+
steps:
249+
- name: Azure login
250+
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5
251+
with:
252+
client-id: {% raw %}${{ secrets.AZURE_CLIENT_ID }}{% endraw %}
253+
tenant-id: {% raw %}${{ secrets.AZURE_TENANT_ID }}{% endraw %}
254+
allow-no-subscriptions: true
255+
```
256+
This configuration ensures the `azure/login` action is executed when {% data variables.copilot.copilot_coding_agent %} runs.
257+
1. In your repository’s {% data variables.product.prodname_copilot_short %} environment, add secrets for your `AZURE_CLIENT_ID` and `AZURE_TENANT_ID`.
258+
1. Configure the Azure DevOps MCP server by adding an `ado` object to your MCP configuration with defined tools you want {% data variables.copilot.copilot_coding_agent %} to use.
259+
```json copy
260+
{
261+
"mcpServers": {
262+
"ado": {
263+
"type": "local",
264+
"command": "npx",
265+
"args": ["-y", "@azure-devops/mcp", "<your-azure-devops-organization>", "-a", "azcli"],
266+
"tools": ["wit_get_work_item", "wit_get_work_items_batch_by_ids", ...]
267+
}
268+
}
269+
}
270+
```
271+
272+
225273
## Reusing your MCP configuration from {% data variables.product.prodname_vscode %}
226274

227275
If you have already configured MCP servers in {% data variables.product.prodname_vscode_shortname %}, you can leverage a similar configuration for {% data variables.copilot.copilot_coding_agent %}.

0 commit comments

Comments
 (0)