Getting started with Azure Devops MCP in VS Code

What is MCP? It stands for Model Context Protocol and enables your AI Agent (Such as Github Copilot in VS Code) to integrate directly against other systems. One such system is Azure Devops. This tools enables Copilot to read most of your organisation Azure Devops information.

So instead of context switching and copy pasting info from Devops (error messages or User Stories information etc) you can just ask your AI agent directly in your IDE.

Examples of useful prompts for a developer: (from ChatGPT)

Pipeline & Run Inspection

“Find my latest failed run for pipeline Backend-CI and summarize which step failed, including the log excerpt around the error.”

“Get the duration trend for the last 20 runs of ClientSPA-CI and highlight the slowest job.”

“List all pipelines that have not run in the last 60 days.”

“Compare two pipeline runs (Run 1412 and Run 1477) for MyApplication-API and explain the differences in steps, duration, and triggered changes.”


Pull Requests & Repo Info

“Show me all active PRs in the repo MyApplication that have unresolved comments.”

“Which PRs were merged this week, and which work items did they close?”

“Summarize the diff for PR 84303, but only include changes in the Angular project under ClientSPA/.”

“List files in the repo MyApplication that changed in the last 48 hours.”

“Search all repositories for references to ProductRowID.”


Work Items

“Find all work items assigned to me that are blocked by another work item, and summarize the blockers.”

“Show me work items marked as ‘Ready for test’ but not linked to any build or PR.”

“List all bugs created in the last 7 days containing the word paracetamol.”


Artifacts & Variables

“Show me all variable groups used by Backend-CI.”

“Fetch the artifacts for pipeline run 292 of ClientSPA-CI, list their sizes, and highlight anything over 100 MB.”

“Find pipelines that reference the variable AzureAd:ClientSecret.”

 

Setup in VS Code:
azure-devops-mcp/docs/GETTINGSTARTED.md at main · microsoft/azure-devops-mcp

General installation guide:
https://learn.microsoft.com/en-us/azure/devops/mcp-server/mcp-server-overview?view=azure-devops#install-mcp-server

 

ShellMenuNew – Disable/enable ‘New’ menu items in Windows Explorer

ShellMenuNew is a small utility that displays the list of all menu items in the ‘New’ submenu of Windows Explorer. It allows you to easily disable unwanted menu items, so this ‘New’ submenu will display only the items that you need.

Source: ShellMenuNew – Disable/enable ‘New’ menu items in Windows Explorer

Animations CSS Generator | Web Code Tools

Our CSS Animation Generator is the perfect tool for web developers and designers! You can build the perfect animation for your project, choosing from a wide variety of predefined animations or customizing any of them through user-friendly options. Tailor properties like name, duration, timing, and delay to suit your design needs, and bring your website to life with seamless motion effects. Perfect for beginners and experts alike, this tool makes creating animations easier, saving you lots of time and effort

Source: Animations CSS Generator | Web Code Tools

Fixing github auth problem, cloning repository to Webstorm IDE

This probably works for other IDEs as well such as VS Code.
My context is Windows 10 and Webstorm version 2024.3.2.1

Problem: was connected to  my “work” github account and wanted also to be able to work with repos in my “private” github account.

Added the Github account in webstorm settings -> version control -> github -> (was logged in on github private account in web browser), got web browser authenticate question -> ok

Cloned a repo, got similar to the following git error message:

remote: Repository not found. fatal: repository 'https://github.com/MyUser/MyRepo.git/' not found

The repository exists at that location, its an auth problem.

Solution:

Tried to setup SSH but was a bit difficult, the “GitHub Desktop” application had no problem cloning and pushing though, but wanted it to work within Webstorm.

I tried the Github CLI application, download here: https://cli.github.com/

Open a terminal within Webstorm/at the project root and execute the gh command:

gh auth login

Follow the instructions regarding auth with web browser, (enter the one-time code at https://github.com/login/device).
Output from my terminal:

$ gh auth login
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: ABCD-1234
Press Enter to open https://github.com/login/device in your browser...
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as AndreasPlahn

Voila! Now it works for me, at least.

Update:
When pushing from Webstorm I get a dialog (on every push) which github acccount I want to be acting as.

This was annoying. Solved in this way:
(in cmd):

git credential-manager github list
-> see all logged in accounts

git credential-manager github logout <MyGithubAccountName>
-> logout one of the accounts to avoid

More info about git credential-manager in Windows:
https://github.com/git-ecosystem/git-credential-manager/blob/release/docs/usage.md

Host and deploy Angular web app using Azure and Github

I am using Angular v17 and node v18.
In simple steps;
Goto azure portal.
Create a new resource of type “Static Web App”
I choose Github as Deployment source.

Regarding Angular v17, I had problems with the github deployment build actions:

  • Node was configured as v16 but angular v17 needs node v18
  • path to index.html for dist build could not be found

After Azure has created the static web app for Github deployment the following file is pushed into the repo:

.github/workflow/azure-static-web-apps-[*].yml

I hade to set the following values correctly:

app_location: "./" # App source code path
output_location: "./dist/gps-tracker/browser" # Built app content directory - optional

The output location should point to where the index.html file is located.
You should change the ‘gps-tracker’ to your application name. To find out exactly run ‘ng build’ locally and look into the created dist folder.

Regarding setting node version to 18: I added the following in the yml file:

env:
  NODE_VERSION: '18.x'

Print screen of node version setting:

Whimsical – simple diagram tooling for software development

Whimsical combines whiteboards and docs in an all-in-one collaboration hub.
Flow charts, mind maps, wireframes

Good starting template for wireframing applications:
https://whimsical.com/wireframe-parts-kit-Ft4RAtBFHfYFa8da1weDuV

Source: Whimsical – Where great ideas take shape

C# .NET – Generate error message when “async void” is used in code

The mentioned AsyncFixer extension and Nuget Package are super useful when dealing with async code. They both package a Roslyn analyzer that detects many async issues and provides an automatic fix for them as well in most cases. Using the .editorconfig in Visual Studio you can configure specific warnings as errors:
[*.cs] # AsyncFixer03: Fire-and-forget async-void methods or delegates dotnet_diagnostic.AsyncFixer03.severity = error
And you can set that straight from the Solution Explorer in case you’ve a

Source: c# – Generate error message when “async void” is used in code – Stack Overflow