@daghis/teamcity-mcp 2.0.1 → 2.0.3

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.0.3](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.0.2...teamcity-mcp-v2.0.3) (2026-01-05)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * add type parameter to manage_agent_requirements ([#338](https://github.com/Daghis/teamcity-mcp/issues/338)) ([#343](https://github.com/Daghis/teamcity-mcp/issues/343)) ([5545257](https://github.com/Daghis/teamcity-mcp/commit/5545257823f442cf27e9313f11f1dd0b71115af3))
9
+
10
+ ## [2.0.2](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.0.1...teamcity-mcp-v2.0.2) (2026-01-05)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * resolve HTTP 406 when updating build configuration fields ([#339](https://github.com/Daghis/teamcity-mcp/issues/339)) ([#341](https://github.com/Daghis/teamcity-mcp/issues/341)) ([16b1dd2](https://github.com/Daghis/teamcity-mcp/commit/16b1dd207978d63ad9824c9b7eecbbd4a9badc94))
16
+
3
17
  ## [2.0.1](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.0.0...teamcity-mcp-v2.0.1) (2025-12-23)
4
18
 
5
19
 
package/dist/index.js CHANGED
@@ -1195,7 +1195,7 @@ function debug2(message, meta) {
1195
1195
  // package.json
1196
1196
  var package_default = {
1197
1197
  name: "@daghis/teamcity-mcp",
1198
- version: "2.0.1",
1198
+ version: "2.0.3",
1199
1199
  description: "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
1200
1200
  mcpName: "io.github.Daghis/teamcity",
1201
1201
  main: "dist/index.js",
@@ -1487,6 +1487,7 @@ var AgentRequirementsManager = class {
1487
1487
  const mergedProps = mergeRecords(baseProps, toStringRecord(input.properties));
1488
1488
  const payload = {
1489
1489
  ...existing ?? {},
1490
+ type: input.type ?? existing?.type,
1490
1491
  disabled: input.disabled ?? existing?.disabled
1491
1492
  };
1492
1493
  const properties = recordToProperties(mergedProps);
@@ -2338,7 +2339,7 @@ var setArtifactRulesWithFallback = async (http, buildTypeId, artifactRules) => {
2338
2339
  const encodedId = encodeURIComponent(buildTypeId);
2339
2340
  try {
2340
2341
  await http.put(`/app/rest/buildTypes/${encodedId}/settings/artifactRules`, artifactRules, {
2341
- headers: { "Content-Type": "text/plain" }
2342
+ headers: { "Content-Type": "text/plain", Accept: "text/plain" }
2342
2343
  });
2343
2344
  } catch (err) {
2344
2345
  if (!isArtifactRulesRetryableError(err)) {
@@ -2351,7 +2352,7 @@ var setArtifactRulesWithFallback = async (http, buildTypeId, artifactRules) => {
2351
2352
  });
2352
2353
  try {
2353
2354
  await http.put(`/app/rest/buildTypes/${encodedId}/artifactRules`, artifactRules, {
2354
- headers: { "Content-Type": "text/plain" }
2355
+ headers: { "Content-Type": "text/plain", Accept: "text/plain" }
2355
2356
  });
2356
2357
  } catch (fallbackError) {
2357
2358
  debug2("Legacy artifact rules update failed", {
@@ -2558,14 +2559,16 @@ var BuildConfigurationUpdateManager = class {
2558
2559
  await this.client.modules.buildTypes.setBuildTypeField(
2559
2560
  currentConfig.id,
2560
2561
  "name",
2561
- updates.name
2562
+ updates.name,
2563
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
2562
2564
  );
2563
2565
  }
2564
2566
  if (updates.description !== void 0) {
2565
2567
  await this.client.modules.buildTypes.setBuildTypeField(
2566
2568
  currentConfig.id,
2567
2569
  "description",
2568
- updates.description ?? ""
2570
+ updates.description ?? "",
2571
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
2569
2572
  );
2570
2573
  }
2571
2574
  }
@@ -2578,7 +2581,8 @@ var BuildConfigurationUpdateManager = class {
2578
2581
  await this.client.modules.buildTypes.setBuildTypeField(
2579
2582
  currentConfig.id,
2580
2583
  `settings/${setting.name}`,
2581
- setting.value
2584
+ setting.value,
2585
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
2582
2586
  );
2583
2587
  }
2584
2588
  }
@@ -2599,7 +2603,8 @@ var BuildConfigurationUpdateManager = class {
2599
2603
  await this.client.modules.buildTypes.setBuildTypeField(
2600
2604
  currentConfig.id,
2601
2605
  `parameters/${name}`,
2602
- value
2606
+ value,
2607
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
2603
2608
  );
2604
2609
  }
2605
2610
  }
@@ -42012,14 +42017,16 @@ var FULL_MODE_TOOLS = [
42012
42017
  await adapter.modules.buildTypes.setBuildTypeField(
42013
42018
  typedArgs.buildTypeId,
42014
42019
  "name",
42015
- typedArgs.name
42020
+ typedArgs.name,
42021
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
42016
42022
  );
42017
42023
  }
42018
42024
  if (typedArgs.description !== void 0) {
42019
42025
  await adapter.modules.buildTypes.setBuildTypeField(
42020
42026
  typedArgs.buildTypeId,
42021
42027
  "description",
42022
- typedArgs.description
42028
+ typedArgs.description,
42029
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
42023
42030
  );
42024
42031
  }
42025
42032
  if (typedArgs.artifactRules !== void 0) {
@@ -42035,14 +42042,16 @@ var FULL_MODE_TOOLS = [
42035
42042
  await adapter.modules.buildTypes.setBuildTypeField(
42036
42043
  typedArgs.buildTypeId,
42037
42044
  "name",
42038
- typedArgs.name
42045
+ typedArgs.name,
42046
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
42039
42047
  );
42040
42048
  }
42041
42049
  if (typedArgs.description !== void 0) {
42042
42050
  await adapter.modules.buildTypes.setBuildTypeField(
42043
42051
  typedArgs.buildTypeId,
42044
42052
  "description",
42045
- typedArgs.description
42053
+ typedArgs.description,
42054
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
42046
42055
  );
42047
42056
  }
42048
42057
  if (typedArgs.artifactRules !== void 0) {
@@ -42057,7 +42066,8 @@ var FULL_MODE_TOOLS = [
42057
42066
  await adapter.modules.buildTypes.setBuildTypeField(
42058
42067
  typedArgs.buildTypeId,
42059
42068
  "paused",
42060
- String(typedArgs.paused)
42069
+ String(typedArgs.paused),
42070
+ { headers: { "Content-Type": "text/plain", Accept: "text/plain" } }
42061
42071
  );
42062
42072
  }
42063
42073
  return json({ success: true, action: "update_build_config", id: typedArgs.buildTypeId });
@@ -42330,9 +42340,33 @@ var FULL_MODE_TOOLS = [
42330
42340
  type: "string",
42331
42341
  description: "Requirement ID (required for update/delete)"
42332
42342
  },
42343
+ type: {
42344
+ type: "string",
42345
+ enum: [
42346
+ "exists",
42347
+ "not-exists",
42348
+ "equals",
42349
+ "does-not-equal",
42350
+ "more-than",
42351
+ "less-than",
42352
+ "no-more-than",
42353
+ "no-less-than",
42354
+ "ver-more-than",
42355
+ "ver-less-than",
42356
+ "ver-no-more-than",
42357
+ "ver-no-less-than",
42358
+ "contains",
42359
+ "does-not-contain",
42360
+ "starts-with",
42361
+ "ends-with",
42362
+ "matches",
42363
+ "does-not-match"
42364
+ ],
42365
+ description: "Requirement type (e.g., exists, equals, contains, starts-with, matches)"
42366
+ },
42333
42367
  properties: {
42334
42368
  type: "object",
42335
- description: "Requirement properties (e.g. property-name, condition, value)"
42369
+ description: "Requirement properties (e.g. property-name, property-value)"
42336
42370
  },
42337
42371
  disabled: { type: "boolean", description: "Disable or enable the requirement" }
42338
42372
  },
@@ -42340,10 +42374,31 @@ var FULL_MODE_TOOLS = [
42340
42374
  },
42341
42375
  handler: async (args) => {
42342
42376
  const propertyValue = import_zod4.z.union([import_zod4.z.string(), import_zod4.z.number(), import_zod4.z.boolean()]);
42377
+ const requirementTypes = [
42378
+ "exists",
42379
+ "not-exists",
42380
+ "equals",
42381
+ "does-not-equal",
42382
+ "more-than",
42383
+ "less-than",
42384
+ "no-more-than",
42385
+ "no-less-than",
42386
+ "ver-more-than",
42387
+ "ver-less-than",
42388
+ "ver-no-more-than",
42389
+ "ver-no-less-than",
42390
+ "contains",
42391
+ "does-not-contain",
42392
+ "starts-with",
42393
+ "ends-with",
42394
+ "matches",
42395
+ "does-not-match"
42396
+ ];
42343
42397
  const schema = import_zod4.z.object({
42344
42398
  buildTypeId: import_zod4.z.string().min(1),
42345
42399
  action: import_zod4.z.enum(["add", "update", "delete"]),
42346
42400
  requirementId: import_zod4.z.string().min(1).optional(),
42401
+ type: import_zod4.z.enum(requirementTypes).optional(),
42347
42402
  properties: import_zod4.z.record(import_zod4.z.string(), propertyValue).optional(),
42348
42403
  disabled: import_zod4.z.boolean().optional()
42349
42404
  }).superRefine((value, ctx) => {
@@ -42365,6 +42420,7 @@ var FULL_MODE_TOOLS = [
42365
42420
  case "add": {
42366
42421
  const result = await manager.addRequirement({
42367
42422
  buildTypeId: typed.buildTypeId,
42423
+ type: typed.type,
42368
42424
  properties: typed.properties,
42369
42425
  disabled: typed.disabled
42370
42426
  });
@@ -42379,6 +42435,7 @@ var FULL_MODE_TOOLS = [
42379
42435
  case "update": {
42380
42436
  const result = await manager.updateRequirement(typed.requirementId, {
42381
42437
  buildTypeId: typed.buildTypeId,
42438
+ type: typed.type,
42382
42439
  properties: typed.properties,
42383
42440
  disabled: typed.disabled
42384
42441
  });
@@ -42441,7 +42498,7 @@ var FULL_MODE_TOOLS = [
42441
42498
  {
42442
42499
  headers: {
42443
42500
  "Content-Type": "text/plain",
42444
- Accept: "application/json"
42501
+ Accept: "text/plain"
42445
42502
  }
42446
42503
  }
42447
42504
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daghis/teamcity-mcp",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
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",
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.0.1",
10
+ "version": "2.0.3",
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.0.1",
16
+ "version": "2.0.3",
17
17
  "runtimeHint": "npx",
18
18
  "runtimeArguments": [
19
19
  {