<?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 Boards | The .NET Blog</title><link>https://thedotnetblog.com/tags/azure-boards/</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-boards/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/posts/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/posts/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></channel></rss>