<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azure DevOps | The .NET Blog</title><link>https://thedotnetblog.com/tags/azure-devops/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Mon, 27 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/azure-devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure DevOps MCP Server April Update: WIQL Queries, PAT Auth, and Experimental MCP Apps</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-mcp-server-april-2026-wiql-pat-apps/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-mcp-server-april-2026-wiql-pat-apps/</guid><description>The Azure DevOps MCP Server gets WIQL-powered work item queries, Personal Access Token authentication, MCP annotations, and an experimental MCP Apps feature that packages common workflows into reusable tools.</description><content:encoded>&lt;p&gt;The Azure DevOps MCP Server keeps getting better. Dan Hellem&amp;rsquo;s April update covers both the local and remote servers, and there are some genuinely useful additions here — especially if you&amp;rsquo;ve been using Copilot to navigate boards and repos.&lt;/p&gt;
&lt;h2 id="wiql-query-support"&gt;WIQL Query Support&lt;/h2&gt;
&lt;p&gt;The headline feature: a new &lt;code&gt;wit_query_by_wiql&lt;/code&gt; tool that lets you run Work Item Query Language queries directly from your MCP client.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve used Azure Boards for any length of time, you know WIQL. It&amp;rsquo;s the SQL-like query syntax for work items: &lt;code&gt;SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.AssignedTo] = @Me AND [System.State] = 'Active'&lt;/code&gt;. Having that available as an MCP tool means your Copilot sessions can now pull precise work item sets without you manually filtering or clicking through board views.&lt;/p&gt;
&lt;p&gt;One caveat: on the remote MCP Server, this tool currently requires the &lt;strong&gt;Insiders&lt;/strong&gt; feature flag while they validate query performance at scale. It&amp;rsquo;ll come to everyone once the telemetry looks good.&lt;/p&gt;
&lt;h2 id="personal-access-tokens-on-the-local-server"&gt;Personal Access Tokens on the Local Server&lt;/h2&gt;
&lt;p&gt;The local MCP Server now supports PAT authentication. This sounds like a minor quality-of-life fix, but it&amp;rsquo;s actually important for integration scenarios — specifically when you&amp;rsquo;re running the MCP server in a context where interactive authentication isn&amp;rsquo;t available, or when you&amp;rsquo;re connecting from external clients and automation.&lt;/p&gt;
&lt;p&gt;Setup is documented in the &lt;a href="https://github.com/microsoft/azure-devops-mcp/blob/main/docs/GETTINGSTARTED.md#-personal-access-token-pat"&gt;Getting Started guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="mcp-annotations-on-the-remote-server"&gt;MCP Annotations on the Remote Server&lt;/h2&gt;
&lt;p&gt;Annotations are metadata tags on MCP tools that tell LLMs how to use them safely. The Azure DevOps MCP Server is now implementing annotations for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Read-only tools&lt;/strong&gt; — the LLM knows these are safe to call without user confirmation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Destructive tools&lt;/strong&gt; — the LLM knows to be cautious and confirm before proceeding&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open-world tools&lt;/strong&gt; — the LLM understands these may return unpredictable results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is foundational for agent reliability. Without annotations, the LLM has to guess from the tool name whether it&amp;rsquo;s safe to call. With annotations, the behavior is explicit and the agent can make better decisions.&lt;/p&gt;
&lt;h2 id="wiki-tool-consolidation"&gt;Wiki Tool Consolidation&lt;/h2&gt;
&lt;p&gt;The remote server is starting to consolidate related tools into fewer, more capable ones. The wiki tools are the first to get this treatment:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;New Tool&lt;/th&gt;
&lt;th&gt;Replaces&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wiki&lt;/code&gt; (read-only)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wiki_get_page&lt;/code&gt;, &lt;code&gt;wiki_get_page_content&lt;/code&gt;, &lt;code&gt;wiki_list_pages&lt;/code&gt;, &lt;code&gt;wiki_list_wikis&lt;/code&gt;, &lt;code&gt;wiki_get_wiki&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wiki_upsert_page&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wiki_create_or_update_page&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Fewer tools = better LLM performance. This is a consistent pattern across MCP server design — smaller, focused tool sets work better because the LLM doesn&amp;rsquo;t have to reason about which of five similarly-named tools to pick.&lt;/p&gt;
&lt;h2 id="experimental-mcp-apps"&gt;Experimental: MCP Apps&lt;/h2&gt;
&lt;p&gt;This is the most interesting addition, and it&amp;rsquo;s clearly experimental. MCP Apps are packaged workflows that run inside the MCP server environment:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;servers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ado&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;stdio&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;mcp-server-azuredevops&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;contoso&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-d&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;core&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;work&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;work-items&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;mcp-apps&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The first example is &lt;code&gt;mcp_app_my_work_item&lt;/code&gt; — a self-contained work item experience that lets you view, filter, and edit work items assigned to you, without manually chaining multiple tool calls.&lt;/p&gt;
&lt;p&gt;The idea is compelling: instead of your agent calling &lt;code&gt;wit_get_work_item&lt;/code&gt; → &lt;code&gt;wit_list_work_items&lt;/code&gt; → &lt;code&gt;wit_update_work_item&lt;/code&gt; across multiple turns, a single MCP App provides the entire workflow as one structured, reusable unit. Reduced setup time, consistent behavior, fewer moving parts.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s on the &lt;code&gt;mcp-apps-poc&lt;/code&gt; branch right now, which tells you where it stands in terms of production readiness. But the direction is right — more workflow composition at the MCP layer, less ad-hoc tool chaining in your agent prompts.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;The Azure DevOps MCP Server is maturing quickly. WIQL support and PAT auth are immediate wins for anyone using Copilot with Azure Boards. The annotation work makes the remote server safer for agentic use cases. And MCP Apps, while experimental, hints at where this is going: from raw tools to composable workflows.&lt;/p&gt;
&lt;p&gt;Worth keeping an eye on the &lt;a href="https://learn.microsoft.com/en-us/azure/devops/mcp-server/remote-mcp-server"&gt;documentation&lt;/a&gt; as the remote server continues to evolve.&lt;/p&gt;
&lt;p&gt;Original post by Dan Hellem: &lt;a href="https://devblogs.microsoft.com/devops/azure-devops-mcp-server-april-update/"&gt;Azure DevOps MCP Server April Update&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps Server April 2026 Patch — PR Completion Fix and Security Updates</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-server-april-2026-patch/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-server-april-2026-patch/</guid><description>Azure DevOps Server gets Patch 3 with a fix for PR completion failures, improved sign-out validation, and restored GitHub Enterprise Server PAT connections.</description><content:encoded>&lt;p&gt;Quick heads-up for teams running self-hosted Azure DevOps Server: Microsoft released &lt;a href="https://devblogs.microsoft.com/devops/april-patches-for-azure-devops-server/"&gt;Patch 3 for April 2026&lt;/a&gt; with three targeted fixes.&lt;/p&gt;
&lt;h2 id="whats-fixed"&gt;What&amp;rsquo;s fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pull request completion failures&lt;/strong&gt; — a null reference exception during work item auto-completion could cause PR merges to fail. If you&amp;rsquo;ve hit random PR completion errors, this is likely the cause&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sign-out redirect validation&lt;/strong&gt; — improved validation during sign-out to prevent potential malicious redirects. This is a security fix worth applying promptly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Enterprise Server PAT connections&lt;/strong&gt; — creating Personal Access Token connections to GitHub Enterprise Server was broken, now it&amp;rsquo;s restored&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-update"&gt;How to update&lt;/h2&gt;
&lt;p&gt;Download &lt;a href="https://aka.ms/devopsserverpatch3"&gt;Patch 3&lt;/a&gt; and run the installer. To verify the patch is applied:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;patch-installer&amp;gt;.exe CheckInstall
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you&amp;rsquo;re running Azure DevOps Server on-premises, Microsoft strongly recommends staying on the latest patch for both security and reliability. Check the &lt;a href="https://learn.microsoft.com/azure/devops/server/release-notes/azuredevopsserver?view=azure-devops#azure-devops-server-patch-3-release-date-april-14-2026"&gt;release notes&lt;/a&gt; for full details.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps Finally Fixes the Markdown Editor UX Everyone Complained About</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>The Azure DevOps Markdown editor for work items gets a clearer preview-vs-edit mode distinction. It's a small change that fixes a genuinely annoying workflow issue.</description><content:encoded>&lt;p&gt;If you use Azure Boards, you&amp;rsquo;ve probably experienced this: you&amp;rsquo;re reading through a work item description, maybe reviewing acceptance criteria, and you accidentally double-click. Boom — you&amp;rsquo;re in edit mode. You didn&amp;rsquo;t want to edit anything. You were just reading.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;announced the fix&lt;/a&gt;, and it&amp;rsquo;s one of those changes that sounds tiny but actually removes real friction from your daily workflow.&lt;/p&gt;
&lt;h2 id="what-changed"&gt;What changed&lt;/h2&gt;
&lt;p&gt;The Markdown editor for work item text fields now opens in &lt;strong&gt;preview mode by default&lt;/strong&gt;. You can read and interact with the content — follow links, review formatting — without worrying about accidentally entering edit mode.&lt;/p&gt;
&lt;p&gt;When you actually want to edit, you click the edit icon at the top of the field. When you&amp;rsquo;re done, you exit back to preview mode explicitly. Simple, intentional, predictable.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. That&amp;rsquo;s the change.&lt;/p&gt;
&lt;h2 id="why-this-matters-more-than-it-sounds"&gt;Why this matters more than it sounds&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;community feedback thread&lt;/a&gt; on this was long. The double-click-to-edit behavior was introduced with the Markdown editor back in July 2025, and the complaints started almost immediately. The problem wasn&amp;rsquo;t just accidental edits — it was that the whole interaction felt unpredictable. You never knew if clicking would read or edit.&lt;/p&gt;
&lt;p&gt;For teams that do sprint planning, backlog grooming, or code review with Azure Boards, this kind of micro-friction compounds. Every accidental edit mode entry is a context switch. Every &amp;ldquo;wait, did I change something?&amp;rdquo; moment is wasted attention.&lt;/p&gt;
&lt;p&gt;The new default respects the most common interaction pattern: you read work items far more often than you edit them.&lt;/p&gt;
&lt;h2 id="rollout-status"&gt;Rollout status&lt;/h2&gt;
&lt;p&gt;This is already rolling out to a subset of customers and expanding to everyone over the next two to three weeks. If you&amp;rsquo;re not seeing it yet, you will soon.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Not every improvement needs to be a headline feature. Sometimes the best update is just removing something annoying. This is one of those — a small UX fix that makes Azure Boards feel less hostile to people who just want to read their work items in peace.&lt;/p&gt;</content:encoded></item></channel></rss>