$npx -y skills add microsoft/azure-devops-skills --skill pipelines-build-summaryList, inspect, and troubleshoot Azure DevOps pipeline builds. Shows recent builds for a pipeline definition, drills into a specific build's status and result, displays logs for failed steps, and lists the changes associated with a build.
| 1 | # Pipeline build summary |
| 2 | |
| 3 | This skill works in the context of a **project**. A **pipeline definition** or **build ID** is optional and depends on what the user asks. |
| 4 | |
| 5 | ## Project selection |
| 6 | |
| 7 | - If the user **provides a project name** in their request (for example, "for Contoso"), use that project directly and **do not call** `core_list_projects`. |
| 8 | - If the user **does not provide a project name**, first ask the user once to provide the project name. |
| 9 | - If the project name is **still not provided after asking once**, call `core_list_projects` to return a list of projects the user can choose from. |
| 10 | |
| 11 | ## Pipeline definition selection |
| 12 | |
| 13 | - If the user **provides a pipeline or definition name**, use `pipelines_definition` with action `list` and a `name` filter to find it. |
| 14 | - If the user **does not specify a pipeline** and the request requires one (for example, "show recent builds"), ask the user once for the pipeline name. |
| 15 | - If the pipeline name is **still not provided after asking once**, call `pipelines_definition` with action `list` to list available definitions for the user to choose from. |
| 16 | |
| 17 | # Tools |
| 18 | |
| 19 | Use Azure DevOps MCP Server tools for all interactions with Azure DevOps. |
| 20 | |
| 21 | - `core_list_projects`: Get a list of projects in the organization. |
| 22 | - `pipelines_definition` (action: `list`): Get a list of build/pipeline definitions for a project. |
| 23 | - `pipelines_build` (action: `list`): Get a list of builds, optionally filtered by definition, branch, or status. |
| 24 | - `pipelines_build` (action: `get_status`): Get the status and result of a specific build by ID. |
| 25 | - `pipelines_build_log` (action: `list`): Get the list of logs for a specific build. |
| 26 | - `pipelines_build_log` (action: `get_content`): Get a specific log by log ID for a build (use to retrieve failed step logs). |
| 27 | - `pipelines_build` (action: `get_changes`): Get the commits/changes associated with a specific build. |
| 28 | |
| 29 | # Rules |
| 30 | |
| 31 | ## 1. List recent builds for a pipeline |
| 32 | |
| 33 | - When the user asks to **list builds** or **show recent builds** for a pipeline, call `pipelines_build` with action `list` filtered by the definition ID. |
| 34 | - Optionally filter by `branchName`, `statusFilter`, or `resultFilter` if the user specifies (for example, "failed builds on main"). |
| 35 | - Do **not** fetch logs or changes unless the user asks. |
| 36 | - Show the results in a table. |
| 37 | - If there are no builds, explicitly state that there are no builds for this pipeline. |
| 38 | |
| 39 | ### Example |
| 40 | |
| 41 | - "show recent builds for pipeline 'CI-Main' in project Contoso" |
| 42 | |
| 43 | ## 2. Get build status by ID |
| 44 | |
| 45 | - When the user asks about a **specific build** (for example, "build 12345"), call `pipelines_build` with action `get_status` with that build ID. |
| 46 | - Show the build number, status, result, source branch, start/finish time, requested by, and definition name. |
| 47 | - If the build failed, suggest viewing the logs. |
| 48 | |
| 49 | ### Example |
| 50 | |
| 51 | - "what is the status of build 12345 in project Contoso?" |
| 52 | |
| 53 | ## 3. View logs for a failed build |
| 54 | |
| 55 | - When the user asks to **view logs** or **why a build failed**, first call `pipelines_build_log` with action `list` to get the list of all log entries for the build. |
| 56 | - Identify failed steps from the log list (look for steps that indicate errors or failures). |
| 57 | - Call `pipelines_build_log` with action `get_content` for the relevant failed log entries to retrieve the actual log content. |
| 58 | - Present the log output in a code block so it is easy to read. |
| 59 | - Do **not** dump all logs. Focus on the failed steps and the last portion of each relevant log. |
| 60 | |
| 61 | ### Example |
| 62 | |
| 63 | - "show me the logs for build 12345 in project Contoso" |
| 64 | - "why did build 12345 fail?" |
| 65 | |
| 66 | ## 4. List changes for a build |
| 67 | |
| 68 | - When the user asks to **see what changed** or **list commits** for a build, call `pipelines_build` with action `get_changes` with the build ID. |
| 69 | - Show the results in a table with commit ID, author, and message. |
| 70 | - If there are no changes, explicitly state that there are no changes associated with this build. |
| 71 | |
| 72 | ### Example |
| 73 | |
| 74 | - "what changes were in build 12345?" |
| 75 | - "list commits for build 12345 in project Contoso" |
| 76 | |
| 77 | # Display results |
| 78 | |
| 79 | When displaying build lists, show the following in a table: |
| 80 | |
| 81 | - **Build ID** as a clickable hyperlink in this format: `[{buildId}](https://dev.azure.com/{organization}/{project}/_build/results?buildId={buildId})` |
| 82 | - **Definition name** |
| 83 | - **Status** (for example: completed, inProgress, cancelling, notStarted) |
| 84 | - **Result** (for example: succeeded, failed, canceled, partiallySucceeded) — use emoji: ✅ succeeded, ❌ failed, ⚠️ partiallySucceeded, 🚫 canceled |
| 85 | - **Source branch** |
| 86 | - **Start time** formatted as `MM/DD/YYYY HH:MM` |
| 87 | - **Requested by** (display name only) |
| 88 | |
| 89 | When displaying a single build's status, show all the above fields plus: |
| 90 | - **Finish time** formatted as `MM/DD/YYYY HH:M |