@mcp-consultant-tools/azure-devops-admin 27.0.0 → 28.0.0-beta.13
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/build/AzureDevOpsAdminService.d.ts +16 -0
- package/build/AzureDevOpsAdminService.d.ts.map +1 -1
- package/build/AzureDevOpsAdminService.js +117 -8
- package/build/AzureDevOpsAdminService.js.map +1 -1
- package/build/cli/commands/index.d.ts +8 -0
- package/build/cli/commands/index.d.ts.map +1 -0
- package/build/cli/commands/index.js +9 -0
- package/build/cli/commands/index.js.map +1 -0
- package/build/cli/commands/pipeline-commands.d.ts +7 -0
- package/build/cli/commands/pipeline-commands.d.ts.map +1 -0
- package/build/cli/commands/pipeline-commands.js +191 -0
- package/build/cli/commands/pipeline-commands.js.map +1 -0
- package/build/cli/output.d.ts +11 -0
- package/build/cli/output.d.ts.map +1 -0
- package/build/cli/output.js +10 -0
- package/build/cli/output.js.map +1 -0
- package/build/cli.d.ts +9 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +27 -0
- package/build/cli.js.map +1 -0
- package/build/context-factory.d.ts +4 -0
- package/build/context-factory.d.ts.map +1 -0
- package/build/context-factory.js +78 -0
- package/build/context-factory.js.map +1 -0
- package/build/index.d.ts +7 -11
- package/build/index.d.ts.map +1 -1
- package/build/index.js +58 -1110
- package/build/index.js.map +1 -1
- package/build/services/admin-client.d.ts +19 -0
- package/build/services/admin-client.d.ts.map +1 -0
- package/build/services/admin-client.js +97 -0
- package/build/services/admin-client.js.map +1 -0
- package/build/services/agent-pool-service.d.ts +21 -0
- package/build/services/agent-pool-service.d.ts.map +1 -0
- package/build/services/agent-pool-service.js +118 -0
- package/build/services/agent-pool-service.js.map +1 -0
- package/build/services/artifact-feed-service.d.ts +21 -0
- package/build/services/artifact-feed-service.d.ts.map +1 -0
- package/build/services/artifact-feed-service.js +83 -0
- package/build/services/artifact-feed-service.js.map +1 -0
- package/build/services/classification-service.d.ts +23 -0
- package/build/services/classification-service.d.ts.map +1 -0
- package/build/services/classification-service.js +163 -0
- package/build/services/classification-service.js.map +1 -0
- package/build/services/environment-service.d.ts +25 -0
- package/build/services/environment-service.d.ts.map +1 -0
- package/build/services/environment-service.js +160 -0
- package/build/services/environment-service.js.map +1 -0
- package/build/services/index.d.ts +12 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +12 -0
- package/build/services/index.js.map +1 -0
- package/build/services/pipeline-service.d.ts +37 -0
- package/build/services/pipeline-service.d.ts.map +1 -0
- package/build/services/pipeline-service.js +500 -0
- package/build/services/pipeline-service.js.map +1 -0
- package/build/services/service-connection-service.d.ts +29 -0
- package/build/services/service-connection-service.d.ts.map +1 -0
- package/build/services/service-connection-service.js +147 -0
- package/build/services/service-connection-service.js.map +1 -0
- package/build/services/variable-group-service.d.ts +22 -0
- package/build/services/variable-group-service.d.ts.map +1 -0
- package/build/services/variable-group-service.js +136 -0
- package/build/services/variable-group-service.js.map +1 -0
- package/build/tool-examples.d.ts +83 -0
- package/build/tool-examples.d.ts.map +1 -0
- package/build/tool-examples.js +106 -0
- package/build/tool-examples.js.map +1 -0
- package/build/tools/agent-pool-tools.d.ts +7 -0
- package/build/tools/agent-pool-tools.d.ts.map +1 -0
- package/build/tools/agent-pool-tools.js +133 -0
- package/build/tools/agent-pool-tools.js.map +1 -0
- package/build/tools/artifact-feed-tools.d.ts +7 -0
- package/build/tools/artifact-feed-tools.d.ts.map +1 -0
- package/build/tools/artifact-feed-tools.js +47 -0
- package/build/tools/artifact-feed-tools.js.map +1 -0
- package/build/tools/classification-tools.d.ts +7 -0
- package/build/tools/classification-tools.d.ts.map +1 -0
- package/build/tools/classification-tools.js +202 -0
- package/build/tools/classification-tools.js.map +1 -0
- package/build/tools/environment-tools.d.ts +7 -0
- package/build/tools/environment-tools.d.ts.map +1 -0
- package/build/tools/environment-tools.js +194 -0
- package/build/tools/environment-tools.js.map +1 -0
- package/build/tools/index.d.ts +13 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +36 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/pipeline-tools.d.ts +7 -0
- package/build/tools/pipeline-tools.d.ts.map +1 -0
- package/build/tools/pipeline-tools.js +292 -0
- package/build/tools/pipeline-tools.js.map +1 -0
- package/build/tools/service-connection-tools.d.ts +7 -0
- package/build/tools/service-connection-tools.d.ts.map +1 -0
- package/build/tools/service-connection-tools.js +140 -0
- package/build/tools/service-connection-tools.js.map +1 -0
- package/build/tools/variable-group-tools.d.ts +7 -0
- package/build/tools/variable-group-tools.d.ts.map +1 -0
- package/build/tools/variable-group-tools.js +138 -0
- package/build/tools/variable-group-tools.js.map +1 -0
- package/build/types.d.ts +62 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service connection tools - read-only, upsert (Tier 2), and delete (Tier 3).
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { descWithExamples, SVC_CONN_TYPE_EXAMPLES } from '../tool-examples.js';
|
|
6
|
+
export function registerServiceConnectionTools(server, ctx) {
|
|
7
|
+
let readonlyCount = 0;
|
|
8
|
+
let upsertCount = 0;
|
|
9
|
+
let deleteCount = 0;
|
|
10
|
+
// ========================================
|
|
11
|
+
// SERVICE CONNECTION READ-ONLY TOOLS
|
|
12
|
+
// ========================================
|
|
13
|
+
server.tool("list-svc-conns", "List all service connections in a project. Shows connection type, URL, authorization scheme, and sharing status. Credentials are masked.", {
|
|
14
|
+
project: z.string().describe("The project name"),
|
|
15
|
+
}, async ({ project }) => {
|
|
16
|
+
try {
|
|
17
|
+
const result = await ctx.serviceConnections.listServiceConnections(project);
|
|
18
|
+
return { content: [{ type: "text", text: `Service connections in project '${project}':\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error("Error listing service connections:", error);
|
|
22
|
+
return { content: [{ type: "text", text: `Failed to list service connections: ${error.message}` }] };
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
readonlyCount++;
|
|
26
|
+
server.tool("get-svc-conn", "Get detailed service connection configuration. Returns type, URL, authorization scheme, data fields, and project references. Secrets are masked.", {
|
|
27
|
+
project: z.string().describe("The project name"),
|
|
28
|
+
connectionId: z.string().describe("The service connection ID (GUID)"),
|
|
29
|
+
}, async ({ project, connectionId }) => {
|
|
30
|
+
try {
|
|
31
|
+
const result = await ctx.serviceConnections.getServiceConnection(project, connectionId);
|
|
32
|
+
return { content: [{ type: "text", text: `Service connection ${connectionId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error("Error getting service connection:", error);
|
|
36
|
+
return { content: [{ type: "text", text: `Failed to get service connection: ${error.message}` }] };
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
readonlyCount++;
|
|
40
|
+
server.tool("get-svc-conn-types", "Get all available service connection types (Azure, AWS, Docker, GitHub, etc.) with their authentication schemes and configuration options.", {}, async () => {
|
|
41
|
+
try {
|
|
42
|
+
const result = await ctx.serviceConnections.getServiceConnectionTypes();
|
|
43
|
+
return { content: [{ type: "text", text: `Available service connection types:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error("Error getting service connection types:", error);
|
|
47
|
+
return { content: [{ type: "text", text: `Failed to get service connection types: ${error.message}` }] };
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
readonlyCount++;
|
|
51
|
+
// ========================================
|
|
52
|
+
// SERVICE CONNECTION UPSERT TOOLS (Tier 2)
|
|
53
|
+
// ========================================
|
|
54
|
+
if (ctx.tierFlags.enableServiceConnUpsert) {
|
|
55
|
+
server.tool("create-svc-conn", "Create a new service connection. Use get-svc-conn-types to see available types and auth schemes. (requires AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT=true)", {
|
|
56
|
+
project: z.string().describe("The project name"),
|
|
57
|
+
name: z.string().describe("Connection name"),
|
|
58
|
+
type: z.string().describe(descWithExamples("Connection type identifier", SVC_CONN_TYPE_EXAMPLES)),
|
|
59
|
+
url: z.string().optional().describe("Service URL (required for some types)"),
|
|
60
|
+
description: z.string().optional().describe("Connection description"),
|
|
61
|
+
authorization: z.object({
|
|
62
|
+
scheme: z.string().describe("Auth scheme (e.g., 'ServicePrincipal', 'PersonalAccessToken')"),
|
|
63
|
+
parameters: z.record(z.string()).optional().describe("Auth parameters (credentials)")
|
|
64
|
+
}).optional().describe("Authorization configuration"),
|
|
65
|
+
data: z.record(z.string()).optional().describe("Type-specific configuration data"),
|
|
66
|
+
}, async ({ project, name, type, url, description, authorization, data }) => {
|
|
67
|
+
try {
|
|
68
|
+
const result = await ctx.serviceConnections.createServiceConnection(project, name, type, { url, description, authorization, data });
|
|
69
|
+
return { content: [{ type: "text", text: `Created service connection '${name}':\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error("Error creating service connection:", error);
|
|
73
|
+
return { content: [{ type: "text", text: `Failed to create service connection: ${error.message}` }] };
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
upsertCount++;
|
|
77
|
+
server.tool("update-svc-conn", "Update a service connection's metadata (name, description, URL, data). Cannot update credentials for security. (requires AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT=true)", {
|
|
78
|
+
project: z.string().describe("The project name"),
|
|
79
|
+
connectionId: z.string().describe("The service connection ID (GUID)"),
|
|
80
|
+
name: z.string().optional().describe("New connection name"),
|
|
81
|
+
description: z.string().optional().describe("New description"),
|
|
82
|
+
url: z.string().optional().describe("New service URL"),
|
|
83
|
+
data: z.record(z.string()).optional().describe("Updated data fields"),
|
|
84
|
+
}, async ({ project, connectionId, name, description, url, data }) => {
|
|
85
|
+
try {
|
|
86
|
+
const updates = {};
|
|
87
|
+
if (name)
|
|
88
|
+
updates.name = name;
|
|
89
|
+
if (description)
|
|
90
|
+
updates.description = description;
|
|
91
|
+
if (url)
|
|
92
|
+
updates.url = url;
|
|
93
|
+
if (data)
|
|
94
|
+
updates.data = data;
|
|
95
|
+
const result = await ctx.serviceConnections.updateServiceConnection(project, connectionId, updates);
|
|
96
|
+
return { content: [{ type: "text", text: `Updated service connection ${connectionId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.error("Error updating service connection:", error);
|
|
100
|
+
return { content: [{ type: "text", text: `Failed to update service connection: ${error.message}` }] };
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
upsertCount++;
|
|
104
|
+
server.tool("share-svc-conn", "Share a service connection with other projects. (requires AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT=true)", {
|
|
105
|
+
connectionId: z.string().describe("The service connection ID (GUID)"),
|
|
106
|
+
projectIds: z.array(z.string()).describe("Array of project IDs to share with"),
|
|
107
|
+
}, async ({ connectionId, projectIds }) => {
|
|
108
|
+
try {
|
|
109
|
+
const result = await ctx.serviceConnections.shareServiceConnection(connectionId, projectIds);
|
|
110
|
+
return { content: [{ type: "text", text: `Shared service connection ${connectionId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.error("Error sharing service connection:", error);
|
|
114
|
+
return { content: [{ type: "text", text: `Failed to share service connection: ${error.message}` }] };
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
upsertCount++;
|
|
118
|
+
}
|
|
119
|
+
// ========================================
|
|
120
|
+
// SERVICE CONNECTION DELETE TOOLS (Tier 3)
|
|
121
|
+
// ========================================
|
|
122
|
+
if (ctx.tierFlags.enableServiceConnDelete) {
|
|
123
|
+
server.tool("delete-svc-conn", "DESTRUCTIVE: Delete a service connection. Pipelines using this connection will fail. (requires AZUREDEVOPS_ENABLE_SERVICE_CONN_DELETE=true)", {
|
|
124
|
+
project: z.string().describe("The project name"),
|
|
125
|
+
connectionId: z.string().describe("The service connection ID (GUID) to delete"),
|
|
126
|
+
}, async ({ project, connectionId }) => {
|
|
127
|
+
try {
|
|
128
|
+
const result = await ctx.serviceConnections.deleteServiceConnection(project, connectionId);
|
|
129
|
+
return { content: [{ type: "text", text: `Deleted service connection ${connectionId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error("Error deleting service connection:", error);
|
|
133
|
+
return { content: [{ type: "text", text: `Failed to delete service connection: ${error.message}` }] };
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
deleteCount++;
|
|
137
|
+
}
|
|
138
|
+
return { readonly: readonlyCount, upsert: upsertCount, delete: deleteCount };
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=service-connection-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-connection-tools.js","sourceRoot":"","sources":["../../src/tools/service-connection-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-group-tools.d.ts","sourceRoot":"","sources":["../../src/tools/variable-group-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAuKjI"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variable group tools - read-only, upsert (Tier 2), and delete (Tier 3).
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { descWithExamples, VARIABLE_EXPRESSION_EXAMPLES } from '../tool-examples.js';
|
|
6
|
+
export function registerVariableGroupTools(server, ctx) {
|
|
7
|
+
let readonlyCount = 0;
|
|
8
|
+
let upsertCount = 0;
|
|
9
|
+
let deleteCount = 0;
|
|
10
|
+
// ========================================
|
|
11
|
+
// VARIABLE GROUP READ-ONLY TOOLS
|
|
12
|
+
// ========================================
|
|
13
|
+
server.tool("get-variable-groups", "List all variable groups in a project. Shows group name, description, and variable names (secrets masked).", {
|
|
14
|
+
project: z.string().describe("The project name"),
|
|
15
|
+
}, async ({ project }) => {
|
|
16
|
+
try {
|
|
17
|
+
const result = await ctx.variableGroups.getVariableGroups(project);
|
|
18
|
+
return { content: [{ type: "text", text: `Variable groups in project '${project}':\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error("Error getting variable groups:", error);
|
|
22
|
+
return { content: [{ type: "text", text: `Failed to get variable groups: ${error.message}` }] };
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
readonlyCount++;
|
|
26
|
+
server.tool("get-variable-group", "Get a specific variable group by ID. Returns all variables with values (secrets masked).", {
|
|
27
|
+
project: z.string().describe("The project name"),
|
|
28
|
+
groupId: z.number().describe("The variable group ID"),
|
|
29
|
+
}, async ({ project, groupId }) => {
|
|
30
|
+
try {
|
|
31
|
+
const result = await ctx.variableGroups.getVariableGroup(project, groupId);
|
|
32
|
+
return { content: [{ type: "text", text: `Variable group ${groupId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error("Error getting variable group:", error);
|
|
36
|
+
return { content: [{ type: "text", text: `Failed to get variable group: ${error.message}` }] };
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
readonlyCount++;
|
|
40
|
+
// ========================================
|
|
41
|
+
// VARIABLE GROUP UPSERT TOOLS (Tier 2)
|
|
42
|
+
// ========================================
|
|
43
|
+
if (ctx.tierFlags.enableVariableGroupUpsert) {
|
|
44
|
+
server.tool("create-variable-group", "Create a new variable group. Variables can be marked as secret. (requires AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT=true)", {
|
|
45
|
+
project: z.string().describe("The project name"),
|
|
46
|
+
name: z.string().describe("Variable group name"),
|
|
47
|
+
description: z.string().optional().describe("Variable group description"),
|
|
48
|
+
variables: z.record(z.object({
|
|
49
|
+
value: z.string(),
|
|
50
|
+
isSecret: z.boolean().optional()
|
|
51
|
+
})).optional().describe("Initial variables to set"),
|
|
52
|
+
}, async ({ project, name, description, variables }) => {
|
|
53
|
+
try {
|
|
54
|
+
const result = await ctx.variableGroups.createVariableGroup(project, name, description, variables);
|
|
55
|
+
return { content: [{ type: "text", text: `Created variable group '${name}':\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error("Error creating variable group:", error);
|
|
59
|
+
return { content: [{ type: "text", text: `Failed to create variable group: ${error.message}` }] };
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
upsertCount++;
|
|
63
|
+
server.tool("update-variable-group", "Update a variable group's name or description. Use set-variable to modify variables. (requires AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT=true)", {
|
|
64
|
+
project: z.string().describe("The project name"),
|
|
65
|
+
groupId: z.number().describe("The variable group ID"),
|
|
66
|
+
name: z.string().optional().describe("New name"),
|
|
67
|
+
description: z.string().optional().describe("New description"),
|
|
68
|
+
}, async ({ project, groupId, name, description }) => {
|
|
69
|
+
try {
|
|
70
|
+
const updates = {};
|
|
71
|
+
if (name)
|
|
72
|
+
updates.name = name;
|
|
73
|
+
if (description)
|
|
74
|
+
updates.description = description;
|
|
75
|
+
const result = await ctx.variableGroups.updateVariableGroupMetadata(project, groupId, updates);
|
|
76
|
+
return { content: [{ type: "text", text: `Updated variable group ${groupId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error("Error updating variable group:", error);
|
|
80
|
+
return { content: [{ type: "text", text: `Failed to update variable group: ${error.message}` }] };
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
upsertCount++;
|
|
84
|
+
server.tool("set-variable", "Set or update a variable in a variable group. Creates the variable if it doesn't exist. (requires AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT=true)", {
|
|
85
|
+
project: z.string().describe("The project name"),
|
|
86
|
+
groupId: z.number().describe("The variable group ID"),
|
|
87
|
+
variableName: z.string().describe("Variable name"),
|
|
88
|
+
value: z.string().describe(descWithExamples("Variable value. Supports pipeline expressions when referenced in YAML", VARIABLE_EXPRESSION_EXAMPLES)),
|
|
89
|
+
isSecret: z.boolean().optional().describe("Mark as secret (default: false)"),
|
|
90
|
+
}, async ({ project, groupId, variableName, value, isSecret }) => {
|
|
91
|
+
try {
|
|
92
|
+
const result = await ctx.variableGroups.setVariable(project, groupId, variableName, value, isSecret || false);
|
|
93
|
+
return { content: [{ type: "text", text: `Set variable '${variableName}' in group ${groupId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error("Error setting variable:", error);
|
|
97
|
+
return { content: [{ type: "text", text: `Failed to set variable: ${error.message}` }] };
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
upsertCount++;
|
|
101
|
+
}
|
|
102
|
+
// ========================================
|
|
103
|
+
// VARIABLE GROUP DELETE TOOLS (Tier 3)
|
|
104
|
+
// ========================================
|
|
105
|
+
if (ctx.tierFlags.enableVariableGroupDelete) {
|
|
106
|
+
server.tool("remove-variable", "Remove a variable from a variable group. (requires AZUREDEVOPS_ENABLE_VARIABLE_GROUP_DELETE=true)", {
|
|
107
|
+
project: z.string().describe("The project name"),
|
|
108
|
+
groupId: z.number().describe("The variable group ID"),
|
|
109
|
+
variableName: z.string().describe("Variable name to remove"),
|
|
110
|
+
}, async ({ project, groupId, variableName }) => {
|
|
111
|
+
try {
|
|
112
|
+
const result = await ctx.variableGroups.removeVariable(project, groupId, variableName);
|
|
113
|
+
return { content: [{ type: "text", text: `Removed variable '${variableName}' from group ${groupId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error("Error removing variable:", error);
|
|
117
|
+
return { content: [{ type: "text", text: `Failed to remove variable: ${error.message}` }] };
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
deleteCount++;
|
|
121
|
+
server.tool("delete-variable-group", "DESTRUCTIVE: Delete a variable group. Pipelines using this group will fail. (requires AZUREDEVOPS_ENABLE_VARIABLE_GROUP_DELETE=true)", {
|
|
122
|
+
project: z.string().describe("The project name"),
|
|
123
|
+
groupId: z.number().describe("The variable group ID to delete"),
|
|
124
|
+
}, async ({ project, groupId }) => {
|
|
125
|
+
try {
|
|
126
|
+
const result = await ctx.variableGroups.deleteVariableGroup(project, groupId);
|
|
127
|
+
return { content: [{ type: "text", text: `Deleted variable group ${groupId}:\n\n${JSON.stringify(result, null, 2)}` }] };
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error("Error deleting variable group:", error);
|
|
131
|
+
return { content: [{ type: "text", text: `Failed to delete variable group: ${error.message}` }] };
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
deleteCount++;
|
|
135
|
+
}
|
|
136
|
+
return { readonly: readonlyCount, upsert: upsertCount, delete: deleteCount };
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=variable-group-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service context shared between MCP server entry points.
|
|
3
|
+
* Uses lazy getters to initialize services on-demand.
|
|
4
|
+
*/
|
|
5
|
+
import type { AdminClient } from './services/admin-client.js';
|
|
6
|
+
import type { PipelineService } from './services/pipeline-service.js';
|
|
7
|
+
import type { ServiceConnectionService } from './services/service-connection-service.js';
|
|
8
|
+
import type { VariableGroupService } from './services/variable-group-service.js';
|
|
9
|
+
import type { AgentPoolService } from './services/agent-pool-service.js';
|
|
10
|
+
import type { EnvironmentService } from './services/environment-service.js';
|
|
11
|
+
import type { ClassificationService } from './services/classification-service.js';
|
|
12
|
+
import type { ArtifactFeedService } from './services/artifact-feed-service.js';
|
|
13
|
+
export interface AzureDevOpsAdminConfig {
|
|
14
|
+
organization: string;
|
|
15
|
+
pat: string;
|
|
16
|
+
projects: string[];
|
|
17
|
+
apiVersion?: string;
|
|
18
|
+
enablePipelineUpsert?: boolean;
|
|
19
|
+
enablePipelineDelete?: boolean;
|
|
20
|
+
enableServiceConnUpsert?: boolean;
|
|
21
|
+
enableServiceConnDelete?: boolean;
|
|
22
|
+
enableVariableGroupUpsert?: boolean;
|
|
23
|
+
enableVariableGroupDelete?: boolean;
|
|
24
|
+
enableAgentPoolUpsert?: boolean;
|
|
25
|
+
enableAgentPoolDisable?: boolean;
|
|
26
|
+
enableEnvironmentUpsert?: boolean;
|
|
27
|
+
enableEnvironmentDelete?: boolean;
|
|
28
|
+
enableClassificationNodeUpsert?: boolean;
|
|
29
|
+
enableClassificationNodeDelete?: boolean;
|
|
30
|
+
feeds?: string[];
|
|
31
|
+
}
|
|
32
|
+
export interface TierFlags {
|
|
33
|
+
enablePipelineUpsert: boolean;
|
|
34
|
+
enableServiceConnUpsert: boolean;
|
|
35
|
+
enableVariableGroupUpsert: boolean;
|
|
36
|
+
enableAgentPoolUpsert: boolean;
|
|
37
|
+
enableEnvironmentUpsert: boolean;
|
|
38
|
+
enableClassificationNodeUpsert: boolean;
|
|
39
|
+
enablePipelineDelete: boolean;
|
|
40
|
+
enableServiceConnDelete: boolean;
|
|
41
|
+
enableVariableGroupDelete: boolean;
|
|
42
|
+
enableAgentPoolDisable: boolean;
|
|
43
|
+
enableEnvironmentDelete: boolean;
|
|
44
|
+
enableClassificationNodeDelete: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface ServiceContext {
|
|
47
|
+
readonly client: AdminClient;
|
|
48
|
+
readonly pipelines: PipelineService;
|
|
49
|
+
readonly serviceConnections: ServiceConnectionService;
|
|
50
|
+
readonly variableGroups: VariableGroupService;
|
|
51
|
+
readonly agentPools: AgentPoolService;
|
|
52
|
+
readonly environments: EnvironmentService;
|
|
53
|
+
readonly classification: ClassificationService;
|
|
54
|
+
readonly artifactFeeds: ArtifactFeedService;
|
|
55
|
+
readonly tierFlags: TierFlags;
|
|
56
|
+
}
|
|
57
|
+
export interface AdoApiCollectionResponse<T> {
|
|
58
|
+
value: T[];
|
|
59
|
+
count?: number;
|
|
60
|
+
[key: string]: any;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAG/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAGpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAGjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAGzC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IAExB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;IACnC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB,EAAE,OAAO,CAAC;IACjC,8BAA8B,EAAE,OAAO,CAAC;IAGxC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;IACnC,sBAAsB,EAAE,OAAO,CAAC;IAChC,uBAAuB,EAAE,OAAO,CAAC;IACjC,8BAA8B,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAGD,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
|
package/build/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-consultant-tools/azure-devops-admin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.0-beta.13",
|
|
4
4
|
"description": "MCP server for Azure DevOps admin operations - pipelines, service connections, agent pools, and environments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -40,9 +40,10 @@
|
|
|
40
40
|
"node": ">=16.0.0"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@mcp-consultant-tools/core": "
|
|
43
|
+
"@mcp-consultant-tools/core": "28.0.0-beta.13",
|
|
44
44
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
45
45
|
"axios": "^1.8.3",
|
|
46
|
+
"commander": "^14.0.3",
|
|
46
47
|
"zod": "^3.24.1"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"typescript": "^5.8.2"
|
|
51
52
|
},
|
|
52
53
|
"bin": {
|
|
53
|
-
"mcp-ado-admin": "build/index.js"
|
|
54
|
+
"mcp-ado-admin": "build/index.js",
|
|
55
|
+
"mcp-ado-admin-cli": "build/cli.js"
|
|
54
56
|
}
|
|
55
57
|
}
|