@azure-devops/mcp 1.3.1-nightly.20250807 → 1.3.1-nightly.20250809

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.
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- async function getCurrentUserDetails(tokenProvider, connectionProvider) {
3
+ async function getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider) {
4
4
  const connection = await connectionProvider();
5
5
  const url = `${connection.serverUrl}/_apis/connectionData`;
6
6
  const token = (await tokenProvider()).token;
@@ -9,6 +9,7 @@ async function getCurrentUserDetails(tokenProvider, connectionProvider) {
9
9
  headers: {
10
10
  "Authorization": `Bearer ${token}`,
11
11
  "Content-Type": "application/json",
12
+ "User-Agent": userAgentProvider(),
12
13
  },
13
14
  });
14
15
  const data = await response.json();
@@ -15,7 +15,7 @@ const BUILD_TOOLS = {
15
15
  get_status: "build_get_status",
16
16
  update_build_stage: "build_update_build_stage",
17
17
  };
18
- function configureBuildTools(server, tokenProvider, connectionProvider) {
18
+ function configureBuildTools(server, tokenProvider, connectionProvider, userAgentProvider) {
19
19
  server.tool(BUILD_TOOLS.get_definitions, "Retrieves a list of build definitions for a given project.", {
20
20
  project: z.string().describe("Project ID or name to get build definitions for"),
21
21
  repositoryId: z.string().optional().describe("Repository ID to filter build definitions"),
@@ -191,6 +191,7 @@ function configureBuildTools(server, tokenProvider, connectionProvider) {
191
191
  headers: {
192
192
  "Content-Type": "application/json",
193
193
  "Authorization": `Bearer ${token.token}`,
194
+ "User-Agent": userAgentProvider(),
194
195
  },
195
196
  body: JSON.stringify(body),
196
197
  });
@@ -11,7 +11,7 @@ function filterProjectsByName(projects, projectNameFilter) {
11
11
  const lowerCaseFilter = projectNameFilter.toLowerCase();
12
12
  return projects.filter((project) => project.name?.toLowerCase().includes(lowerCaseFilter));
13
13
  }
14
- function configureCoreTools(server, tokenProvider, connectionProvider) {
14
+ function configureCoreTools(server, tokenProvider, connectionProvider, userAgentProvider) {
15
15
  server.tool(CORE_TOOLS.list_project_teams, "Retrieve a list of teams for the specified Azure DevOps project.", {
16
16
  project: z.string().describe("The name or ID of the Azure DevOps project."),
17
17
  mine: z.boolean().optional().describe("If true, only return teams that the authenticated user is a member of."),
@@ -81,6 +81,7 @@ function configureCoreTools(server, tokenProvider, connectionProvider) {
81
81
  headers: {
82
82
  "Authorization": `Bearer ${token.token}`,
83
83
  "Content-Type": "application/json",
84
+ "User-Agent": userAgentProvider(),
84
85
  },
85
86
  });
86
87
  if (!response.ok) {
@@ -73,7 +73,7 @@ function filterReposByName(repositories, repoNameFilter) {
73
73
  const filteredByName = repositories?.filter((repo) => repo.name?.toLowerCase().includes(lowerCaseFilter));
74
74
  return filteredByName;
75
75
  }
76
- function configureRepoTools(server, tokenProvider, connectionProvider) {
76
+ function configureRepoTools(server, tokenProvider, connectionProvider, userAgentProvider) {
77
77
  server.tool(REPO_TOOLS.create_pull_request, "Create a new pull request.", {
78
78
  repositoryId: z.string().describe("The ID of the repository where the pull request will be created."),
79
79
  sourceRefName: z.string().describe("The source branch name for the pull request, e.g., 'refs/heads/feature-branch'."),
@@ -211,7 +211,7 @@ function configureRepoTools(server, tokenProvider, connectionProvider) {
211
211
  repositoryId: repositoryId,
212
212
  };
213
213
  if (created_by_me || i_am_reviewer) {
214
- const data = await getCurrentUserDetails(tokenProvider, connectionProvider);
214
+ const data = await getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider);
215
215
  const userId = data.authenticatedUser.id;
216
216
  if (created_by_me) {
217
217
  searchCriteria.creatorId = userId;
@@ -258,7 +258,7 @@ function configureRepoTools(server, tokenProvider, connectionProvider) {
258
258
  status: pullRequestStatusStringToInt(status),
259
259
  };
260
260
  if (created_by_me || i_am_reviewer) {
261
- const data = await getCurrentUserDetails(tokenProvider, connectionProvider);
261
+ const data = await getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider);
262
262
  const userId = data.authenticatedUser.id;
263
263
  if (created_by_me) {
264
264
  gitPullRequestSearchCriteria.creatorId = userId;
package/dist/tools.js CHANGED
@@ -11,10 +11,10 @@ import { configureWikiTools } from "./tools/wiki.js";
11
11
  import { configureWorkTools } from "./tools/work.js";
12
12
  import { configureWorkItemTools } from "./tools/workitems.js";
13
13
  function configureAllTools(server, tokenProvider, connectionProvider, userAgentProvider) {
14
- configureCoreTools(server, tokenProvider, connectionProvider);
14
+ configureCoreTools(server, tokenProvider, connectionProvider, userAgentProvider);
15
15
  configureWorkTools(server, tokenProvider, connectionProvider);
16
- configureBuildTools(server, tokenProvider, connectionProvider);
17
- configureRepoTools(server, tokenProvider, connectionProvider);
16
+ configureBuildTools(server, tokenProvider, connectionProvider, userAgentProvider);
17
+ configureRepoTools(server, tokenProvider, connectionProvider, userAgentProvider);
18
18
  configureWorkItemTools(server, tokenProvider, connectionProvider, userAgentProvider);
19
19
  configureReleaseTools(server, tokenProvider, connectionProvider);
20
20
  configureWikiTools(server, tokenProvider, connectionProvider);
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const packageVersion = "1.3.1-nightly.20250807";
1
+ export const packageVersion = "1.3.1-nightly.20250809";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-devops/mcp",
3
- "version": "1.3.1-nightly.20250807",
3
+ "version": "1.3.1-nightly.20250809",
4
4
  "description": "MCP server for interacting with Azure DevOps",
5
5
  "license": "MIT",
6
6
  "author": "Microsoft Corporation",