@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 +41 -14
- package/dist/tools/repositories.js +6 -2
- package/dist/tools/wiki.js +4 -3
- package/dist/version.js +1 -1
- package/package.json +1 -1
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
|
|
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. [๐
|
|
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
|
|
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
|
|
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 [
|
|
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
|
-
|
|
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
|
|
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:
|
|
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:
|
|
183
|
+
content: [{ type: "text", text: noDataErrorMessage }],
|
|
184
|
+
isError: true,
|
|
181
185
|
};
|
|
182
186
|
}
|
|
183
187
|
return {
|
package/dist/tools/wiki.js
CHANGED
|
@@ -201,9 +201,10 @@ function configureWikiTools(server, tokenProvider, connectionProvider, userAgent
|
|
|
201
201
|
if (!resolvedPath) {
|
|
202
202
|
resolvedPath = "/";
|
|
203
203
|
}
|
|
204
|
-
|
|
205
|
-
|
|
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.
|
|
1
|
+
export const packageVersion = "2.7.0-nightly.20260512";
|