@mcp-consultant-tools/azure-devops 35.0.0-beta.1 → 35.0.0-beta.2

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.
Files changed (59) hide show
  1. package/build/cli/commands/build-commands.d.ts.map +1 -1
  2. package/build/cli/commands/build-commands.js +27 -0
  3. package/build/cli/commands/build-commands.js.map +1 -1
  4. package/build/cli/commands/git-commands.d.ts +7 -0
  5. package/build/cli/commands/git-commands.d.ts.map +1 -0
  6. package/build/cli/commands/git-commands.js +68 -0
  7. package/build/cli/commands/git-commands.js.map +1 -0
  8. package/build/cli/commands/index.d.ts +1 -0
  9. package/build/cli/commands/index.d.ts.map +1 -1
  10. package/build/cli/commands/index.js +3 -0
  11. package/build/cli/commands/index.js.map +1 -1
  12. package/build/cli/commands/variable-group-commands.d.ts +1 -1
  13. package/build/cli/commands/variable-group-commands.d.ts.map +1 -1
  14. package/build/cli/commands/variable-group-commands.js +86 -1
  15. package/build/cli/commands/variable-group-commands.js.map +1 -1
  16. package/build/context-factory.d.ts.map +1 -1
  17. package/build/context-factory.js +3 -1
  18. package/build/context-factory.js.map +1 -1
  19. package/build/services/build-issues.d.ts +66 -0
  20. package/build/services/build-issues.d.ts.map +1 -0
  21. package/build/services/build-issues.js +70 -0
  22. package/build/services/build-issues.js.map +1 -0
  23. package/build/services/build-service.d.ts +6 -0
  24. package/build/services/build-service.d.ts.map +1 -1
  25. package/build/services/build-service.js +24 -0
  26. package/build/services/build-service.js.map +1 -1
  27. package/build/services/git-service.d.ts +97 -0
  28. package/build/services/git-service.d.ts.map +1 -0
  29. package/build/services/git-service.js +123 -0
  30. package/build/services/git-service.js.map +1 -0
  31. package/build/services/index.d.ts +1 -0
  32. package/build/services/index.d.ts.map +1 -1
  33. package/build/services/index.js +1 -0
  34. package/build/services/index.js.map +1 -1
  35. package/build/services/variable-group-compare.d.ts +80 -0
  36. package/build/services/variable-group-compare.d.ts.map +1 -0
  37. package/build/services/variable-group-compare.js +101 -0
  38. package/build/services/variable-group-compare.js.map +1 -0
  39. package/build/services/variable-group-service.d.ts +31 -0
  40. package/build/services/variable-group-service.d.ts.map +1 -1
  41. package/build/services/variable-group-service.js +110 -0
  42. package/build/services/variable-group-service.js.map +1 -1
  43. package/build/tools/build-tools.d.ts.map +1 -1
  44. package/build/tools/build-tools.js +14 -0
  45. package/build/tools/build-tools.js.map +1 -1
  46. package/build/tools/git-tools.d.ts +3 -0
  47. package/build/tools/git-tools.d.ts.map +1 -0
  48. package/build/tools/git-tools.js +37 -0
  49. package/build/tools/git-tools.js.map +1 -0
  50. package/build/tools/index.d.ts +1 -0
  51. package/build/tools/index.d.ts.map +1 -1
  52. package/build/tools/index.js +8 -3
  53. package/build/tools/index.js.map +1 -1
  54. package/build/tools/variable-group-tools.d.ts.map +1 -1
  55. package/build/tools/variable-group-tools.js +43 -1
  56. package/build/tools/variable-group-tools.js.map +1 -1
  57. package/build/types.d.ts +2 -0
  58. package/build/types.d.ts.map +1 -1
  59. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"build-tools.d.ts","sourceRoot":"","sources":["../../src/tools/build-tools.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAkEzE"}
1
+ {"version":3,"file":"build-tools.d.ts","sourceRoot":"","sources":["../../src/tools/build-tools.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAsFzE"}
@@ -53,5 +53,19 @@ export function registerBuildTools(server, ctx) {
53
53
  return { content: [{ type: "text", text: `Failed to get build logs: ${error.message}` }] };
54
54
  }
55
55
  });
56
+ server.tool("build-issues", "Extract every warning and error from a build, read straight from the timeline's issues (no log download needed). Each issue carries its full message and the timeline record it came from. 'timelineCounters' is the server's own error/warning tally; when 'countersExceedListedIssues' is true the server counted problems it attached no message to, so the listed detail is a subset.", {
57
+ project: z.string().describe("The project name"),
58
+ buildId: zCoerceNumber().describe("The build ID"),
59
+ severity: z.enum(['all', 'errors', 'warnings']).optional().describe("Which issues to list (default 'all'). Totals always cover both."),
60
+ }, { readOnlyHint: true, openWorldHint: true }, async ({ project, buildId, severity }) => {
61
+ try {
62
+ const result = await ctx.build.getBuildIssues(project, buildId, severity || 'all');
63
+ return { content: [{ type: "text", text: `Build ${buildId} issues:\n\n${JSON.stringify(result, null, 2)}` }] };
64
+ }
65
+ catch (error) {
66
+ console.error("Error getting build issues:", error);
67
+ return { content: [{ type: "text", text: `Failed to get build issues: ${error.message}` }] };
68
+ }
69
+ });
56
70
  }
57
71
  //# sourceMappingURL=build-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-tools.js","sourceRoot":"","sources":["../../src/tools/build-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-tools.js","sourceRoot":"","sources":["../../src/tools/build-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ServiceContext } from '../types.js';
2
+ export declare function registerGitTools(server: any, ctx: ServiceContext): void;
3
+ //# sourceMappingURL=git-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-tools.d.ts","sourceRoot":"","sources":["../../src/tools/git-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAyCvE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Git Tools - 2 read-only tools for repository branches
3
+ */
4
+ import { z } from 'zod';
5
+ import { zCoerceNumber } from '../schemas.js';
6
+ export function registerGitTools(server, ctx) {
7
+ server.tool("list-branches", "List branches in an Azure DevOps Git repository. Returns the short name, the full ref name, and the tip commit SHA (the refs API exposes no commit date). 'truncated' is true when more branches exist than 'maxResults' allowed.", {
8
+ project: z.string().describe("The project name"),
9
+ repositoryId: z.string().describe("Repository name or ID (use list-repositories to find it)"),
10
+ filter: z.string().optional().describe("Ref prefix filter, default 'heads/'. Use 'heads/feature/' to list one folder"),
11
+ maxResults: zCoerceNumber().optional().describe("Maximum branches to return (default 200)"),
12
+ }, { readOnlyHint: true, openWorldHint: true }, async ({ project, repositoryId, filter, maxResults }) => {
13
+ try {
14
+ const result = await ctx.git.listBranches(project, repositoryId, { filter, maxResults });
15
+ return { content: [{ type: "text", text: `Branches in '${repositoryId}' (${project}):\n\n${JSON.stringify(result, null, 2)}` }] };
16
+ }
17
+ catch (error) {
18
+ console.error("Error listing branches:", error);
19
+ return { content: [{ type: "text", text: `Failed to list branches: ${error.message}` }] };
20
+ }
21
+ });
22
+ server.tool("latest-release-branch", "Find the newest 'release/*' branch in a repository. 'Newest' means the highest version by digit-aware natural sort, so release/10 beats release/9 (a plain lexical sort gets this backwards). Branches with no digit in their name (e.g. release/next) cannot be ranked and are excluded, but are reported under 'ignoredNonVersionBranches' rather than silently dropped. Azure DevOps exposes no commit date on refs, so this does NOT mean 'most recently committed'.", {
23
+ project: z.string().describe("The project name"),
24
+ repositoryId: z.string().describe("Repository name or ID (use list-repositories to find it)"),
25
+ prefix: z.string().optional().describe("Branch prefix, default 'release/'"),
26
+ }, { readOnlyHint: true, openWorldHint: true }, async ({ project, repositoryId, prefix }) => {
27
+ try {
28
+ const result = await ctx.git.getLatestReleaseBranch(project, repositoryId, { prefix });
29
+ return { content: [{ type: "text", text: `Latest release branch in '${repositoryId}' (${project}):\n\n${JSON.stringify(result, null, 2)}` }] };
30
+ }
31
+ catch (error) {
32
+ console.error("Error finding latest release branch:", error);
33
+ return { content: [{ type: "text", text: `Failed to find latest release branch: ${error.message}` }] };
34
+ }
35
+ });
36
+ }
37
+ //# sourceMappingURL=git-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-tools.js","sourceRoot":"","sources":["../../src/tools/git-tools.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export { registerWikiTools } from './wiki-tools.js';
8
8
  export { registerWorkItemTools } from './work-item-tools.js';
9
9
  export { registerPullRequestTools, getPrWriteToolCount } from './pull-request-tools.js';
10
10
  export { registerBuildTools } from './build-tools.js';
11
+ export { registerGitTools } from './git-tools.js';
11
12
  export { registerVariableGroupTools } from './variable-group-tools.js';
12
13
  export { registerSyncTools } from './sync-tools.js';
13
14
  export { registerChecklistTools } from './checklist-tools.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAYlD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAkBvE;AAED,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAalD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAqBvE;AAED,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -3,6 +3,7 @@ import { registerWikiTools } from './wiki-tools.js';
3
3
  import { registerWorkItemTools } from './work-item-tools.js';
4
4
  import { registerPullRequestTools, getPrWriteToolCount } from './pull-request-tools.js';
5
5
  import { registerBuildTools } from './build-tools.js';
6
+ import { registerGitTools } from './git-tools.js';
6
7
  import { registerVariableGroupTools } from './variable-group-tools.js';
7
8
  import { registerSyncTools } from './sync-tools.js';
8
9
  import { registerChecklistTools } from './checklist-tools.js';
@@ -14,14 +15,17 @@ export function registerAllTools(server, ctx) {
14
15
  registerWorkItemTools(server, ctx);
15
16
  registerPullRequestTools(server, ctx);
16
17
  registerBuildTools(server, ctx);
18
+ registerGitTools(server, ctx);
17
19
  registerVariableGroupTools(server, ctx);
18
20
  registerSyncTools(server, ctx);
19
21
  registerChecklistTools(server, ctx);
20
22
  registerVisualizeTools(server, ctx);
21
23
  registerTestTools(server, ctx);
22
- // Log registration summary
23
- // 1 config + 11 wiki + 10 work-item + 6 PR-read + 3 build + 2 variable-group + 8 sync + 8 checklist + 2 visualize + 7 test = 58
24
- const baseToolsCount = 58;
24
+ // Log registration summary.
25
+ // 66 tools register unconditionally; the 7 pull-request write tools register
26
+ // only when AZUREDEVOPS_ENABLE_PR_WRITE=true, for 73 in total.
27
+ // Measured against `tools/list` over stdio — do not derive this by hand.
28
+ const baseToolsCount = 66;
25
29
  const prWriteToolsCount = getPrWriteToolCount();
26
30
  const totalToolsCount = baseToolsCount + prWriteToolsCount;
27
31
  console.error(`azure-devops tools registered: ${totalToolsCount} tools (${baseToolsCount} base + ${prWriteToolsCount} PR write)`);
@@ -31,6 +35,7 @@ export { registerWikiTools } from './wiki-tools.js';
31
35
  export { registerWorkItemTools } from './work-item-tools.js';
32
36
  export { registerPullRequestTools, getPrWriteToolCount } from './pull-request-tools.js';
33
37
  export { registerBuildTools } from './build-tools.js';
38
+ export { registerGitTools } from './git-tools.js';
34
39
  export { registerVariableGroupTools } from './variable-group-tools.js';
35
40
  export { registerSyncTools } from './sync-tools.js';
36
41
  export { registerChecklistTools } from './checklist-tools.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,GAAmB;IAC/D,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,2BAA2B;IAC3B,gIAAgI;IAChI,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,MAAM,iBAAiB,GAAG,mBAAmB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,cAAc,GAAG,iBAAiB,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,kCAAkC,eAAe,WAAW,cAAc,WAAW,iBAAiB,YAAY,CAAC,CAAC;AACpI,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,GAAmB;IAC/D,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,4BAA4B;IAC5B,6EAA6E;IAC7E,+DAA+D;IAC/D,yEAAyE;IACzE,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,MAAM,iBAAiB,GAAG,mBAAmB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,cAAc,GAAG,iBAAiB,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,kCAAkC,eAAe,WAAW,cAAc,WAAW,iBAAiB,YAAY,CAAC,CAAC;AACpI,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"variable-group-tools.d.ts","sourceRoot":"","sources":["../../src/tools/variable-group-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAqCjF"}
1
+ {"version":3,"file":"variable-group-tools.d.ts","sourceRoot":"","sources":["../../src/tools/variable-group-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAiGjF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Variable Group Tools - 2 tools for variable group operations
2
+ * Variable Group Tools - 5 tools for variable group operations
3
3
  */
4
4
  import { z } from 'zod';
5
5
  import { zCoerceNumber } from '../schemas.js';
@@ -29,5 +29,47 @@ export function registerVariableGroupTools(server, ctx) {
29
29
  return { content: [{ type: "text", text: `Failed to get variable group: ${error.message}` }] };
30
30
  }
31
31
  });
32
+ server.tool("compare-variable-groups", "Compare two Azure DevOps variable groups side by side. Reports variables unique to each group, value differences, and variables whose secret/plaintext status differs. Secret VALUES are never read or returned — a variable that is a secret on either side is listed by name under 'secretsSkipped'.", {
33
+ project: z.string().describe("The project name"),
34
+ groupIdA: zCoerceNumber().describe("First variable group ID"),
35
+ groupIdB: zCoerceNumber().describe("Second variable group ID"),
36
+ }, { readOnlyHint: true, openWorldHint: true }, async ({ project, groupIdA, groupIdB }) => {
37
+ try {
38
+ const result = await ctx.variableGroup.compareVariableGroups(project, groupIdA, groupIdB);
39
+ return { content: [{ type: "text", text: `Variable group comparison (${groupIdA} vs ${groupIdB}) in '${project}':\n\n${JSON.stringify(result, null, 2)}` }] };
40
+ }
41
+ catch (error) {
42
+ console.error("Error comparing variable groups:", error);
43
+ return { content: [{ type: "text", text: `Failed to compare variable groups: ${error.message}` }] };
44
+ }
45
+ });
46
+ server.tool("compare-environments", "Find variable groups named '<base>-<env>' (e.g. billing-dev / billing-uat / billing-prod) and diff each environment against the first in its family. Returns 'unmatchedGroups' (names that fit no suffix) and 'incompleteSets' (families with one environment) so an empty result is explainable rather than a false all-clear. Secret values are never returned. Override 'environmentSuffixes' if your naming convention differs (e.g. '-prd').", {
47
+ project: z.string().describe("The project name"),
48
+ nameContains: z.string().optional().describe("Case-insensitive substring filter on group name"),
49
+ environmentSuffixes: z.array(z.string()).optional().describe("Environment suffixes to recognise. Default: -dev, -development, -qa, -uat, -staging, -stage, -test, -prod, -production"),
50
+ }, { readOnlyHint: true, openWorldHint: true }, async ({ project, nameContains, environmentSuffixes }) => {
51
+ try {
52
+ const result = await ctx.variableGroup.compareEnvironments(project, { nameContains, environmentSuffixes });
53
+ return { content: [{ type: "text", text: `Environment comparison in '${project}':\n\n${JSON.stringify(result, null, 2)}` }] };
54
+ }
55
+ catch (error) {
56
+ console.error("Error comparing environments:", error);
57
+ return { content: [{ type: "text", text: `Failed to compare environments: ${error.message}` }] };
58
+ }
59
+ });
60
+ server.tool("variable-group-summary", "Overview of variable groups in a project with per-group variable and secret COUNTS (never secret values). Totals describe exactly the groups returned; 'truncated' is true when more groups matched than 'maxResults' allowed.", {
61
+ project: z.string().describe("The project name"),
62
+ nameContains: z.string().optional().describe("Case-insensitive substring filter on group name"),
63
+ maxResults: zCoerceNumber().optional().describe("Maximum groups to return (default 100)"),
64
+ }, { readOnlyHint: true, openWorldHint: true }, async ({ project, nameContains, maxResults }) => {
65
+ try {
66
+ const result = await ctx.variableGroup.getVariableGroupSummaries(project, { nameContains, maxResults });
67
+ return { content: [{ type: "text", text: `Variable group summary for '${project}':\n\n${JSON.stringify(result, null, 2)}` }] };
68
+ }
69
+ catch (error) {
70
+ console.error("Error summarising variable groups:", error);
71
+ return { content: [{ type: "text", text: `Failed to summarise variable groups: ${error.message}` }] };
72
+ }
73
+ });
32
74
  }
33
75
  //# sourceMappingURL=variable-group-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variable-group-tools.js","sourceRoot":"","sources":["../../src/tools/variable-group-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,UAAU,0BAA0B,CAAC,MAAW,EAAE,GAAmB;IACzE,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,kHAAkH,EAClH;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACjD,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAC3C,KAAK,EAAE,EAAE,OAAO,EAAO,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACjI,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACnG,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,oGAAoG,EACpG;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAChD,OAAO,EAAE,aAAa,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC3D,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAC3C,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAO,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,OAAO,gBAAgB,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3I,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACjG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"variable-group-tools.js","sourceRoot":"","sources":["../../src/tools/variable-group-tools.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -7,6 +7,7 @@ import type { WikiService } from './services/wiki-service.js';
7
7
  import type { WorkItemService } from './services/work-item-service.js';
8
8
  import type { PullRequestService } from './services/pull-request-service.js';
9
9
  import type { BuildService } from './services/build-service.js';
10
+ import type { GitService } from './services/git-service.js';
10
11
  import type { VariableGroupService } from './services/variable-group-service.js';
11
12
  import type { SyncService } from './services/sync-service.js';
12
13
  import type { ConfigurationService } from './services/configuration-service.js';
@@ -18,6 +19,7 @@ export interface ServiceContext {
18
19
  readonly workItem: WorkItemService;
19
20
  readonly pullRequest: PullRequestService;
20
21
  readonly build: BuildService;
22
+ readonly git: GitService;
21
23
  readonly variableGroup: VariableGroupService;
22
24
  readonly sync: SyncService;
23
25
  readonly configuration: ConfigurationService;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/azure-devops",
3
- "version": "35.0.0-beta.1",
3
+ "version": "35.0.0-beta.2",
4
4
  "description": "MCP server for Azure DevOps integration - wikis, work items, pull requests, and variable group read access",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
@@ -31,7 +31,7 @@
31
31
  "pull-requests",
32
32
  "azure"
33
33
  ],
34
- "author": "Michal Sobieraj",
34
+ "author": "Klemens Stelk",
35
35
  "license": "MIT",
36
36
  "repository": {
37
37
  "type": "git",