@daghis/teamcity-mcp 2.6.3 → 2.8.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/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.6.3",
1208
+ version: "2.8.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",
@@ -1287,6 +1287,8 @@ var package_default = {
1287
1287
  "@types/node": "^25.0.2",
1288
1288
  "@typescript-eslint/eslint-plugin": "^8.58.0",
1289
1289
  "@typescript-eslint/parser": "^8.58.0",
1290
+ ajv: "^8.18.0",
1291
+ "ajv-formats": "^3.0.1",
1290
1292
  esbuild: "^0.28.0",
1291
1293
  eslint: "^10.1.0",
1292
1294
  "eslint-config-prettier": "^10.1.8",
@@ -1306,8 +1308,9 @@ var package_default = {
1306
1308
  "@hono/node-server": "^1.19.13",
1307
1309
  axios: "^1.15.0",
1308
1310
  "body-parser": "^2.2.1",
1311
+ "follow-redirects": "^1.16.0",
1309
1312
  "glob@>=10.2.0 <10.5.0": "^10.5.0",
1310
- hono: "^4.12.12",
1313
+ hono: "^4.12.14",
1311
1314
  "js-yaml@<4.0.0": "^3.14.2",
1312
1315
  "lodash-es": "^4.18.0",
1313
1316
  "picomatch@>=2 <2.3.2": "^2.3.2",
@@ -4604,13 +4607,19 @@ async function runTool(toolName, schema, handler, rawArgs, context) {
4604
4607
  );
4605
4608
  if (err instanceof import_zod3.z.ZodError) {
4606
4609
  const formatted2 = formatError(err, { ...context, requestId: reqId });
4607
- return json(formatted2);
4610
+ const response2 = json(formatted2);
4611
+ response2.success = false;
4612
+ response2.error = msg;
4613
+ return response2;
4608
4614
  }
4609
4615
  const formatted = globalErrorHandler.handleToolError(err, toolName, {
4610
4616
  ...context,
4611
4617
  requestId: reqId
4612
4618
  });
4613
- return json(formatted);
4619
+ const response = json(formatted);
4620
+ response.success = false;
4621
+ response.error = msg;
4622
+ return response;
4614
4623
  }
4615
4624
  }
4616
4625
 
@@ -39051,6 +39060,163 @@ var downloadArtifactByUrl = async (adapter, request, encoding, options) => {
39051
39060
  };
39052
39061
  return buildArtifactPayload(artifact, "base64", options);
39053
39062
  };
39063
+ var paginationMetaSchema = {
39064
+ type: "object",
39065
+ description: "Pagination metadata describing which slice was returned.",
39066
+ additionalProperties: true,
39067
+ properties: {
39068
+ page: { type: "number" },
39069
+ pageSize: { type: "number" },
39070
+ mode: { type: "string", enum: ["all"] },
39071
+ fetched: { type: "number" }
39072
+ }
39073
+ };
39074
+ var buildObjectSchema = {
39075
+ type: "object",
39076
+ description: "TeamCity build representation.",
39077
+ additionalProperties: true,
39078
+ properties: {
39079
+ id: { type: ["number", "string"] },
39080
+ buildTypeId: { type: "string" },
39081
+ number: { type: "string" },
39082
+ state: { type: "string" },
39083
+ status: { type: "string" },
39084
+ statusText: { type: "string" },
39085
+ branchName: { type: "string" },
39086
+ href: { type: "string" },
39087
+ webUrl: { type: "string" }
39088
+ }
39089
+ };
39090
+ var projectObjectSchema = {
39091
+ type: "object",
39092
+ description: "TeamCity project representation.",
39093
+ additionalProperties: true,
39094
+ properties: {
39095
+ id: { type: "string" },
39096
+ name: { type: "string" },
39097
+ parentProjectId: { type: "string" },
39098
+ href: { type: "string" },
39099
+ webUrl: { type: "string" },
39100
+ archived: { type: "boolean" },
39101
+ description: { type: "string" }
39102
+ }
39103
+ };
39104
+ var buildTypeObjectSchema = {
39105
+ type: "object",
39106
+ description: "TeamCity build configuration (buildType) representation.",
39107
+ additionalProperties: true,
39108
+ properties: {
39109
+ id: { type: "string" },
39110
+ name: { type: "string" },
39111
+ projectId: { type: "string" },
39112
+ projectName: { type: "string" },
39113
+ href: { type: "string" },
39114
+ webUrl: { type: "string" },
39115
+ paused: { type: "boolean" },
39116
+ description: { type: "string" }
39117
+ }
39118
+ };
39119
+ var listOutputSchema = (itemSchema) => ({
39120
+ type: "object",
39121
+ additionalProperties: false,
39122
+ required: ["items", "pagination"],
39123
+ properties: {
39124
+ items: { type: "array", items: itemSchema },
39125
+ pagination: paginationMetaSchema
39126
+ }
39127
+ });
39128
+ var buildStatusOutputSchema = {
39129
+ type: "object",
39130
+ description: "Aggregated status for a queued, running, or finished build.",
39131
+ additionalProperties: true,
39132
+ required: ["buildId", "state", "percentageComplete"],
39133
+ properties: {
39134
+ buildId: { type: "string" },
39135
+ buildNumber: { type: "string" },
39136
+ buildTypeId: { type: "string" },
39137
+ state: { type: "string", enum: ["queued", "running", "finished", "failed", "canceled"] },
39138
+ status: { type: "string", enum: ["SUCCESS", "FAILURE", "ERROR", "UNKNOWN"] },
39139
+ statusText: { type: "string" },
39140
+ percentageComplete: { type: "number" },
39141
+ currentStageText: { type: "string" },
39142
+ branchName: { type: "string" },
39143
+ webUrl: { type: "string" },
39144
+ queuedDate: { type: "string" },
39145
+ startDate: { type: "string" },
39146
+ finishDate: { type: "string" },
39147
+ elapsedSeconds: { type: "number" },
39148
+ estimatedTotalSeconds: { type: "number" },
39149
+ estimatedStartTime: { type: "string" },
39150
+ queuePosition: { type: "number" },
39151
+ waitReason: { type: "string" },
39152
+ failureReason: { type: "string" },
39153
+ canceledBy: { type: "string" },
39154
+ canceledDate: { type: "string" },
39155
+ totalQueued: { type: "number" },
39156
+ canMoveToTop: { type: "boolean" },
39157
+ testSummary: {
39158
+ type: "object",
39159
+ additionalProperties: true,
39160
+ properties: {
39161
+ total: { type: "number" },
39162
+ passed: { type: "number" },
39163
+ failed: { type: "number" },
39164
+ ignored: { type: "number" },
39165
+ muted: { type: "number" },
39166
+ newFailed: { type: "number" }
39167
+ }
39168
+ },
39169
+ problems: {
39170
+ type: "array",
39171
+ items: {
39172
+ type: "object",
39173
+ additionalProperties: true,
39174
+ properties: {
39175
+ type: { type: "string" },
39176
+ identity: { type: "string" },
39177
+ description: { type: "string" }
39178
+ }
39179
+ }
39180
+ }
39181
+ }
39182
+ };
39183
+ var buildResultsOutputSchema = {
39184
+ type: "object",
39185
+ description: "Rich build result bundle assembled by BuildResultsManager. The core build summary is always under `build`; optional sections (artifacts, statistics, changes, dependencies) are present when requested via the corresponding include* flags.",
39186
+ additionalProperties: true,
39187
+ required: ["build"],
39188
+ properties: {
39189
+ build: {
39190
+ type: "object",
39191
+ additionalProperties: true,
39192
+ properties: {
39193
+ id: { type: ["string", "number"] },
39194
+ number: { type: "string" },
39195
+ status: { type: "string" },
39196
+ state: { type: "string" },
39197
+ buildTypeId: { type: "string" },
39198
+ projectId: { type: "string" },
39199
+ branchName: { type: "string" },
39200
+ statusText: { type: "string" },
39201
+ webUrl: { type: "string" }
39202
+ }
39203
+ },
39204
+ artifacts: { type: "array", items: { type: "object", additionalProperties: true } },
39205
+ statistics: { type: "object", additionalProperties: true },
39206
+ changes: { type: "array", items: { type: "object", additionalProperties: true } },
39207
+ dependencies: { type: "array", items: { type: "object", additionalProperties: true } }
39208
+ }
39209
+ };
39210
+ var FIRST_BATCH_OUTPUT_SCHEMAS = {
39211
+ list_builds: listOutputSchema(buildObjectSchema),
39212
+ get_build: buildObjectSchema,
39213
+ get_build_status: buildStatusOutputSchema,
39214
+ get_build_results: buildResultsOutputSchema,
39215
+ list_projects: listOutputSchema(projectObjectSchema),
39216
+ get_project: projectObjectSchema,
39217
+ list_build_configs: listOutputSchema(buildTypeObjectSchema),
39218
+ get_build_config: buildTypeObjectSchema
39219
+ };
39054
39220
  function getMCPMode2() {
39055
39221
  return getMCPMode();
39056
39222
  }
@@ -39058,6 +39224,12 @@ var DEV_TOOLS = [
39058
39224
  // === Basic Tools ===
39059
39225
  {
39060
39226
  name: "ping",
39227
+ annotations: {
39228
+ readOnlyHint: true,
39229
+ destructiveHint: false,
39230
+ idempotentHint: true,
39231
+ openWorldHint: true
39232
+ },
39061
39233
  description: "Test MCP server connectivity",
39062
39234
  inputSchema: {
39063
39235
  type: "object",
@@ -39080,6 +39252,12 @@ var DEV_TOOLS = [
39080
39252
  // === Mode Management Tools ===
39081
39253
  {
39082
39254
  name: "get_mcp_mode",
39255
+ annotations: {
39256
+ readOnlyHint: true,
39257
+ destructiveHint: false,
39258
+ idempotentHint: true,
39259
+ openWorldHint: false
39260
+ },
39083
39261
  description: "Get current MCP mode. Dev mode: read-only tools for safe exploration. Full mode: all tools including admin operations.",
39084
39262
  inputSchema: {
39085
39263
  type: "object",
@@ -39100,6 +39278,12 @@ var DEV_TOOLS = [
39100
39278
  },
39101
39279
  {
39102
39280
  name: "set_mcp_mode",
39281
+ annotations: {
39282
+ readOnlyHint: false,
39283
+ destructiveHint: false,
39284
+ idempotentHint: true,
39285
+ openWorldHint: false
39286
+ },
39103
39287
  description: "Switch MCP mode at runtime. Dev mode: safe read-only operations. Full mode: all operations including writes. Clients are notified of tool list changes.",
39104
39288
  inputSchema: {
39105
39289
  type: "object",
@@ -39143,7 +39327,14 @@ var DEV_TOOLS = [
39143
39327
  // === Project Tools ===
39144
39328
  {
39145
39329
  name: "list_projects",
39330
+ annotations: {
39331
+ readOnlyHint: true,
39332
+ destructiveHint: false,
39333
+ idempotentHint: true,
39334
+ openWorldHint: true
39335
+ },
39146
39336
  description: "List TeamCity projects (supports pagination)",
39337
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.list_projects,
39147
39338
  inputSchema: {
39148
39339
  type: "object",
39149
39340
  properties: {
@@ -39210,7 +39401,14 @@ var DEV_TOOLS = [
39210
39401
  },
39211
39402
  {
39212
39403
  name: "get_project",
39404
+ annotations: {
39405
+ readOnlyHint: true,
39406
+ destructiveHint: false,
39407
+ idempotentHint: true,
39408
+ openWorldHint: true
39409
+ },
39213
39410
  description: "Get details of a specific project",
39411
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.get_project,
39214
39412
  inputSchema: {
39215
39413
  type: "object",
39216
39414
  properties: {
@@ -39235,7 +39433,14 @@ var DEV_TOOLS = [
39235
39433
  // === Build Tools ===
39236
39434
  {
39237
39435
  name: "list_builds",
39436
+ annotations: {
39437
+ readOnlyHint: true,
39438
+ destructiveHint: false,
39439
+ idempotentHint: true,
39440
+ openWorldHint: true
39441
+ },
39238
39442
  description: "List TeamCity builds (supports pagination)",
39443
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.list_builds,
39239
39444
  inputSchema: {
39240
39445
  type: "object",
39241
39446
  properties: {
@@ -39323,7 +39528,14 @@ var DEV_TOOLS = [
39323
39528
  },
39324
39529
  {
39325
39530
  name: "get_build",
39531
+ annotations: {
39532
+ readOnlyHint: true,
39533
+ destructiveHint: false,
39534
+ idempotentHint: true,
39535
+ openWorldHint: true
39536
+ },
39326
39537
  description: "Get details of a specific build (works for both queued and running/finished builds)",
39538
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.get_build,
39327
39539
  inputSchema: {
39328
39540
  type: "object",
39329
39541
  properties: {
@@ -39362,6 +39574,12 @@ var DEV_TOOLS = [
39362
39574
  },
39363
39575
  {
39364
39576
  name: "trigger_build",
39577
+ annotations: {
39578
+ readOnlyHint: false,
39579
+ destructiveHint: false,
39580
+ idempotentHint: false,
39581
+ openWorldHint: true
39582
+ },
39365
39583
  description: "Trigger a new build",
39366
39584
  inputSchema: {
39367
39585
  type: "object",
@@ -39477,6 +39695,12 @@ var DEV_TOOLS = [
39477
39695
  },
39478
39696
  {
39479
39697
  name: "cancel_queued_build",
39698
+ annotations: {
39699
+ readOnlyHint: false,
39700
+ destructiveHint: false,
39701
+ idempotentHint: false,
39702
+ openWorldHint: true
39703
+ },
39480
39704
  description: "Cancel a queued build by ID",
39481
39705
  inputSchema: {
39482
39706
  type: "object",
@@ -39502,6 +39726,12 @@ var DEV_TOOLS = [
39502
39726
  },
39503
39727
  {
39504
39728
  name: "cancel_build",
39729
+ annotations: {
39730
+ readOnlyHint: false,
39731
+ destructiveHint: false,
39732
+ idempotentHint: false,
39733
+ openWorldHint: true
39734
+ },
39505
39735
  description: "Cancel or stop a running (or queued) build by ID. Supports an optional comment and requeue flag.",
39506
39736
  inputSchema: {
39507
39737
  type: "object",
@@ -39548,7 +39778,14 @@ var DEV_TOOLS = [
39548
39778
  },
39549
39779
  {
39550
39780
  name: "get_build_status",
39781
+ annotations: {
39782
+ readOnlyHint: true,
39783
+ destructiveHint: false,
39784
+ idempotentHint: true,
39785
+ openWorldHint: true
39786
+ },
39551
39787
  description: "Get build status with optional test/problem and queue context details",
39788
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.get_build_status,
39552
39789
  inputSchema: {
39553
39790
  type: "object",
39554
39791
  properties: {
@@ -39644,6 +39881,12 @@ var DEV_TOOLS = [
39644
39881
  },
39645
39882
  {
39646
39883
  name: "wait_for_build",
39884
+ annotations: {
39885
+ readOnlyHint: true,
39886
+ destructiveHint: false,
39887
+ idempotentHint: false,
39888
+ openWorldHint: true
39889
+ },
39647
39890
  description: "Wait for a build to complete by polling until it reaches a terminal state (finished, canceled, failed) or timeout",
39648
39891
  inputSchema: {
39649
39892
  type: "object",
@@ -39733,6 +39976,12 @@ var DEV_TOOLS = [
39733
39976
  },
39734
39977
  {
39735
39978
  name: "fetch_build_log",
39979
+ annotations: {
39980
+ readOnlyHint: true,
39981
+ destructiveHint: false,
39982
+ idempotentHint: true,
39983
+ openWorldHint: true
39984
+ },
39736
39985
  description: "Fetch build log with pagination (by lines)",
39737
39986
  inputSchema: {
39738
39987
  type: "object",
@@ -39987,7 +40236,14 @@ var DEV_TOOLS = [
39987
40236
  // === Build Configuration Tools ===
39988
40237
  {
39989
40238
  name: "list_build_configs",
40239
+ annotations: {
40240
+ readOnlyHint: true,
40241
+ destructiveHint: false,
40242
+ idempotentHint: true,
40243
+ openWorldHint: true
40244
+ },
39990
40245
  description: "List build configurations (supports pagination)",
40246
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.list_build_configs,
39991
40247
  inputSchema: {
39992
40248
  type: "object",
39993
40249
  properties: {
@@ -40054,7 +40310,14 @@ var DEV_TOOLS = [
40054
40310
  },
40055
40311
  {
40056
40312
  name: "get_build_config",
40313
+ annotations: {
40314
+ readOnlyHint: true,
40315
+ destructiveHint: false,
40316
+ idempotentHint: true,
40317
+ openWorldHint: true
40318
+ },
40057
40319
  description: "Get details of a build configuration",
40320
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.get_build_config,
40058
40321
  inputSchema: {
40059
40322
  type: "object",
40060
40323
  properties: {
@@ -40079,6 +40342,12 @@ var DEV_TOOLS = [
40079
40342
  // === Test Tools ===
40080
40343
  {
40081
40344
  name: "list_test_failures",
40345
+ annotations: {
40346
+ readOnlyHint: true,
40347
+ destructiveHint: false,
40348
+ idempotentHint: true,
40349
+ openWorldHint: true
40350
+ },
40082
40351
  description: "List test failures for a build (supports pagination)",
40083
40352
  inputSchema: {
40084
40353
  type: "object",
@@ -40141,6 +40410,12 @@ var DEV_TOOLS = [
40141
40410
  // === VCS Tools ===
40142
40411
  {
40143
40412
  name: "list_vcs_roots",
40413
+ annotations: {
40414
+ readOnlyHint: true,
40415
+ destructiveHint: false,
40416
+ idempotentHint: true,
40417
+ openWorldHint: true
40418
+ },
40144
40419
  description: "List VCS roots (supports pagination)",
40145
40420
  inputSchema: {
40146
40421
  type: "object",
@@ -40206,6 +40481,12 @@ var DEV_TOOLS = [
40206
40481
  },
40207
40482
  {
40208
40483
  name: "get_vcs_root",
40484
+ annotations: {
40485
+ readOnlyHint: true,
40486
+ destructiveHint: false,
40487
+ idempotentHint: true,
40488
+ openWorldHint: true
40489
+ },
40209
40490
  description: "Get details of a VCS root (including properties)",
40210
40491
  inputSchema: {
40211
40492
  type: "object",
@@ -40238,6 +40519,12 @@ var DEV_TOOLS = [
40238
40519
  },
40239
40520
  {
40240
40521
  name: "set_vcs_root_property",
40522
+ annotations: {
40523
+ readOnlyHint: false,
40524
+ destructiveHint: false,
40525
+ idempotentHint: true,
40526
+ openWorldHint: true
40527
+ },
40241
40528
  description: "Set a single VCS root property (e.g., branch, branchSpec, url)",
40242
40529
  inputSchema: {
40243
40530
  type: "object",
@@ -40276,6 +40563,12 @@ var DEV_TOOLS = [
40276
40563
  },
40277
40564
  {
40278
40565
  name: "delete_vcs_root_property",
40566
+ annotations: {
40567
+ readOnlyHint: false,
40568
+ destructiveHint: true,
40569
+ idempotentHint: true,
40570
+ openWorldHint: true
40571
+ },
40279
40572
  description: "Delete a single VCS root property",
40280
40573
  inputSchema: {
40281
40574
  type: "object",
@@ -40307,6 +40600,12 @@ var DEV_TOOLS = [
40307
40600
  },
40308
40601
  {
40309
40602
  name: "update_vcs_root_properties",
40603
+ annotations: {
40604
+ readOnlyHint: false,
40605
+ destructiveHint: false,
40606
+ idempotentHint: true,
40607
+ openWorldHint: true
40608
+ },
40310
40609
  description: "Update common VCS root properties in one call",
40311
40610
  inputSchema: {
40312
40611
  type: "object",
@@ -40377,6 +40676,12 @@ var DEV_TOOLS = [
40377
40676
  // === Queue (read-only) ===
40378
40677
  {
40379
40678
  name: "list_queued_builds",
40679
+ annotations: {
40680
+ readOnlyHint: true,
40681
+ destructiveHint: false,
40682
+ idempotentHint: true,
40683
+ openWorldHint: true
40684
+ },
40380
40685
  description: "List queued builds (supports TeamCity queue locator + pagination)",
40381
40686
  inputSchema: {
40382
40687
  type: "object",
@@ -40445,6 +40750,12 @@ var DEV_TOOLS = [
40445
40750
  // === Server Health & Metrics (read-only) ===
40446
40751
  {
40447
40752
  name: "get_server_metrics",
40753
+ annotations: {
40754
+ readOnlyHint: true,
40755
+ destructiveHint: false,
40756
+ idempotentHint: true,
40757
+ openWorldHint: true
40758
+ },
40448
40759
  description: "Fetch server metrics (CPU/memory/disk/load) if available",
40449
40760
  inputSchema: { type: "object", properties: {} },
40450
40761
  handler: async (_args) => {
@@ -40463,6 +40774,12 @@ var DEV_TOOLS = [
40463
40774
  },
40464
40775
  {
40465
40776
  name: "get_server_info",
40777
+ annotations: {
40778
+ readOnlyHint: true,
40779
+ destructiveHint: false,
40780
+ idempotentHint: true,
40781
+ openWorldHint: true
40782
+ },
40466
40783
  description: "Get TeamCity server info (version, build number, state)",
40467
40784
  inputSchema: { type: "object", properties: {} },
40468
40785
  handler: async (_args) => {
@@ -40480,6 +40797,12 @@ var DEV_TOOLS = [
40480
40797
  },
40481
40798
  {
40482
40799
  name: "list_server_health_items",
40800
+ annotations: {
40801
+ readOnlyHint: true,
40802
+ destructiveHint: false,
40803
+ idempotentHint: true,
40804
+ openWorldHint: true
40805
+ },
40483
40806
  description: "List server health items (warnings/errors) for readiness checks",
40484
40807
  inputSchema: {
40485
40808
  type: "object",
@@ -40545,6 +40868,12 @@ var DEV_TOOLS = [
40545
40868
  },
40546
40869
  {
40547
40870
  name: "get_server_health_item",
40871
+ annotations: {
40872
+ readOnlyHint: true,
40873
+ destructiveHint: false,
40874
+ idempotentHint: true,
40875
+ openWorldHint: true
40876
+ },
40548
40877
  description: "Get a single server health item by locator",
40549
40878
  inputSchema: {
40550
40879
  type: "object",
@@ -40569,6 +40898,12 @@ var DEV_TOOLS = [
40569
40898
  // === Availability Policy Guard (read-only) ===
40570
40899
  {
40571
40900
  name: "check_availability_guard",
40901
+ annotations: {
40902
+ readOnlyHint: true,
40903
+ destructiveHint: false,
40904
+ idempotentHint: true,
40905
+ openWorldHint: true
40906
+ },
40572
40907
  description: "Evaluate server health; returns ok=false if critical health items found (severity ERROR)",
40573
40908
  inputSchema: {
40574
40909
  type: "object",
@@ -40601,6 +40936,12 @@ var DEV_TOOLS = [
40601
40936
  // === Agent Compatibility (read-only lookups) ===
40602
40937
  {
40603
40938
  name: "get_compatible_build_types_for_agent",
40939
+ annotations: {
40940
+ readOnlyHint: true,
40941
+ destructiveHint: false,
40942
+ idempotentHint: true,
40943
+ openWorldHint: true
40944
+ },
40604
40945
  description: "Get build types compatible with the specified agent",
40605
40946
  inputSchema: {
40606
40947
  type: "object",
@@ -40624,6 +40965,12 @@ var DEV_TOOLS = [
40624
40965
  },
40625
40966
  {
40626
40967
  name: "get_incompatible_build_types_for_agent",
40968
+ annotations: {
40969
+ readOnlyHint: true,
40970
+ destructiveHint: false,
40971
+ idempotentHint: true,
40972
+ openWorldHint: true
40973
+ },
40627
40974
  description: "Get build types incompatible with the specified agent",
40628
40975
  inputSchema: {
40629
40976
  type: "object",
@@ -40647,6 +40994,12 @@ var DEV_TOOLS = [
40647
40994
  },
40648
40995
  {
40649
40996
  name: "get_agent_enabled_info",
40997
+ annotations: {
40998
+ readOnlyHint: true,
40999
+ destructiveHint: false,
41000
+ idempotentHint: true,
41001
+ openWorldHint: true
41002
+ },
40650
41003
  description: "Get the enabled/disabled state for an agent, including comment and switch time",
40651
41004
  inputSchema: {
40652
41005
  type: "object",
@@ -40670,6 +41023,12 @@ var DEV_TOOLS = [
40670
41023
  },
40671
41024
  {
40672
41025
  name: "get_compatible_agents_for_build_type",
41026
+ annotations: {
41027
+ readOnlyHint: true,
41028
+ destructiveHint: false,
41029
+ idempotentHint: true,
41030
+ openWorldHint: true
41031
+ },
40673
41032
  description: "List agents compatible with a build type (optionally filter enabled only)",
40674
41033
  inputSchema: {
40675
41034
  type: "object",
@@ -40705,6 +41064,12 @@ var DEV_TOOLS = [
40705
41064
  },
40706
41065
  {
40707
41066
  name: "count_compatible_agents_for_build_type",
41067
+ annotations: {
41068
+ readOnlyHint: true,
41069
+ destructiveHint: false,
41070
+ idempotentHint: true,
41071
+ openWorldHint: true
41072
+ },
40708
41073
  description: "Return only the count of enabled compatible agents for a build type",
40709
41074
  inputSchema: {
40710
41075
  type: "object",
@@ -40741,6 +41106,12 @@ var DEV_TOOLS = [
40741
41106
  },
40742
41107
  {
40743
41108
  name: "get_compatible_agents_for_queued_build",
41109
+ annotations: {
41110
+ readOnlyHint: true,
41111
+ destructiveHint: false,
41112
+ idempotentHint: true,
41113
+ openWorldHint: true
41114
+ },
40744
41115
  description: "List agents compatible with a queued/running build by buildId (optionally filter enabled only)",
40745
41116
  inputSchema: {
40746
41117
  type: "object",
@@ -40779,6 +41150,12 @@ var DEV_TOOLS = [
40779
41150
  },
40780
41151
  {
40781
41152
  name: "check_teamcity_connection",
41153
+ annotations: {
41154
+ readOnlyHint: true,
41155
+ destructiveHint: false,
41156
+ idempotentHint: true,
41157
+ openWorldHint: true
41158
+ },
40782
41159
  description: "Check connectivity to TeamCity server and basic readiness",
40783
41160
  inputSchema: { type: "object", properties: {} },
40784
41161
  handler: async (_args) => {
@@ -40791,6 +41168,12 @@ var DEV_TOOLS = [
40791
41168
  // === Agent Tools ===
40792
41169
  {
40793
41170
  name: "list_agents",
41171
+ annotations: {
41172
+ readOnlyHint: true,
41173
+ destructiveHint: false,
41174
+ idempotentHint: true,
41175
+ openWorldHint: true
41176
+ },
40794
41177
  description: "List build agents (supports pagination)",
40795
41178
  inputSchema: {
40796
41179
  type: "object",
@@ -40852,6 +41235,12 @@ var DEV_TOOLS = [
40852
41235
  },
40853
41236
  {
40854
41237
  name: "list_agent_pools",
41238
+ annotations: {
41239
+ readOnlyHint: true,
41240
+ destructiveHint: false,
41241
+ idempotentHint: true,
41242
+ openWorldHint: true
41243
+ },
40855
41244
  description: "List agent pools (supports pagination)",
40856
41245
  inputSchema: {
40857
41246
  type: "object",
@@ -40915,7 +41304,14 @@ var DEV_TOOLS = [
40915
41304
  // Build Analysis Tools
40916
41305
  {
40917
41306
  name: "get_build_results",
41307
+ annotations: {
41308
+ readOnlyHint: true,
41309
+ destructiveHint: false,
41310
+ idempotentHint: true,
41311
+ openWorldHint: true
41312
+ },
40918
41313
  description: "Get detailed results of a build including tests, artifacts, changes, and statistics",
41314
+ outputSchema: FIRST_BATCH_OUTPUT_SCHEMAS.get_build_results,
40919
41315
  inputSchema: {
40920
41316
  type: "object",
40921
41317
  properties: {
@@ -41031,6 +41427,12 @@ var DEV_TOOLS = [
41031
41427
  },
41032
41428
  {
41033
41429
  name: "download_build_artifact",
41430
+ annotations: {
41431
+ readOnlyHint: false,
41432
+ destructiveHint: false,
41433
+ idempotentHint: false,
41434
+ openWorldHint: true
41435
+ },
41034
41436
  description: "Download a single artifact with optional streaming output",
41035
41437
  inputSchema: {
41036
41438
  type: "object",
@@ -41093,6 +41495,12 @@ var DEV_TOOLS = [
41093
41495
  },
41094
41496
  {
41095
41497
  name: "download_build_artifacts",
41498
+ annotations: {
41499
+ readOnlyHint: false,
41500
+ destructiveHint: false,
41501
+ idempotentHint: false,
41502
+ openWorldHint: true
41503
+ },
41096
41504
  description: "Download multiple artifacts with optional streaming output",
41097
41505
  inputSchema: {
41098
41506
  type: "object",
@@ -41255,6 +41663,12 @@ var DEV_TOOLS = [
41255
41663
  },
41256
41664
  {
41257
41665
  name: "get_test_details",
41666
+ annotations: {
41667
+ readOnlyHint: true,
41668
+ destructiveHint: false,
41669
+ idempotentHint: true,
41670
+ openWorldHint: true
41671
+ },
41258
41672
  description: "Get detailed information about test failures",
41259
41673
  inputSchema: {
41260
41674
  type: "object",
@@ -41286,6 +41700,12 @@ var DEV_TOOLS = [
41286
41700
  },
41287
41701
  {
41288
41702
  name: "analyze_build_problems",
41703
+ annotations: {
41704
+ readOnlyHint: true,
41705
+ destructiveHint: false,
41706
+ idempotentHint: true,
41707
+ openWorldHint: true
41708
+ },
41289
41709
  description: "Analyze and report build problems and failures",
41290
41710
  inputSchema: {
41291
41711
  type: "object",
@@ -41318,6 +41738,12 @@ var DEV_TOOLS = [
41318
41738
  // === Changes, Problems & Diagnostics ===
41319
41739
  {
41320
41740
  name: "list_changes",
41741
+ annotations: {
41742
+ readOnlyHint: true,
41743
+ destructiveHint: false,
41744
+ idempotentHint: true,
41745
+ openWorldHint: true
41746
+ },
41321
41747
  description: "List VCS changes (supports pagination)",
41322
41748
  inputSchema: {
41323
41749
  type: "object",
@@ -41388,6 +41814,12 @@ var DEV_TOOLS = [
41388
41814
  },
41389
41815
  {
41390
41816
  name: "list_problems",
41817
+ annotations: {
41818
+ readOnlyHint: true,
41819
+ destructiveHint: false,
41820
+ idempotentHint: true,
41821
+ openWorldHint: true
41822
+ },
41391
41823
  description: "List build problems (supports pagination)",
41392
41824
  inputSchema: {
41393
41825
  type: "object",
@@ -41458,6 +41890,12 @@ var DEV_TOOLS = [
41458
41890
  },
41459
41891
  {
41460
41892
  name: "list_problem_occurrences",
41893
+ annotations: {
41894
+ readOnlyHint: true,
41895
+ destructiveHint: false,
41896
+ idempotentHint: true,
41897
+ openWorldHint: true
41898
+ },
41461
41899
  description: "List problem occurrences (supports pagination)",
41462
41900
  inputSchema: {
41463
41901
  type: "object",
@@ -41534,6 +41972,12 @@ var DEV_TOOLS = [
41534
41972
  },
41535
41973
  {
41536
41974
  name: "list_investigations",
41975
+ annotations: {
41976
+ readOnlyHint: true,
41977
+ destructiveHint: false,
41978
+ idempotentHint: true,
41979
+ openWorldHint: true
41980
+ },
41537
41981
  description: "List open investigations (supports pagination)",
41538
41982
  inputSchema: {
41539
41983
  type: "object",
@@ -41617,6 +42061,12 @@ var DEV_TOOLS = [
41617
42061
  },
41618
42062
  {
41619
42063
  name: "list_muted_tests",
42064
+ annotations: {
42065
+ readOnlyHint: true,
42066
+ destructiveHint: false,
42067
+ idempotentHint: true,
42068
+ openWorldHint: true
42069
+ },
41620
42070
  description: "List muted tests (supports pagination)",
41621
42071
  inputSchema: {
41622
42072
  type: "object",
@@ -41693,6 +42143,12 @@ var DEV_TOOLS = [
41693
42143
  },
41694
42144
  {
41695
42145
  name: "get_versioned_settings_status",
42146
+ annotations: {
42147
+ readOnlyHint: true,
42148
+ destructiveHint: false,
42149
+ idempotentHint: true,
42150
+ openWorldHint: true
42151
+ },
41696
42152
  description: "Get Versioned Settings status for a locator",
41697
42153
  inputSchema: {
41698
42154
  type: "object",
@@ -41731,6 +42187,12 @@ var DEV_TOOLS = [
41731
42187
  },
41732
42188
  {
41733
42189
  name: "list_users",
42190
+ annotations: {
42191
+ readOnlyHint: true,
42192
+ destructiveHint: false,
42193
+ idempotentHint: true,
42194
+ openWorldHint: true
42195
+ },
41734
42196
  description: "List TeamCity users (supports pagination)",
41735
42197
  inputSchema: {
41736
42198
  type: "object",
@@ -41796,6 +42258,12 @@ var DEV_TOOLS = [
41796
42258
  },
41797
42259
  {
41798
42260
  name: "list_roles",
42261
+ annotations: {
42262
+ readOnlyHint: true,
42263
+ destructiveHint: false,
42264
+ idempotentHint: true,
42265
+ openWorldHint: true
42266
+ },
41799
42267
  description: "List defined roles and their permissions",
41800
42268
  inputSchema: {
41801
42269
  type: "object",
@@ -41824,6 +42292,12 @@ var DEV_TOOLS = [
41824
42292
  },
41825
42293
  {
41826
42294
  name: "list_branches",
42295
+ annotations: {
42296
+ readOnlyHint: true,
42297
+ destructiveHint: false,
42298
+ idempotentHint: true,
42299
+ openWorldHint: true
42300
+ },
41827
42301
  description: "List branches for a project or build configuration",
41828
42302
  inputSchema: {
41829
42303
  type: "object",
@@ -41858,6 +42332,12 @@ var DEV_TOOLS = [
41858
42332
  },
41859
42333
  {
41860
42334
  name: "list_parameters",
42335
+ annotations: {
42336
+ readOnlyHint: true,
42337
+ destructiveHint: false,
42338
+ idempotentHint: true,
42339
+ openWorldHint: true
42340
+ },
41861
42341
  description: "List parameters for a build configuration",
41862
42342
  inputSchema: {
41863
42343
  type: "object",
@@ -41885,6 +42365,12 @@ var DEV_TOOLS = [
41885
42365
  },
41886
42366
  {
41887
42367
  name: "list_project_hierarchy",
42368
+ annotations: {
42369
+ readOnlyHint: true,
42370
+ destructiveHint: false,
42371
+ idempotentHint: true,
42372
+ openWorldHint: true
42373
+ },
41888
42374
  description: "List project hierarchy showing parent-child relationships",
41889
42375
  inputSchema: {
41890
42376
  type: "object",
@@ -41935,6 +42421,12 @@ var FULL_MODE_TOOLS = [
41935
42421
  // === Project Management Tools ===
41936
42422
  {
41937
42423
  name: "create_project",
42424
+ annotations: {
42425
+ readOnlyHint: false,
42426
+ destructiveHint: false,
42427
+ idempotentHint: false,
42428
+ openWorldHint: true
42429
+ },
41938
42430
  description: "Create a new TeamCity project",
41939
42431
  inputSchema: {
41940
42432
  type: "object",
@@ -41976,6 +42468,12 @@ var FULL_MODE_TOOLS = [
41976
42468
  },
41977
42469
  {
41978
42470
  name: "delete_project",
42471
+ annotations: {
42472
+ readOnlyHint: false,
42473
+ destructiveHint: true,
42474
+ idempotentHint: true,
42475
+ openWorldHint: true
42476
+ },
41979
42477
  description: "Delete a TeamCity project",
41980
42478
  inputSchema: {
41981
42479
  type: "object",
@@ -41994,6 +42492,12 @@ var FULL_MODE_TOOLS = [
41994
42492
  },
41995
42493
  {
41996
42494
  name: "update_project_settings",
42495
+ annotations: {
42496
+ readOnlyHint: false,
42497
+ destructiveHint: false,
42498
+ idempotentHint: true,
42499
+ openWorldHint: true
42500
+ },
41997
42501
  description: "Update project settings and parameters",
41998
42502
  inputSchema: {
41999
42503
  type: "object",
@@ -42084,6 +42588,12 @@ var FULL_MODE_TOOLS = [
42084
42588
  // === Build Configuration Management ===
42085
42589
  {
42086
42590
  name: "create_build_config",
42591
+ annotations: {
42592
+ readOnlyHint: false,
42593
+ destructiveHint: false,
42594
+ idempotentHint: false,
42595
+ openWorldHint: true
42596
+ },
42087
42597
  description: "Create a new build configuration",
42088
42598
  inputSchema: {
42089
42599
  type: "object",
@@ -42113,6 +42623,12 @@ var FULL_MODE_TOOLS = [
42113
42623
  },
42114
42624
  {
42115
42625
  name: "clone_build_config",
42626
+ annotations: {
42627
+ readOnlyHint: false,
42628
+ destructiveHint: false,
42629
+ idempotentHint: false,
42630
+ openWorldHint: true
42631
+ },
42116
42632
  description: "Clone an existing build configuration",
42117
42633
  inputSchema: {
42118
42634
  type: "object",
@@ -42207,6 +42723,12 @@ var FULL_MODE_TOOLS = [
42207
42723
  },
42208
42724
  {
42209
42725
  name: "update_build_config",
42726
+ annotations: {
42727
+ readOnlyHint: false,
42728
+ destructiveHint: false,
42729
+ idempotentHint: true,
42730
+ openWorldHint: true
42731
+ },
42210
42732
  description: "Update build configuration settings",
42211
42733
  inputSchema: {
42212
42734
  type: "object",
@@ -42300,6 +42822,12 @@ var FULL_MODE_TOOLS = [
42300
42822
  // === Dependency, Feature, and Requirement Management ===
42301
42823
  {
42302
42824
  name: "manage_build_dependencies",
42825
+ annotations: {
42826
+ readOnlyHint: false,
42827
+ destructiveHint: false,
42828
+ idempotentHint: true,
42829
+ openWorldHint: true
42830
+ },
42303
42831
  description: "Add, update, or delete artifact and snapshot dependencies for a build configuration",
42304
42832
  inputSchema: {
42305
42833
  type: "object",
@@ -42442,6 +42970,12 @@ var FULL_MODE_TOOLS = [
42442
42970
  },
42443
42971
  {
42444
42972
  name: "manage_build_features",
42973
+ annotations: {
42974
+ readOnlyHint: false,
42975
+ destructiveHint: false,
42976
+ idempotentHint: true,
42977
+ openWorldHint: true
42978
+ },
42445
42979
  description: "Add, update, or delete build features such as ssh-agent or requirements enforcement",
42446
42980
  inputSchema: {
42447
42981
  type: "object",
@@ -42549,6 +43083,12 @@ var FULL_MODE_TOOLS = [
42549
43083
  },
42550
43084
  {
42551
43085
  name: "manage_agent_requirements",
43086
+ annotations: {
43087
+ readOnlyHint: false,
43088
+ destructiveHint: false,
43089
+ idempotentHint: true,
43090
+ openWorldHint: true
43091
+ },
42552
43092
  description: "Add, update, or delete build agent requirements for a configuration",
42553
43093
  inputSchema: {
42554
43094
  type: "object",
@@ -42695,6 +43235,12 @@ var FULL_MODE_TOOLS = [
42695
43235
  },
42696
43236
  {
42697
43237
  name: "set_build_config_state",
43238
+ annotations: {
43239
+ readOnlyHint: false,
43240
+ destructiveHint: false,
43241
+ idempotentHint: true,
43242
+ openWorldHint: true
43243
+ },
42698
43244
  description: "Enable or disable a build configuration by toggling its paused flag",
42699
43245
  inputSchema: {
42700
43246
  type: "object",
@@ -42740,6 +43286,12 @@ var FULL_MODE_TOOLS = [
42740
43286
  // === VCS attachment ===
42741
43287
  {
42742
43288
  name: "add_vcs_root_to_build",
43289
+ annotations: {
43290
+ readOnlyHint: false,
43291
+ destructiveHint: false,
43292
+ idempotentHint: true,
43293
+ openWorldHint: true
43294
+ },
42743
43295
  description: "Attach a VCS root to a build configuration",
42744
43296
  inputSchema: {
42745
43297
  type: "object",
@@ -42788,6 +43340,12 @@ var FULL_MODE_TOOLS = [
42788
43340
  // === Parameter Management ===
42789
43341
  {
42790
43342
  name: "add_parameter",
43343
+ annotations: {
43344
+ readOnlyHint: false,
43345
+ destructiveHint: false,
43346
+ idempotentHint: true,
43347
+ openWorldHint: true
43348
+ },
42791
43349
  description: "Add a parameter to a build configuration",
42792
43350
  inputSchema: {
42793
43351
  type: "object",
@@ -42829,6 +43387,12 @@ var FULL_MODE_TOOLS = [
42829
43387
  },
42830
43388
  {
42831
43389
  name: "update_parameter",
43390
+ annotations: {
43391
+ readOnlyHint: false,
43392
+ destructiveHint: false,
43393
+ idempotentHint: true,
43394
+ openWorldHint: true
43395
+ },
42832
43396
  description: "Update a build configuration parameter",
42833
43397
  inputSchema: {
42834
43398
  type: "object",
@@ -42871,6 +43435,12 @@ var FULL_MODE_TOOLS = [
42871
43435
  },
42872
43436
  {
42873
43437
  name: "delete_parameter",
43438
+ annotations: {
43439
+ readOnlyHint: false,
43440
+ destructiveHint: true,
43441
+ idempotentHint: true,
43442
+ openWorldHint: true
43443
+ },
42874
43444
  description: "Delete a parameter from a build configuration",
42875
43445
  inputSchema: {
42876
43446
  type: "object",
@@ -42899,6 +43469,12 @@ var FULL_MODE_TOOLS = [
42899
43469
  // === Project Parameter Management ===
42900
43470
  {
42901
43471
  name: "list_project_parameters",
43472
+ annotations: {
43473
+ readOnlyHint: true,
43474
+ destructiveHint: false,
43475
+ idempotentHint: true,
43476
+ openWorldHint: true
43477
+ },
42902
43478
  description: "List parameters for a project",
42903
43479
  inputSchema: {
42904
43480
  type: "object",
@@ -42920,6 +43496,12 @@ var FULL_MODE_TOOLS = [
42920
43496
  },
42921
43497
  {
42922
43498
  name: "add_project_parameter",
43499
+ annotations: {
43500
+ readOnlyHint: false,
43501
+ destructiveHint: false,
43502
+ idempotentHint: true,
43503
+ openWorldHint: true
43504
+ },
42923
43505
  description: "Add a parameter to a project",
42924
43506
  inputSchema: {
42925
43507
  type: "object",
@@ -42963,6 +43545,12 @@ var FULL_MODE_TOOLS = [
42963
43545
  },
42964
43546
  {
42965
43547
  name: "update_project_parameter",
43548
+ annotations: {
43549
+ readOnlyHint: false,
43550
+ destructiveHint: false,
43551
+ idempotentHint: true,
43552
+ openWorldHint: true
43553
+ },
42966
43554
  description: "Update a project parameter",
42967
43555
  inputSchema: {
42968
43556
  type: "object",
@@ -43005,6 +43593,12 @@ var FULL_MODE_TOOLS = [
43005
43593
  },
43006
43594
  {
43007
43595
  name: "delete_project_parameter",
43596
+ annotations: {
43597
+ readOnlyHint: false,
43598
+ destructiveHint: true,
43599
+ idempotentHint: true,
43600
+ openWorldHint: true
43601
+ },
43008
43602
  description: "Delete a parameter from a project",
43009
43603
  inputSchema: {
43010
43604
  type: "object",
@@ -43030,6 +43624,12 @@ var FULL_MODE_TOOLS = [
43030
43624
  // === Output Parameter Management ===
43031
43625
  {
43032
43626
  name: "list_output_parameters",
43627
+ annotations: {
43628
+ readOnlyHint: true,
43629
+ destructiveHint: false,
43630
+ idempotentHint: true,
43631
+ openWorldHint: true
43632
+ },
43033
43633
  description: "List output parameters for a build configuration",
43034
43634
  inputSchema: {
43035
43635
  type: "object",
@@ -43051,6 +43651,12 @@ var FULL_MODE_TOOLS = [
43051
43651
  },
43052
43652
  {
43053
43653
  name: "add_output_parameter",
43654
+ annotations: {
43655
+ readOnlyHint: false,
43656
+ destructiveHint: false,
43657
+ idempotentHint: true,
43658
+ openWorldHint: true
43659
+ },
43054
43660
  description: "Add an output parameter to a build configuration (for build chains)",
43055
43661
  inputSchema: {
43056
43662
  type: "object",
@@ -43085,6 +43691,12 @@ var FULL_MODE_TOOLS = [
43085
43691
  },
43086
43692
  {
43087
43693
  name: "update_output_parameter",
43694
+ annotations: {
43695
+ readOnlyHint: false,
43696
+ destructiveHint: false,
43697
+ idempotentHint: true,
43698
+ openWorldHint: true
43699
+ },
43088
43700
  description: "Update an output parameter in a build configuration",
43089
43701
  inputSchema: {
43090
43702
  type: "object",
@@ -43119,6 +43731,12 @@ var FULL_MODE_TOOLS = [
43119
43731
  },
43120
43732
  {
43121
43733
  name: "delete_output_parameter",
43734
+ annotations: {
43735
+ readOnlyHint: false,
43736
+ destructiveHint: true,
43737
+ idempotentHint: true,
43738
+ openWorldHint: true
43739
+ },
43122
43740
  description: "Delete an output parameter from a build configuration",
43123
43741
  inputSchema: {
43124
43742
  type: "object",
@@ -43147,6 +43765,12 @@ var FULL_MODE_TOOLS = [
43147
43765
  // === VCS Root Management ===
43148
43766
  {
43149
43767
  name: "create_vcs_root",
43768
+ annotations: {
43769
+ readOnlyHint: false,
43770
+ destructiveHint: false,
43771
+ idempotentHint: false,
43772
+ openWorldHint: true
43773
+ },
43150
43774
  description: "Create a new VCS root",
43151
43775
  inputSchema: {
43152
43776
  type: "object",
@@ -43185,6 +43809,12 @@ var FULL_MODE_TOOLS = [
43185
43809
  // === Agent Management ===
43186
43810
  {
43187
43811
  name: "authorize_agent",
43812
+ annotations: {
43813
+ readOnlyHint: false,
43814
+ destructiveHint: false,
43815
+ idempotentHint: true,
43816
+ openWorldHint: true
43817
+ },
43188
43818
  description: "Authorize or unauthorize a build agent",
43189
43819
  inputSchema: {
43190
43820
  type: "object",
@@ -43214,6 +43844,12 @@ var FULL_MODE_TOOLS = [
43214
43844
  },
43215
43845
  {
43216
43846
  name: "assign_agent_to_pool",
43847
+ annotations: {
43848
+ readOnlyHint: false,
43849
+ destructiveHint: false,
43850
+ idempotentHint: true,
43851
+ openWorldHint: true
43852
+ },
43217
43853
  description: "Assign an agent to a different pool",
43218
43854
  inputSchema: {
43219
43855
  type: "object",
@@ -43240,6 +43876,12 @@ var FULL_MODE_TOOLS = [
43240
43876
  },
43241
43877
  {
43242
43878
  name: "remove_agent",
43879
+ annotations: {
43880
+ readOnlyHint: false,
43881
+ destructiveHint: true,
43882
+ idempotentHint: true,
43883
+ openWorldHint: true
43884
+ },
43243
43885
  description: "Remove (delete) a build agent from the TeamCity server. Use this to clean up disconnected or ghost agent entries.",
43244
43886
  inputSchema: {
43245
43887
  type: "object",
@@ -43259,6 +43901,12 @@ var FULL_MODE_TOOLS = [
43259
43901
  // === Build Step Management ===
43260
43902
  {
43261
43903
  name: "manage_build_steps",
43904
+ annotations: {
43905
+ readOnlyHint: false,
43906
+ destructiveHint: false,
43907
+ idempotentHint: true,
43908
+ openWorldHint: true
43909
+ },
43262
43910
  description: "Add, update, or delete build steps",
43263
43911
  inputSchema: {
43264
43912
  type: "object",
@@ -43452,6 +44100,12 @@ var FULL_MODE_TOOLS = [
43452
44100
  // === Build Trigger Management ===
43453
44101
  {
43454
44102
  name: "manage_build_triggers",
44103
+ annotations: {
44104
+ readOnlyHint: false,
44105
+ destructiveHint: false,
44106
+ idempotentHint: true,
44107
+ openWorldHint: true
44108
+ },
43455
44109
  description: "Add, update, or delete build triggers",
43456
44110
  inputSchema: {
43457
44111
  type: "object",
@@ -43519,6 +44173,12 @@ var FULL_MODE_TOOLS = [
43519
44173
  // === Batch pause/unpause specific build configurations ===
43520
44174
  {
43521
44175
  name: "set_build_configs_paused",
44176
+ annotations: {
44177
+ readOnlyHint: false,
44178
+ destructiveHint: false,
44179
+ idempotentHint: true,
44180
+ openWorldHint: true
44181
+ },
43522
44182
  description: "Set paused/unpaused for a list of build configurations; optionally cancel queued",
43523
44183
  inputSchema: {
43524
44184
  type: "object",
@@ -43580,6 +44240,12 @@ var FULL_MODE_TOOLS = [
43580
44240
  // === Test Administration ===
43581
44241
  {
43582
44242
  name: "mute_tests",
44243
+ annotations: {
44244
+ readOnlyHint: false,
44245
+ destructiveHint: false,
44246
+ idempotentHint: false,
44247
+ openWorldHint: true
44248
+ },
43583
44249
  description: "Mute tests within a project or build configuration scope",
43584
44250
  inputSchema: {
43585
44251
  type: "object",
@@ -43671,6 +44337,12 @@ var FULL_MODE_TOOLS = [
43671
44337
  // === Queue Maintenance ===
43672
44338
  {
43673
44339
  name: "move_queued_build_to_top",
44340
+ annotations: {
44341
+ readOnlyHint: false,
44342
+ destructiveHint: false,
44343
+ idempotentHint: false,
44344
+ openWorldHint: true
44345
+ },
43674
44346
  description: "Move a queued build to the top of the queue",
43675
44347
  inputSchema: {
43676
44348
  type: "object",
@@ -43700,6 +44372,12 @@ var FULL_MODE_TOOLS = [
43700
44372
  },
43701
44373
  {
43702
44374
  name: "reorder_queued_builds",
44375
+ annotations: {
44376
+ readOnlyHint: false,
44377
+ destructiveHint: false,
44378
+ idempotentHint: false,
44379
+ openWorldHint: true
44380
+ },
43703
44381
  description: "Reorder queued builds by providing the desired sequence of IDs",
43704
44382
  inputSchema: {
43705
44383
  type: "object",
@@ -43729,6 +44407,12 @@ var FULL_MODE_TOOLS = [
43729
44407
  },
43730
44408
  {
43731
44409
  name: "cancel_queued_builds_for_build_type",
44410
+ annotations: {
44411
+ readOnlyHint: false,
44412
+ destructiveHint: false,
44413
+ idempotentHint: false,
44414
+ openWorldHint: true
44415
+ },
43732
44416
  description: "Cancel all queued builds for a specific build configuration",
43733
44417
  inputSchema: {
43734
44418
  type: "object",
@@ -43765,6 +44449,12 @@ var FULL_MODE_TOOLS = [
43765
44449
  },
43766
44450
  {
43767
44451
  name: "cancel_queued_builds_by_locator",
44452
+ annotations: {
44453
+ readOnlyHint: false,
44454
+ destructiveHint: false,
44455
+ idempotentHint: false,
44456
+ openWorldHint: true
44457
+ },
43768
44458
  description: "Cancel all queued builds matching a queue locator expression",
43769
44459
  inputSchema: {
43770
44460
  type: "object",
@@ -43801,6 +44491,12 @@ var FULL_MODE_TOOLS = [
43801
44491
  // === Scoped Pause/Resume (by pool) ===
43802
44492
  {
43803
44493
  name: "pause_queue_for_pool",
44494
+ annotations: {
44495
+ readOnlyHint: false,
44496
+ destructiveHint: false,
44497
+ idempotentHint: true,
44498
+ openWorldHint: true
44499
+ },
43804
44500
  description: "Disable all agents in a pool to pause queue processing; optionally cancel queued builds for a build type",
43805
44501
  inputSchema: {
43806
44502
  type: "object",
@@ -43873,6 +44569,12 @@ var FULL_MODE_TOOLS = [
43873
44569
  },
43874
44570
  {
43875
44571
  name: "resume_queue_for_pool",
44572
+ annotations: {
44573
+ readOnlyHint: false,
44574
+ destructiveHint: false,
44575
+ idempotentHint: true,
44576
+ openWorldHint: true
44577
+ },
43876
44578
  description: "Re-enable all agents in a pool to resume queue processing",
43877
44579
  inputSchema: {
43878
44580
  type: "object",
@@ -43917,6 +44619,12 @@ var FULL_MODE_TOOLS = [
43917
44619
  // === Agent Enable/Disable ===
43918
44620
  {
43919
44621
  name: "set_agent_enabled",
44622
+ annotations: {
44623
+ readOnlyHint: false,
44624
+ destructiveHint: false,
44625
+ idempotentHint: true,
44626
+ openWorldHint: true
44627
+ },
43920
44628
  description: "Enable/disable an agent, with optional comment and schedule",
43921
44629
  inputSchema: {
43922
44630
  type: "object",
@@ -43963,6 +44671,12 @@ var FULL_MODE_TOOLS = [
43963
44671
  },
43964
44672
  {
43965
44673
  name: "bulk_set_agents_enabled",
44674
+ annotations: {
44675
+ readOnlyHint: false,
44676
+ destructiveHint: false,
44677
+ idempotentHint: true,
44678
+ openWorldHint: true
44679
+ },
43966
44680
  description: "Bulk enable/disable agents selected by pool or locator; supports comment/schedule",
43967
44681
  inputSchema: {
43968
44682
  type: "object",
@@ -44050,6 +44764,12 @@ var FULL_MODE_TOOLS = [
44050
44764
  // === SSH Key Management ===
44051
44765
  {
44052
44766
  name: "list_project_ssh_keys",
44767
+ annotations: {
44768
+ readOnlyHint: true,
44769
+ destructiveHint: false,
44770
+ idempotentHint: true,
44771
+ openWorldHint: true
44772
+ },
44053
44773
  description: "List SSH keys configured for a project",
44054
44774
  inputSchema: {
44055
44775
  type: "object",
@@ -44076,6 +44796,12 @@ var FULL_MODE_TOOLS = [
44076
44796
  },
44077
44797
  {
44078
44798
  name: "upload_project_ssh_key",
44799
+ annotations: {
44800
+ readOnlyHint: false,
44801
+ destructiveHint: false,
44802
+ idempotentHint: false,
44803
+ openWorldHint: true
44804
+ },
44079
44805
  description: "Upload an SSH key to a project. Provide either privateKeyContent (raw PEM string) or privateKeyPath (path to key file), but not both.",
44080
44806
  inputSchema: {
44081
44807
  type: "object",
@@ -44120,6 +44846,12 @@ var FULL_MODE_TOOLS = [
44120
44846
  },
44121
44847
  {
44122
44848
  name: "delete_project_ssh_key",
44849
+ annotations: {
44850
+ readOnlyHint: false,
44851
+ destructiveHint: true,
44852
+ idempotentHint: true,
44853
+ openWorldHint: true
44854
+ },
44123
44855
  description: "Delete an SSH key from a project",
44124
44856
  inputSchema: {
44125
44857
  type: "object",
@@ -44161,6 +44893,18 @@ function getTool(name) {
44161
44893
  }
44162
44894
 
44163
44895
  // src/server.ts
44896
+ function parseStructuredContent(content) {
44897
+ const first = content[0];
44898
+ if (first?.type !== "text" || typeof first.text !== "string") return void 0;
44899
+ try {
44900
+ const parsed = JSON.parse(first.text);
44901
+ if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)) {
44902
+ return parsed;
44903
+ }
44904
+ } catch {
44905
+ }
44906
+ return void 0;
44907
+ }
44164
44908
  function createSimpleServer() {
44165
44909
  const _config = getConfig();
44166
44910
  getAvailableTools();
@@ -44186,7 +44930,9 @@ function createSimpleServer() {
44186
44930
  tools: currentTools.map((tool) => ({
44187
44931
  name: tool.name,
44188
44932
  description: tool.description,
44189
- inputSchema: tool.inputSchema
44933
+ inputSchema: tool.inputSchema,
44934
+ annotations: tool.annotations,
44935
+ ...tool.outputSchema ? { outputSchema: tool.outputSchema } : {}
44190
44936
  }))
44191
44937
  };
44192
44938
  debug2("MCP response: tools/list", { count: response.tools.length, success: true });
@@ -44211,11 +44957,16 @@ function createSimpleServer() {
44211
44957
  }
44212
44958
  try {
44213
44959
  const result = await tool.handler(args ?? {});
44214
- const response = {
44215
- content: result.content ?? [
44216
- { type: "text", text: result.error ?? "Tool executed successfully" }
44217
- ]
44218
- };
44960
+ const content = result.content ?? [
44961
+ { type: "text", text: result.error ?? "Tool executed successfully" }
44962
+ ];
44963
+ const response = { content };
44964
+ if (tool.outputSchema && result.success !== false) {
44965
+ const structured = parseStructuredContent(content);
44966
+ if (structured !== void 0) {
44967
+ response.structuredContent = structured;
44968
+ }
44969
+ }
44219
44970
  const duration = Date.now() - started;
44220
44971
  const success = result?.success !== false;
44221
44972
  debug2("MCP response: tools/call", {