@daghis/teamcity-mcp 2.9.0 → 2.11.0
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/CHANGELOG.md +14 -0
- package/dist/index.js +136 -53
- package/package.json +2 -3
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.11.0](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.10.0...teamcity-mcp-v2.11.0) (2026-05-03)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **artifacts:** add list_build_artifacts tool for subdirectory browsing ([#489](https://github.com/Daghis/teamcity-mcp/issues/489)) ([eacad61](https://github.com/Daghis/teamcity-mcp/commit/eacad6115cbb33a6e660bd096e59869c4fcf4ea8))
|
|
9
|
+
|
|
10
|
+
## [2.10.0](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.9.0...teamcity-mcp-v2.10.0) (2026-04-26)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **tools:** disclose principal return and primary error for mutators ([#484](https://github.com/Daghis/teamcity-mcp/issues/484)) ([0a4d747](https://github.com/Daghis/teamcity-mcp/commit/0a4d7479823f034b04d4623446f71b17b4b30d49))
|
|
16
|
+
|
|
3
17
|
## [2.9.0](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.8.0...teamcity-mcp-v2.9.0) (2026-04-24)
|
|
4
18
|
|
|
5
19
|
|
package/dist/index.js
CHANGED
|
@@ -1205,7 +1205,7 @@ function debug2(message, meta) {
|
|
|
1205
1205
|
// package.json
|
|
1206
1206
|
var package_default = {
|
|
1207
1207
|
name: "@daghis/teamcity-mcp",
|
|
1208
|
-
version: "2.
|
|
1208
|
+
version: "2.11.0",
|
|
1209
1209
|
description: "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
|
|
1210
1210
|
mcpName: "io.github.Daghis/teamcity",
|
|
1211
1211
|
main: "dist/index.js",
|
|
@@ -1278,7 +1278,6 @@ var package_default = {
|
|
|
1278
1278
|
zod: "^4.3.5"
|
|
1279
1279
|
},
|
|
1280
1280
|
devDependencies: {
|
|
1281
|
-
"@codecov/bundle-analyzer": "^2.0.1",
|
|
1282
1281
|
"@esbuild-plugins/tsconfig-paths": "^0.1.2",
|
|
1283
1282
|
"@eslint/js": "^10.0.1",
|
|
1284
1283
|
"@trivago/prettier-plugin-sort-imports": "^6.0.1",
|
|
@@ -1295,7 +1294,7 @@ var package_default = {
|
|
|
1295
1294
|
"eslint-plugin-prettier": "^5.0.1",
|
|
1296
1295
|
globals: "^17.4.0",
|
|
1297
1296
|
jest: "^30.1.3",
|
|
1298
|
-
"jest-junit": "^
|
|
1297
|
+
"jest-junit": "^17.0.0",
|
|
1299
1298
|
"js-yaml": "^4.1.1",
|
|
1300
1299
|
prettier: "^3.1.0",
|
|
1301
1300
|
"ts-jest": "^29.4.9",
|
|
@@ -1551,13 +1550,20 @@ var ArtifactManager = class _ArtifactManager {
|
|
|
1551
1550
|
const buildLocator = toBuildLocator(buildId);
|
|
1552
1551
|
const response = await this.client.modules.builds.getFilesListOfBuild(
|
|
1553
1552
|
buildLocator,
|
|
1554
|
-
|
|
1553
|
+
options.path,
|
|
1555
1554
|
void 0,
|
|
1556
1555
|
"file(name,fullName,size,modificationTime,href,children(file(name,fullName,size,modificationTime,href)))"
|
|
1557
1556
|
);
|
|
1558
1557
|
const baseUrl = this.getBaseUrl();
|
|
1559
1558
|
const artifactPayload = this.ensureArtifactListingResponse(response.data, buildId);
|
|
1560
|
-
let artifacts = this.parseArtifacts(
|
|
1559
|
+
let artifacts = this.parseArtifacts(
|
|
1560
|
+
artifactPayload,
|
|
1561
|
+
buildId,
|
|
1562
|
+
options.includeNested,
|
|
1563
|
+
baseUrl,
|
|
1564
|
+
[],
|
|
1565
|
+
options.includeDirectories
|
|
1566
|
+
);
|
|
1561
1567
|
artifacts = this.applyFilters(artifacts, options);
|
|
1562
1568
|
if (options.limit ?? options.offset) {
|
|
1563
1569
|
artifacts = this.paginate(
|
|
@@ -1789,7 +1795,7 @@ var ArtifactManager = class _ArtifactManager {
|
|
|
1789
1795
|
}
|
|
1790
1796
|
return payload;
|
|
1791
1797
|
}
|
|
1792
|
-
parseArtifacts(data, buildId, includeNested, baseUrl, parentSegments = []) {
|
|
1798
|
+
parseArtifacts(data, buildId, includeNested, baseUrl, parentSegments = [], includeDirectories) {
|
|
1793
1799
|
const artifacts = [];
|
|
1794
1800
|
const files = data.file ?? [];
|
|
1795
1801
|
for (const file of files) {
|
|
@@ -1797,13 +1803,24 @@ var ArtifactManager = class _ArtifactManager {
|
|
|
1797
1803
|
const resolvedPath = pathSegments.join("/");
|
|
1798
1804
|
const isDirectory = Boolean(file.children);
|
|
1799
1805
|
if (isDirectory) {
|
|
1806
|
+
if (includeDirectories && resolvedPath) {
|
|
1807
|
+
artifacts.push({
|
|
1808
|
+
name: file.name ?? pathSegments[pathSegments.length - 1] ?? "",
|
|
1809
|
+
path: resolvedPath,
|
|
1810
|
+
size: file.size ?? 0,
|
|
1811
|
+
modificationTime: file.modificationTime ?? "",
|
|
1812
|
+
downloadUrl: `${baseUrl}/app/rest/builds/id:${buildId}/artifacts/content/${this.encodeArtifactPath(pathSegments)}`,
|
|
1813
|
+
isDirectory: true
|
|
1814
|
+
});
|
|
1815
|
+
}
|
|
1800
1816
|
if (includeNested && file.children) {
|
|
1801
1817
|
const nested = this.parseArtifacts(
|
|
1802
1818
|
file.children,
|
|
1803
1819
|
buildId,
|
|
1804
1820
|
includeNested,
|
|
1805
1821
|
baseUrl,
|
|
1806
|
-
pathSegments
|
|
1822
|
+
pathSegments,
|
|
1823
|
+
includeDirectories
|
|
1807
1824
|
);
|
|
1808
1825
|
artifacts.push(...nested);
|
|
1809
1826
|
}
|
|
@@ -39284,7 +39301,7 @@ var DEV_TOOLS = [
|
|
|
39284
39301
|
idempotentHint: true,
|
|
39285
39302
|
openWorldHint: false
|
|
39286
39303
|
},
|
|
39287
|
-
description: "Switch MCP mode at runtime.
|
|
39304
|
+
description: "Switch MCP mode at runtime. Returns previous and current modes with the updated tool count; idempotent and notifies clients of the list change.",
|
|
39288
39305
|
inputSchema: {
|
|
39289
39306
|
type: "object",
|
|
39290
39307
|
properties: {
|
|
@@ -39580,7 +39597,7 @@ var DEV_TOOLS = [
|
|
|
39580
39597
|
idempotentHint: false,
|
|
39581
39598
|
openWorldHint: true
|
|
39582
39599
|
},
|
|
39583
|
-
description: "Trigger a new build. Returns the queued build id;
|
|
39600
|
+
description: "Trigger a new build; runs asynchronously, use `wait_for_build` to monitor. Returns the queued build id; returns 404 if buildTypeId is unknown.",
|
|
39584
39601
|
inputSchema: {
|
|
39585
39602
|
type: "object",
|
|
39586
39603
|
properties: {
|
|
@@ -39732,7 +39749,7 @@ var DEV_TOOLS = [
|
|
|
39732
39749
|
idempotentHint: false,
|
|
39733
39750
|
openWorldHint: true
|
|
39734
39751
|
},
|
|
39735
|
-
description: "Cancel or stop a running or queued build
|
|
39752
|
+
description: "Cancel or stop a running or queued build, with optional comment and requeue flag. Returns the cancelled build; returns 404 if the build is unknown.",
|
|
39736
39753
|
inputSchema: {
|
|
39737
39754
|
type: "object",
|
|
39738
39755
|
properties: {
|
|
@@ -40525,7 +40542,7 @@ var DEV_TOOLS = [
|
|
|
40525
40542
|
idempotentHint: true,
|
|
40526
40543
|
openWorldHint: true
|
|
40527
40544
|
},
|
|
40528
|
-
description: "Set a single VCS root property such as branch, branchSpec, or url.",
|
|
40545
|
+
description: "Set a single VCS root property such as branch, branchSpec, or url. Returns the updated value; returns 404 if the VCS root or property is unknown.",
|
|
40529
40546
|
inputSchema: {
|
|
40530
40547
|
type: "object",
|
|
40531
40548
|
properties: {
|
|
@@ -40569,7 +40586,7 @@ var DEV_TOOLS = [
|
|
|
40569
40586
|
idempotentHint: true,
|
|
40570
40587
|
openWorldHint: true
|
|
40571
40588
|
},
|
|
40572
|
-
description: "Delete a single VCS root property.",
|
|
40589
|
+
description: "Delete a single VCS root property. Idempotent; returns 404 if the VCS root is unknown.",
|
|
40573
40590
|
inputSchema: {
|
|
40574
40591
|
type: "object",
|
|
40575
40592
|
properties: {
|
|
@@ -40606,7 +40623,7 @@ var DEV_TOOLS = [
|
|
|
40606
40623
|
idempotentHint: true,
|
|
40607
40624
|
openWorldHint: true
|
|
40608
40625
|
},
|
|
40609
|
-
description: "Update common VCS root properties in a single call.",
|
|
40626
|
+
description: "Update common VCS root properties in a single call. Returns the updated VCS root; returns 404 if the VCS root is unknown.",
|
|
40610
40627
|
inputSchema: {
|
|
40611
40628
|
type: "object",
|
|
40612
40629
|
properties: {
|
|
@@ -41425,6 +41442,72 @@ var DEV_TOOLS = [
|
|
|
41425
41442
|
);
|
|
41426
41443
|
}
|
|
41427
41444
|
},
|
|
41445
|
+
{
|
|
41446
|
+
name: "list_build_artifacts",
|
|
41447
|
+
annotations: {
|
|
41448
|
+
readOnlyHint: true,
|
|
41449
|
+
destructiveHint: false,
|
|
41450
|
+
idempotentHint: true,
|
|
41451
|
+
openWorldHint: true
|
|
41452
|
+
},
|
|
41453
|
+
description: "List artifact files and directories for a build, optionally browsing into subdirectories. Returns an array of artifact entries with name, path, size, and isDirectory flag.",
|
|
41454
|
+
inputSchema: {
|
|
41455
|
+
type: "object",
|
|
41456
|
+
properties: {
|
|
41457
|
+
...buildIdentifierInputProperties,
|
|
41458
|
+
path: {
|
|
41459
|
+
type: "string",
|
|
41460
|
+
description: 'Sub-path to list (e.g. "okd" or "okd/subdir"). Omit to list top-level artifacts.'
|
|
41461
|
+
},
|
|
41462
|
+
includeNested: {
|
|
41463
|
+
type: "boolean",
|
|
41464
|
+
description: "Recursively include all files within subdirectories (default: false)"
|
|
41465
|
+
},
|
|
41466
|
+
nameFilter: {
|
|
41467
|
+
type: "string",
|
|
41468
|
+
description: 'Glob pattern to filter artifacts by name (e.g. "*.yaml")'
|
|
41469
|
+
},
|
|
41470
|
+
pathFilter: {
|
|
41471
|
+
type: "string",
|
|
41472
|
+
description: "Glob pattern to filter artifacts by full path"
|
|
41473
|
+
},
|
|
41474
|
+
extension: {
|
|
41475
|
+
type: "string",
|
|
41476
|
+
description: 'Filter by file extension (e.g. "yaml", ".yaml")'
|
|
41477
|
+
}
|
|
41478
|
+
}
|
|
41479
|
+
},
|
|
41480
|
+
handler: async (args) => {
|
|
41481
|
+
const schema = buildIdentifierSchema.and(
|
|
41482
|
+
import_zod4.z.object({
|
|
41483
|
+
path: import_zod4.z.string().trim().min(1).optional(),
|
|
41484
|
+
includeNested: import_zod4.z.boolean().optional(),
|
|
41485
|
+
nameFilter: import_zod4.z.string().trim().min(1).optional(),
|
|
41486
|
+
pathFilter: import_zod4.z.string().trim().min(1).optional(),
|
|
41487
|
+
extension: import_zod4.z.string().trim().min(1).optional()
|
|
41488
|
+
})
|
|
41489
|
+
);
|
|
41490
|
+
return runTool(
|
|
41491
|
+
"list_build_artifacts",
|
|
41492
|
+
schema,
|
|
41493
|
+
async (typed) => {
|
|
41494
|
+
const adapter = createAdapterFromTeamCityAPI(TeamCityAPI.getInstance());
|
|
41495
|
+
const { locator: buildLocator } = resolveBuildLocator(typed);
|
|
41496
|
+
const manager = new ArtifactManager(adapter);
|
|
41497
|
+
const artifacts = await manager.listArtifacts(buildLocator, {
|
|
41498
|
+
path: typed.path,
|
|
41499
|
+
includeNested: typed.includeNested,
|
|
41500
|
+
includeDirectories: true,
|
|
41501
|
+
nameFilter: typed.nameFilter,
|
|
41502
|
+
pathFilter: typed.pathFilter,
|
|
41503
|
+
extension: typed.extension
|
|
41504
|
+
});
|
|
41505
|
+
return json({ artifacts });
|
|
41506
|
+
},
|
|
41507
|
+
args
|
|
41508
|
+
);
|
|
41509
|
+
}
|
|
41510
|
+
},
|
|
41428
41511
|
{
|
|
41429
41512
|
name: "download_build_artifact",
|
|
41430
41513
|
annotations: {
|
|
@@ -41433,7 +41516,7 @@ var DEV_TOOLS = [
|
|
|
41433
41516
|
idempotentHint: false,
|
|
41434
41517
|
openWorldHint: true
|
|
41435
41518
|
},
|
|
41436
|
-
description: "Download a single build artifact
|
|
41519
|
+
description: "Download a single build artifact, with base64, text, or streaming output. Returns the artifact bytes or stream metadata; returns 404 if the build or path is unknown.",
|
|
41437
41520
|
inputSchema: {
|
|
41438
41521
|
type: "object",
|
|
41439
41522
|
properties: {
|
|
@@ -41501,7 +41584,7 @@ var DEV_TOOLS = [
|
|
|
41501
41584
|
idempotentHint: false,
|
|
41502
41585
|
openWorldHint: true
|
|
41503
41586
|
},
|
|
41504
|
-
description: "Download multiple build artifacts
|
|
41587
|
+
description: "Download multiple build artifacts, with base64, text, or streaming output. Returns per-artifact payloads or stream metadata; returns 404 if the build or any path is unknown.",
|
|
41505
41588
|
inputSchema: {
|
|
41506
41589
|
type: "object",
|
|
41507
41590
|
properties: {
|
|
@@ -42427,7 +42510,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42427
42510
|
idempotentHint: false,
|
|
42428
42511
|
openWorldHint: true
|
|
42429
42512
|
},
|
|
42430
|
-
description: "Create a new TeamCity project.",
|
|
42513
|
+
description: "Create a new TeamCity project. Returns the created project (id and name); returns 409 if a project with the same id already exists.",
|
|
42431
42514
|
inputSchema: {
|
|
42432
42515
|
type: "object",
|
|
42433
42516
|
properties: {
|
|
@@ -42474,7 +42557,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42474
42557
|
idempotentHint: true,
|
|
42475
42558
|
openWorldHint: true
|
|
42476
42559
|
},
|
|
42477
|
-
description: "Delete a TeamCity project.",
|
|
42560
|
+
description: "Delete a TeamCity project. Irreversible; returns 404 if the project does not exist.",
|
|
42478
42561
|
inputSchema: {
|
|
42479
42562
|
type: "object",
|
|
42480
42563
|
properties: {
|
|
@@ -42498,7 +42581,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42498
42581
|
idempotentHint: true,
|
|
42499
42582
|
openWorldHint: true
|
|
42500
42583
|
},
|
|
42501
|
-
description: "Update project settings and parameters.",
|
|
42584
|
+
description: "Update project settings and parameters. Returns the updated project; returns 404 if the project does not exist.",
|
|
42502
42585
|
inputSchema: {
|
|
42503
42586
|
type: "object",
|
|
42504
42587
|
properties: {
|
|
@@ -42594,7 +42677,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42594
42677
|
idempotentHint: false,
|
|
42595
42678
|
openWorldHint: true
|
|
42596
42679
|
},
|
|
42597
|
-
description: "Create a new build configuration.",
|
|
42680
|
+
description: "Create a new build configuration. Returns the created configuration (id and name); returns 409 if a configuration with the same id already exists.",
|
|
42598
42681
|
inputSchema: {
|
|
42599
42682
|
type: "object",
|
|
42600
42683
|
properties: {
|
|
@@ -42629,7 +42712,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42629
42712
|
idempotentHint: false,
|
|
42630
42713
|
openWorldHint: true
|
|
42631
42714
|
},
|
|
42632
|
-
description: "Clone an existing build configuration.",
|
|
42715
|
+
description: "Clone an existing build configuration. Returns the new configuration (id and name); returns 404 if the source configuration is unknown.",
|
|
42633
42716
|
inputSchema: {
|
|
42634
42717
|
type: "object",
|
|
42635
42718
|
properties: {
|
|
@@ -42729,7 +42812,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42729
42812
|
idempotentHint: true,
|
|
42730
42813
|
openWorldHint: true
|
|
42731
42814
|
},
|
|
42732
|
-
description: "Update build configuration settings.",
|
|
42815
|
+
description: "Update build configuration settings. Returns the updated configuration; returns 404 if the configuration is unknown.",
|
|
42733
42816
|
inputSchema: {
|
|
42734
42817
|
type: "object",
|
|
42735
42818
|
properties: {
|
|
@@ -42828,7 +42911,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42828
42911
|
idempotentHint: true,
|
|
42829
42912
|
openWorldHint: true
|
|
42830
42913
|
},
|
|
42831
|
-
description: "Add, update, or delete artifact and snapshot dependencies for a build configuration.",
|
|
42914
|
+
description: "Add, update, or delete artifact and snapshot dependencies for a build configuration. Returns the affected dependency or a delete confirmation; returns 404 if the configuration or dependency id is unknown.",
|
|
42832
42915
|
inputSchema: {
|
|
42833
42916
|
type: "object",
|
|
42834
42917
|
properties: {
|
|
@@ -42976,7 +43059,7 @@ var FULL_MODE_TOOLS = [
|
|
|
42976
43059
|
idempotentHint: true,
|
|
42977
43060
|
openWorldHint: true
|
|
42978
43061
|
},
|
|
42979
|
-
description: "Add, update, or delete build features such as ssh-agent or requirements enforcement.",
|
|
43062
|
+
description: "Add, update, or delete build features such as ssh-agent or requirements enforcement. Returns the affected feature or a delete confirmation; returns 404 if the configuration or feature id is unknown.",
|
|
42980
43063
|
inputSchema: {
|
|
42981
43064
|
type: "object",
|
|
42982
43065
|
properties: {
|
|
@@ -43089,7 +43172,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43089
43172
|
idempotentHint: true,
|
|
43090
43173
|
openWorldHint: true
|
|
43091
43174
|
},
|
|
43092
|
-
description: "Add, update, or delete agent requirements for a build configuration.",
|
|
43175
|
+
description: "Add, update, or delete agent requirements for a build configuration. Returns the affected requirement or a delete confirmation; returns 404 if the configuration or requirement id is unknown.",
|
|
43093
43176
|
inputSchema: {
|
|
43094
43177
|
type: "object",
|
|
43095
43178
|
properties: {
|
|
@@ -43241,7 +43324,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43241
43324
|
idempotentHint: true,
|
|
43242
43325
|
openWorldHint: true
|
|
43243
43326
|
},
|
|
43244
|
-
description: "Enable or disable a build configuration by toggling its paused flag.",
|
|
43327
|
+
description: "Enable or disable a build configuration by toggling its paused flag. Returns the new paused state; returns 404 if the configuration is unknown.",
|
|
43245
43328
|
inputSchema: {
|
|
43246
43329
|
type: "object",
|
|
43247
43330
|
properties: {
|
|
@@ -43292,7 +43375,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43292
43375
|
idempotentHint: true,
|
|
43293
43376
|
openWorldHint: true
|
|
43294
43377
|
},
|
|
43295
|
-
description: "Attach a VCS root to a build configuration.",
|
|
43378
|
+
description: "Attach a VCS root to a build configuration. Returns the attached VCS root entry; returns 404 if the configuration or VCS root is unknown.",
|
|
43296
43379
|
inputSchema: {
|
|
43297
43380
|
type: "object",
|
|
43298
43381
|
properties: {
|
|
@@ -43346,7 +43429,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43346
43429
|
idempotentHint: true,
|
|
43347
43430
|
openWorldHint: true
|
|
43348
43431
|
},
|
|
43349
|
-
description: "Add a parameter to a build configuration.",
|
|
43432
|
+
description: "Add a parameter to a build configuration. Returns the created parameter; returns 404 if the configuration is unknown.",
|
|
43350
43433
|
inputSchema: {
|
|
43351
43434
|
type: "object",
|
|
43352
43435
|
properties: {
|
|
@@ -43393,7 +43476,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43393
43476
|
idempotentHint: true,
|
|
43394
43477
|
openWorldHint: true
|
|
43395
43478
|
},
|
|
43396
|
-
description: "Update a build configuration parameter.",
|
|
43479
|
+
description: "Update a build configuration parameter. Returns the updated parameter; returns 404 if the configuration or parameter name is unknown.",
|
|
43397
43480
|
inputSchema: {
|
|
43398
43481
|
type: "object",
|
|
43399
43482
|
properties: {
|
|
@@ -43441,7 +43524,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43441
43524
|
idempotentHint: true,
|
|
43442
43525
|
openWorldHint: true
|
|
43443
43526
|
},
|
|
43444
|
-
description: "Delete a parameter from a build configuration.",
|
|
43527
|
+
description: "Delete a parameter from a build configuration. Idempotent; returns 404 if the configuration is unknown.",
|
|
43445
43528
|
inputSchema: {
|
|
43446
43529
|
type: "object",
|
|
43447
43530
|
properties: {
|
|
@@ -43502,7 +43585,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43502
43585
|
idempotentHint: true,
|
|
43503
43586
|
openWorldHint: true
|
|
43504
43587
|
},
|
|
43505
|
-
description: "Add a parameter to a project.",
|
|
43588
|
+
description: "Add a parameter to a project. Returns the created parameter; returns 404 if the project does not exist.",
|
|
43506
43589
|
inputSchema: {
|
|
43507
43590
|
type: "object",
|
|
43508
43591
|
properties: {
|
|
@@ -43551,7 +43634,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43551
43634
|
idempotentHint: true,
|
|
43552
43635
|
openWorldHint: true
|
|
43553
43636
|
},
|
|
43554
|
-
description: "Update a project parameter.",
|
|
43637
|
+
description: "Update a project parameter. Returns the updated parameter; returns 404 if the project or parameter name is unknown.",
|
|
43555
43638
|
inputSchema: {
|
|
43556
43639
|
type: "object",
|
|
43557
43640
|
properties: {
|
|
@@ -43599,7 +43682,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43599
43682
|
idempotentHint: true,
|
|
43600
43683
|
openWorldHint: true
|
|
43601
43684
|
},
|
|
43602
|
-
description: "Delete a parameter from a project.",
|
|
43685
|
+
description: "Delete a parameter from a project. Idempotent; returns 404 if the project does not exist.",
|
|
43603
43686
|
inputSchema: {
|
|
43604
43687
|
type: "object",
|
|
43605
43688
|
properties: {
|
|
@@ -43657,7 +43740,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43657
43740
|
idempotentHint: true,
|
|
43658
43741
|
openWorldHint: true
|
|
43659
43742
|
},
|
|
43660
|
-
description: "Add an output parameter to a build configuration
|
|
43743
|
+
description: "Add an output parameter to a build configuration; used to pass values between builds in a chain. Returns the created parameter; returns 404 if the configuration is unknown.",
|
|
43661
43744
|
inputSchema: {
|
|
43662
43745
|
type: "object",
|
|
43663
43746
|
properties: {
|
|
@@ -43697,7 +43780,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43697
43780
|
idempotentHint: true,
|
|
43698
43781
|
openWorldHint: true
|
|
43699
43782
|
},
|
|
43700
|
-
description: "Update an output parameter in a build configuration.",
|
|
43783
|
+
description: "Update an output parameter in a build configuration. Returns the updated parameter; returns 404 if the configuration or parameter name is unknown.",
|
|
43701
43784
|
inputSchema: {
|
|
43702
43785
|
type: "object",
|
|
43703
43786
|
properties: {
|
|
@@ -43737,7 +43820,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43737
43820
|
idempotentHint: true,
|
|
43738
43821
|
openWorldHint: true
|
|
43739
43822
|
},
|
|
43740
|
-
description: "Delete an output parameter from a build configuration.",
|
|
43823
|
+
description: "Delete an output parameter from a build configuration. Idempotent; returns 404 if the configuration is unknown.",
|
|
43741
43824
|
inputSchema: {
|
|
43742
43825
|
type: "object",
|
|
43743
43826
|
properties: {
|
|
@@ -43771,7 +43854,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43771
43854
|
idempotentHint: false,
|
|
43772
43855
|
openWorldHint: true
|
|
43773
43856
|
},
|
|
43774
|
-
description: "Create a new VCS root.",
|
|
43857
|
+
description: "Create a new VCS root. Returns the created VCS root id; returns 409 if a VCS root with the same id already exists.",
|
|
43775
43858
|
inputSchema: {
|
|
43776
43859
|
type: "object",
|
|
43777
43860
|
properties: {
|
|
@@ -43815,7 +43898,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43815
43898
|
idempotentHint: true,
|
|
43816
43899
|
openWorldHint: true
|
|
43817
43900
|
},
|
|
43818
|
-
description: "Authorize or unauthorize a build agent.",
|
|
43901
|
+
description: "Authorize or unauthorize a build agent. Returns the new authorization state; returns 404 if the agent is unknown.",
|
|
43819
43902
|
inputSchema: {
|
|
43820
43903
|
type: "object",
|
|
43821
43904
|
properties: {
|
|
@@ -43850,7 +43933,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43850
43933
|
idempotentHint: true,
|
|
43851
43934
|
openWorldHint: true
|
|
43852
43935
|
},
|
|
43853
|
-
description: "Assign an agent to a different pool.",
|
|
43936
|
+
description: "Assign an agent to a different pool. Returns the agent's new pool assignment; returns 404 if the agent or pool is unknown.",
|
|
43854
43937
|
inputSchema: {
|
|
43855
43938
|
type: "object",
|
|
43856
43939
|
properties: {
|
|
@@ -43882,7 +43965,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43882
43965
|
idempotentHint: true,
|
|
43883
43966
|
openWorldHint: true
|
|
43884
43967
|
},
|
|
43885
|
-
description: "Remove a build agent from the TeamCity server
|
|
43968
|
+
description: "Remove a build agent from the TeamCity server, useful for cleaning up disconnected or ghost agent entries. Idempotent; returns 404 if the agent is unknown.",
|
|
43886
43969
|
inputSchema: {
|
|
43887
43970
|
type: "object",
|
|
43888
43971
|
properties: {
|
|
@@ -43907,7 +43990,7 @@ var FULL_MODE_TOOLS = [
|
|
|
43907
43990
|
idempotentHint: true,
|
|
43908
43991
|
openWorldHint: true
|
|
43909
43992
|
},
|
|
43910
|
-
description: "Add, update, or delete build steps.",
|
|
43993
|
+
description: "Add, update, or delete build steps. Returns the affected step or a delete confirmation; returns 404 if the configuration or step id is unknown.",
|
|
43911
43994
|
inputSchema: {
|
|
43912
43995
|
type: "object",
|
|
43913
43996
|
properties: {
|
|
@@ -44106,7 +44189,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44106
44189
|
idempotentHint: true,
|
|
44107
44190
|
openWorldHint: true
|
|
44108
44191
|
},
|
|
44109
|
-
description: "Add, update, or delete build triggers.",
|
|
44192
|
+
description: "Add, update, or delete build triggers. Returns the affected trigger or a delete confirmation; returns 404 if the configuration or trigger id is unknown.",
|
|
44110
44193
|
inputSchema: {
|
|
44111
44194
|
type: "object",
|
|
44112
44195
|
properties: {
|
|
@@ -44179,7 +44262,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44179
44262
|
idempotentHint: true,
|
|
44180
44263
|
openWorldHint: true
|
|
44181
44264
|
},
|
|
44182
|
-
description: "Pause or unpause a list of build configurations
|
|
44265
|
+
description: "Pause or unpause a list of build configurations, optionally cancelling their queued builds. Returns the count of configurations updated; returns 404 if any configuration is unknown.",
|
|
44183
44266
|
inputSchema: {
|
|
44184
44267
|
type: "object",
|
|
44185
44268
|
properties: {
|
|
@@ -44246,7 +44329,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44246
44329
|
idempotentHint: false,
|
|
44247
44330
|
openWorldHint: true
|
|
44248
44331
|
},
|
|
44249
|
-
description: "Mute tests within a project or build configuration scope.",
|
|
44332
|
+
description: "Mute tests within a project or build configuration scope. Returns the created mute id; returns 404 if the scope id is unknown.",
|
|
44250
44333
|
inputSchema: {
|
|
44251
44334
|
type: "object",
|
|
44252
44335
|
properties: {
|
|
@@ -44343,7 +44426,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44343
44426
|
idempotentHint: false,
|
|
44344
44427
|
openWorldHint: true
|
|
44345
44428
|
},
|
|
44346
|
-
description: "Move a queued build to the top of the queue.",
|
|
44429
|
+
description: "Move a queued build to the top of the queue. Idempotent; returns 404 if the build is no longer queued.",
|
|
44347
44430
|
inputSchema: {
|
|
44348
44431
|
type: "object",
|
|
44349
44432
|
properties: { buildId: { type: "string", description: "Queued build ID" } },
|
|
@@ -44378,7 +44461,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44378
44461
|
idempotentHint: false,
|
|
44379
44462
|
openWorldHint: true
|
|
44380
44463
|
},
|
|
44381
|
-
description: "Reorder queued builds by providing the desired sequence of IDs.",
|
|
44464
|
+
description: "Reorder queued builds by providing the desired sequence of IDs. Returns the new queue order; returns 404 if any build id is no longer queued.",
|
|
44382
44465
|
inputSchema: {
|
|
44383
44466
|
type: "object",
|
|
44384
44467
|
properties: { buildIds: { type: "array", items: { type: "string" } } },
|
|
@@ -44413,7 +44496,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44413
44496
|
idempotentHint: false,
|
|
44414
44497
|
openWorldHint: true
|
|
44415
44498
|
},
|
|
44416
|
-
description: "Cancel all queued builds for a specific build configuration.",
|
|
44499
|
+
description: "Cancel all queued builds for a specific build configuration. Returns the count of cancelled builds; returns 404 if the configuration is unknown.",
|
|
44417
44500
|
inputSchema: {
|
|
44418
44501
|
type: "object",
|
|
44419
44502
|
properties: { buildTypeId: { type: "string", description: "Build type ID" } },
|
|
@@ -44455,7 +44538,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44455
44538
|
idempotentHint: false,
|
|
44456
44539
|
openWorldHint: true
|
|
44457
44540
|
},
|
|
44458
|
-
description: "Cancel all queued builds matching a queue locator expression.",
|
|
44541
|
+
description: "Cancel all queued builds matching a queue locator expression. Returns the count of cancelled builds; returns 400 if the locator is malformed.",
|
|
44459
44542
|
inputSchema: {
|
|
44460
44543
|
type: "object",
|
|
44461
44544
|
properties: { locator: { type: "string", description: "Queue locator expression" } },
|
|
@@ -44497,7 +44580,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44497
44580
|
idempotentHint: true,
|
|
44498
44581
|
openWorldHint: true
|
|
44499
44582
|
},
|
|
44500
|
-
description: "Pause queue processing by disabling all agents in a pool
|
|
44583
|
+
description: "Pause queue processing by disabling all agents in a pool, optionally cancelling queued builds for a build type. Returns counts of agents disabled and builds cancelled; returns 404 if the pool is unknown.",
|
|
44501
44584
|
inputSchema: {
|
|
44502
44585
|
type: "object",
|
|
44503
44586
|
properties: {
|
|
@@ -44575,7 +44658,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44575
44658
|
idempotentHint: true,
|
|
44576
44659
|
openWorldHint: true
|
|
44577
44660
|
},
|
|
44578
|
-
description: "Resume queue processing by re-enabling all agents in a pool.",
|
|
44661
|
+
description: "Resume queue processing by re-enabling all agents in a pool. Returns the count of agents re-enabled; returns 404 if the pool is unknown.",
|
|
44579
44662
|
inputSchema: {
|
|
44580
44663
|
type: "object",
|
|
44581
44664
|
properties: { poolId: { type: "string", description: "Agent pool ID" } },
|
|
@@ -44625,7 +44708,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44625
44708
|
idempotentHint: true,
|
|
44626
44709
|
openWorldHint: true
|
|
44627
44710
|
},
|
|
44628
|
-
description: "Enable or disable an agent
|
|
44711
|
+
description: "Enable or disable an agent, with optional comment and schedule. Returns the new enabled state; returns 404 if the agent is unknown.",
|
|
44629
44712
|
inputSchema: {
|
|
44630
44713
|
type: "object",
|
|
44631
44714
|
properties: {
|
|
@@ -44677,7 +44760,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44677
44760
|
idempotentHint: true,
|
|
44678
44761
|
openWorldHint: true
|
|
44679
44762
|
},
|
|
44680
|
-
description: "Bulk enable or disable agents selected by pool or locator
|
|
44763
|
+
description: "Bulk enable or disable agents selected by pool or locator, with optional comment and schedule. Returns counts of agents updated and skipped; returns 404 if the pool is unknown or 400 if the locator is malformed.",
|
|
44681
44764
|
inputSchema: {
|
|
44682
44765
|
type: "object",
|
|
44683
44766
|
properties: {
|
|
@@ -44802,7 +44885,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44802
44885
|
idempotentHint: false,
|
|
44803
44886
|
openWorldHint: true
|
|
44804
44887
|
},
|
|
44805
|
-
description: "Upload an SSH key to a project
|
|
44888
|
+
description: "Upload an SSH key to a project; provide either privateKeyContent or privateKeyPath, not both. Returns the uploaded key's name; returns 404 if the project does not exist.",
|
|
44806
44889
|
inputSchema: {
|
|
44807
44890
|
type: "object",
|
|
44808
44891
|
properties: {
|
|
@@ -44852,7 +44935,7 @@ var FULL_MODE_TOOLS = [
|
|
|
44852
44935
|
idempotentHint: true,
|
|
44853
44936
|
openWorldHint: true
|
|
44854
44937
|
},
|
|
44855
|
-
description: "Delete an SSH key from a project.",
|
|
44938
|
+
description: "Delete an SSH key from a project. Idempotent; returns 404 if the project or key is unknown.",
|
|
44856
44939
|
inputSchema: {
|
|
44857
44940
|
type: "object",
|
|
44858
44941
|
properties: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daghis/teamcity-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"description": "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
|
|
5
5
|
"mcpName": "io.github.Daghis/teamcity",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -73,7 +73,6 @@
|
|
|
73
73
|
"zod": "^4.3.5"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@codecov/bundle-analyzer": "^2.0.1",
|
|
77
76
|
"@esbuild-plugins/tsconfig-paths": "^0.1.2",
|
|
78
77
|
"@eslint/js": "^10.0.1",
|
|
79
78
|
"@trivago/prettier-plugin-sort-imports": "^6.0.1",
|
|
@@ -90,7 +89,7 @@
|
|
|
90
89
|
"eslint-plugin-prettier": "^5.0.1",
|
|
91
90
|
"globals": "^17.4.0",
|
|
92
91
|
"jest": "^30.1.3",
|
|
93
|
-
"jest-junit": "^
|
|
92
|
+
"jest-junit": "^17.0.0",
|
|
94
93
|
"js-yaml": "^4.1.1",
|
|
95
94
|
"prettier": "^3.1.0",
|
|
96
95
|
"ts-jest": "^29.4.9",
|
package/server.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
9
|
"websiteUrl": "https://github.com/Daghis/teamcity-mcp",
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.11.0",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
15
15
|
"identifier": "@daghis/teamcity-mcp",
|
|
16
|
-
"version": "2.
|
|
16
|
+
"version": "2.11.0",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"runtimeArguments": [
|
|
19
19
|
{
|