@azure-devops/mcp 2.7.0-nightly.20260510 โ†’ 2.7.0-nightly.20260512

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,19 +3,19 @@
3
3
  > [!IMPORTANT]
4
4
  > The Azure DevOps Remote MCP Server is now available in public preview for all organizations. We recommend migrating to the [Remote MCP Server](https://learn.microsoft.com/en-us/azure/devops/mcp-server/remote-mcp-server) going forward.
5
5
  >
6
- > [Learn more](#-remote-mcp-server)
6
+ > [Learn more](#-remote-mcp-server-recommended)
7
7
 
8
- This TypeScript project provides a **local** MCP server for Azure DevOps, enabling you to perform a wide range of Azure DevOps tasks directly from your code editor.
8
+ This project provides Azure DevOps MCP tooling for AI agents, with a **remote-first** onboarding experience and a local server option when you need it.
9
9
 
10
10
  ## ๐Ÿ“„ Table of Contents
11
11
 
12
12
  1. [๐Ÿ“บ Overview](#-overview)
13
13
  2. [๐Ÿ† Expectations](#-expectations)
14
- 3. [๐Ÿš€ Remote MCP Server](#-remote-mcp-server)
14
+ 3. [๐Ÿš€ Remote MCP Server (Recommended)](#-remote-mcp-server-recommended)
15
15
  4. [โš™๏ธ Supported Tools](#๏ธ-supported-tools)
16
- 5. [๐Ÿ”Œ Installation & Getting Started](#-installation--getting-started)
17
- 6. [๐ŸŒ Using Domains](#-using-domains)
18
- 7. [๐Ÿฅ Project and Team Defaults](#-project-and-team-defaults)
16
+ 5. [๐Ÿ”Œ Local MCP Server Installation (Optional)](#-local-mcp-server-installation-optional)
17
+ 6. [๐ŸŒ Using Domains (local)](#-using-domains-local)
18
+ 7. [๐Ÿฅ Project and Team Defaults (local)](#-project-and-team-defaults-local)
19
19
  8. [๐Ÿ“ Troubleshooting](#-troubleshooting)
20
20
  9. [๐ŸŽฉ Examples & Best Practices](#-examples--best-practices)
21
21
  10. [๐Ÿ™‹โ€โ™€๏ธ Frequently Asked Questions](#๏ธ-frequently-asked-questions)
@@ -40,9 +40,9 @@ The Azure DevOps MCP Server brings Azure DevOps context to your agents. Try prom
40
40
 
41
41
  ## ๐Ÿ† Expectations
42
42
 
43
- The Azure DevOps MCP Server is built from tools that are concise, simple, focused, and easy to useโ€”each designed for a specific scenario. We intentionally avoid complex tools that try to do too much. The goal is to provide a thin abstraction layer over the REST APIs, making data access straightforward and letting the language model handle complex reasoning.
43
+ The Azure DevOps MCP Server is built around tools that are concise, simple, focused, and easy to use, with each one designed for a specific scenario. We intentionally avoid creating complex tools that try to do too much. The goal is to provide a thin abstraction layer over the REST APIs that makes data access straightforward while allowing the language model to handle the more complex reasoning.
44
44
 
45
- ## ๐Ÿš€ Remote MCP Server
45
+ ## ๐Ÿš€ Remote MCP Server (Recommended)
46
46
 
47
47
  The Azure DevOps **Remote MCP Server** is now available in [public preview](https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview).
48
48
 
@@ -55,13 +55,40 @@ If you encounter issues with tools, need support, or have a feature request, you
55
55
  > [!WARNING]
56
56
  > Internal Microsoft users of the Remote MCP Server should **not** create issues in this repository. Please use the dedicated Teams channel instead.
57
57
 
58
- For instructions on how to get started with the Remote MCP Server, see the [onboarding documentation](https://learn.microsoft.com/en-us/azure/devops/mcp-server/remote-mcp-server).
58
+ For complete instructions, see the [Remote MCP Server onboarding documentation](https://learn.microsoft.com/en-us/azure/devops/mcp-server/remote-mcp-server?view=azure-devops).
59
+
60
+ ### Quick start with `.vscode/mcp.json`
61
+
62
+ Use this configuration to connect directly to the Azure DevOps-hosted endpoint using streamable HTTP transport:
63
+
64
+ ```json
65
+ {
66
+ "servers": {
67
+ "ado-remote-mcp": {
68
+ "url": "https://mcp.dev.azure.com/{organization}",
69
+ "type": "http"
70
+ }
71
+ },
72
+ "inputs": []
73
+ }
74
+ ```
75
+
76
+ See [documentation](https://learn.microsoft.com/en-us/azure/devops/mcp-server/remote-mcp-server?view=azure-devops#mcpjson-configuration) for additional configuration options.
77
+
78
+ After saving `.vscode/mcp.json`, start the server from the MCP view in VS Code, then run a prompt like `List ADO projects`.
59
79
 
60
80
  ## โš™๏ธ Supported Tools
61
81
 
62
- See [TOOLSET.md](./docs/TOOLSET.md) for a comprehensive list.
82
+ See the [Available Tools](https://learn.microsoft.com/en-us/azure/devops/mcp-server/remote-mcp-server?view=azure-devops#available-tools) documentation for the complete list of available remote tools.
83
+
84
+ For a comprehensive list of local tools, see [TOOLSET.md](./docs/TOOLSET.md).
85
+
86
+ ## ๐Ÿ”Œ Local MCP Server Installation (Optional)
87
+
88
+ > [!IMPORTANT]
89
+ > Start with the Remote MCP Server first. Use the local MCP Server only if your scenario specifically requires a local `stdio` setup.
63
90
 
64
- ## ๐Ÿ”Œ Installation & Getting Started
91
+ Use this section if you specifically need the local `stdio` server experience. For most users, start with the [Remote MCP Server](#-remote-mcp-server-recommended) section above.
65
92
 
66
93
  For the best experience, use Visual Studio Code and GitHub Copilot. See the [getting started documentation](./docs/GETTINGSTARTED.md) to use our MCP Server with other tools such as Visual Studio 2022, Claude Code, Cursor, Opencode, and Kilocode.
67
94
 
@@ -73,7 +100,7 @@ For the best experience, use Visual Studio Code and GitHub Copilot. See the [get
73
100
 
74
101
  ### Installation
75
102
 
76
- #### ๐Ÿงจ Install from Public Feed (Recommended)
103
+ #### ๐Ÿงจ Install from Public Feed
77
104
 
78
105
  This installation method is the easiest for all users of Visual Studio Code.
79
106
 
@@ -140,7 +167,7 @@ Open GitHub Copilot Chat and try a prompt like `List ADO projects`. The first ti
140
167
 
141
168
  See the [getting started documentation](./docs/GETTINGSTARTED.md) to use our MCP Server with other tools such as Visual Studio 2022, Claude Code, and Cursor.
142
169
 
143
- ## ๐ŸŒ Using Domains
170
+ ## ๐ŸŒ Using Domains (local)
144
171
 
145
172
  Azure DevOps exposes a large surface area. As a result, our Azure DevOps MCP Server includes many tools. To keep the toolset manageable, avoid confusing the model, and respect client limits on loaded tools, use Domains to load only the areas you need. Domains are named groups of related tools (for example: core, work, work-items, repositories, wiki). Add the `-d` argument and the domain names to the server args in your `mcp.json` to list the domains to enable.
146
173
 
@@ -171,7 +198,7 @@ We recommend that you always enable `core` tools so that you can fetch project l
171
198
 
172
199
  > By default all domains are loaded
173
200
 
174
- ## ๐Ÿฅ Project and Team Defaults
201
+ ## ๐Ÿฅ Project and Team Defaults (local)
175
202
 
176
203
  You can also configure default Azure DevOps project and team values from `.vscode/mcp.json` using `project` and `team`, so tools can skip selection prompts.
177
204
 
@@ -144,6 +144,8 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
144
144
  const connection = await connectionProvider();
145
145
  const gitApi = await connection.getGitApi();
146
146
  const workItemRefs = workItems ? workItems.split(" ").map((id) => ({ id: id.trim() })) : [];
147
+ const noDataErrorMessage = `Pull request creation returned no data and no matching PR was found. This often means repositoryId=\"${repositoryId}\" was not resolvable. ` +
148
+ "Try the repository GUID from repo_list_repos_by_project instead of the Project/RepoName slash format.";
147
149
  const forkSource = forkSourceRepositoryId
148
150
  ? {
149
151
  repository: {
@@ -170,14 +172,16 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
170
172
  }
171
173
  else {
172
174
  return {
173
- content: [{ type: "text", text: "Pull request created but API returned no data." }],
175
+ content: [{ type: "text", text: noDataErrorMessage }],
176
+ isError: true,
174
177
  };
175
178
  }
176
179
  }
177
180
  const trimmedPullRequest = trimPullRequest(pullRequest, true);
178
181
  if (!trimmedPullRequest) {
179
182
  return {
180
- content: [{ type: "text", text: "Pull request created but API returned no data." }],
183
+ content: [{ type: "text", text: noDataErrorMessage }],
184
+ isError: true,
181
185
  };
182
186
  }
183
187
  return {
@@ -201,9 +201,10 @@ function configureWikiTools(server, tokenProvider, connectionProvider, userAgent
201
201
  if (!resolvedPath) {
202
202
  resolvedPath = "/";
203
203
  }
204
- if (!resolvedProject || !resolvedWiki) {
205
- return { content: [{ type: "text", text: "Project and wikiIdentifier must be defined to fetch wiki page content." }], isError: true };
206
- }
204
+ // resolvedProject and resolvedWiki are guaranteed to be defined here:
205
+ // - the url branch errors out in parseWikiUrl when project/wikiIdentifier are missing
206
+ // - the pair branch enforces both via the hasPair check above
207
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
207
208
  const stream = await wikiApi.getPageText(resolvedProject, resolvedWiki, resolvedPath, undefined, undefined, true);
208
209
  if (!stream) {
209
210
  return { content: [{ type: "text", text: "No wiki page content found" }], isError: true };
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const packageVersion = "2.7.0-nightly.20260510";
1
+ export const packageVersion = "2.7.0-nightly.20260512";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-devops/mcp",
3
- "version": "2.7.0-nightly.20260510",
3
+ "version": "2.7.0-nightly.20260512",
4
4
  "mcpName": "microsoft.com/azure-devops",
5
5
  "description": "MCP server for interacting with Azure DevOps",
6
6
  "license": "MIT",