@azure-devops/mcp 2.5.0 → 2.6.0-nightly.20260418

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.
@@ -99,8 +99,8 @@ function configureWorkTools(server, _, connectionProvider) {
99
99
  });
100
100
  server.tool(WORK_TOOLS.list_iterations, "List all iterations in a specified Azure DevOps project. If a project is not specified, you will be prompted to select one.", {
101
101
  project: z.string().optional().describe("The name or ID of the Azure DevOps project. Reuse from prior context if already known. If not provided, a project selection prompt will be shown."),
102
- depth: z.number().default(2).describe("Depth of children to fetch."),
103
- excludedIds: z.array(z.number()).optional().describe("An optional array of iteration IDs, and thier children, that should not be returned."),
102
+ depth: z.coerce.number().default(2).describe("Depth of children to fetch."),
103
+ excludedIds: z.array(z.coerce.number().min(1)).optional().describe("An optional array of iteration IDs, and thier children, that should not be returned."),
104
104
  }, async ({ project, depth, excludedIds: ids }) => {
105
105
  try {
106
106
  const connection = await connectionProvider();
package/dist/tools.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import { Domain } from "./shared/domains.js";
4
4
  import { configureAdvSecTools } from "./tools/advanced-security.js";
5
+ import { configureMcpAppsTools } from "./tools/mcp-apps.js";
5
6
  import { configurePipelineTools } from "./tools/pipelines.js";
6
7
  import { configureCoreTools } from "./tools/core.js";
7
8
  import { configureRepoTools } from "./tools/repositories.js";
@@ -17,12 +18,13 @@ function configureAllTools(server, tokenProvider, connectionProvider, userAgentP
17
18
  }
18
19
  };
19
20
  configureIfDomainEnabled(Domain.CORE, () => configureCoreTools(server, tokenProvider, connectionProvider, userAgentProvider));
21
+ configureIfDomainEnabled(Domain.MCP_APPS, () => configureMcpAppsTools(server));
20
22
  configureIfDomainEnabled(Domain.WORK, () => configureWorkTools(server, tokenProvider, connectionProvider));
21
23
  configureIfDomainEnabled(Domain.PIPELINES, () => configurePipelineTools(server, tokenProvider, connectionProvider, userAgentProvider));
22
24
  configureIfDomainEnabled(Domain.REPOSITORIES, () => configureRepoTools(server, tokenProvider, connectionProvider, userAgentProvider));
23
25
  configureIfDomainEnabled(Domain.WORK_ITEMS, () => configureWorkItemTools(server, tokenProvider, connectionProvider, userAgentProvider));
24
26
  configureIfDomainEnabled(Domain.WIKI, () => configureWikiTools(server, tokenProvider, connectionProvider, userAgentProvider));
25
- configureIfDomainEnabled(Domain.TEST_PLANS, () => configureTestPlanTools(server, tokenProvider, connectionProvider));
27
+ configureIfDomainEnabled(Domain.TEST_PLANS, () => configureTestPlanTools(server, tokenProvider, connectionProvider, userAgentProvider));
26
28
  configureIfDomainEnabled(Domain.SEARCH, () => configureSearchTools(server, tokenProvider, connectionProvider, userAgentProvider));
27
29
  configureIfDomainEnabled(Domain.ADVANCED_SECURITY, () => configureAdvSecTools(server, tokenProvider, connectionProvider));
28
30
  }
package/dist/useragent.js CHANGED
File without changes
package/dist/utils.js CHANGED
@@ -67,3 +67,18 @@ export function encodeFormattedValue(value, format) {
67
67
  const result = value.replace(/</g, "&lt;").replace(/>/g, "&gt;");
68
68
  return result;
69
69
  }
70
+ /**
71
+ * Convert a Node.js ReadableStream to a string.
72
+ * Shared utility for consistent stream handling across tools.
73
+ */
74
+ export function streamToString(stream) {
75
+ return new Promise((resolve, reject) => {
76
+ let data = "";
77
+ stream.setEncoding("utf8");
78
+ stream.on("data", (chunk) => {
79
+ data += chunk;
80
+ });
81
+ stream.on("error", reject);
82
+ stream.on("end", () => resolve(data));
83
+ });
84
+ }
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const packageVersion = "2.5.0";
1
+ export const packageVersion = "2.6.0-nightly.20260418";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-devops/mcp",
3
- "version": "2.5.0",
3
+ "version": "2.6.0-nightly.20260418",
4
4
  "mcpName": "microsoft.com/azure-devops",
5
5
  "description": "MCP server for interacting with Azure DevOps",
6
6
  "license": "MIT",
@@ -40,7 +40,7 @@
40
40
  "dependencies": {
41
41
  "@azure/identity": "^4.10.0",
42
42
  "@azure/msal-node": "^5.0.6",
43
- "@modelcontextprotocol/sdk": "1.27.1",
43
+ "@modelcontextprotocol/sdk": "1.29.0",
44
44
  "azure-devops-extension-api": "^4.264.0",
45
45
  "azure-devops-extension-sdk": "^4.0.2",
46
46
  "azure-devops-node-api": "^15.1.2",
@@ -59,7 +59,7 @@
59
59
  "jest": "^30.0.2",
60
60
  "jest-extended": "^7.0.0",
61
61
  "lint-staged": "^16.2.7",
62
- "prettier": "3.8.1",
62
+ "prettier": "3.8.3",
63
63
  "shx": "^0.4.0",
64
64
  "ts-jest": "^29.4.6",
65
65
  "tsconfig-paths": "^4.2.0",