@letpeoplework/lighthouse-mcp-core 1.4.0 → 1.5.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.cjs CHANGED
@@ -226,6 +226,32 @@ var toolDefinitions = [
226
226
  additionalProperties: false
227
227
  }
228
228
  },
229
+ {
230
+ name: "lighthouse_team_metrics_blockedCountHistory",
231
+ description: "Get the blocked-items-over-time trend for a team by ID: how many work items were blocked on each captured day, optionally filtered by start and end dates. To see what is blocked right now and for how long, read the team's current WIP \u2014 each item carries isBlocked and, when blocked, a blockedSince timestamp.",
232
+ inputSchema: {
233
+ type: "object",
234
+ properties: {
235
+ ...idInputSchema.properties,
236
+ ...dateRangeProperties
237
+ },
238
+ required: ["id"],
239
+ additionalProperties: false
240
+ }
241
+ },
242
+ {
243
+ name: "lighthouse_portfolio_metrics_blockedCountHistory",
244
+ description: "Get the blocked-items-over-time trend for a portfolio by ID: how many work items were blocked on each captured day, optionally filtered by start and end dates. To see what is blocked right now and for how long, read the portfolio's current WIP \u2014 each item carries isBlocked and, when blocked, a blockedSince timestamp.",
245
+ inputSchema: {
246
+ type: "object",
247
+ properties: {
248
+ ...idInputSchema.properties,
249
+ ...dateRangeProperties
250
+ },
251
+ required: ["id"],
252
+ additionalProperties: false
253
+ }
254
+ },
229
255
  {
230
256
  name: "lighthouse_portfolio_metrics_throughput",
231
257
  description: "Get throughput run-chart data for a portfolio by ID, optionally filtered by start and end dates.",
@@ -641,6 +667,16 @@ var toolInputSchemas = {
641
667
  startDate: isoDateStringSchema.optional(),
642
668
  endDate: isoDateStringSchema.optional()
643
669
  }),
670
+ lighthouse_team_metrics_blockedCountHistory: import_zod.z.object({
671
+ id: import_zod.z.number().int(),
672
+ startDate: isoDateStringSchema.optional(),
673
+ endDate: isoDateStringSchema.optional()
674
+ }),
675
+ lighthouse_portfolio_metrics_blockedCountHistory: import_zod.z.object({
676
+ id: import_zod.z.number().int(),
677
+ startDate: isoDateStringSchema.optional(),
678
+ endDate: isoDateStringSchema.optional()
679
+ }),
644
680
  lighthouse_team_metrics_workItemAge: import_zod.z.object({
645
681
  id: import_zod.z.number().int(),
646
682
  startDate: isoDateStringSchema.optional(),
@@ -923,6 +959,38 @@ var createMcpCoreRuntime = (dependencies) => ({
923
959
  `portfolio metrics: ${result.error.category} (${result.error.reason})`
924
960
  );
925
961
  }
962
+ if (name === "lighthouse_team_metrics_blockedCountHistory") {
963
+ const id = getNumericId(argumentsPayload);
964
+ if (id === null) {
965
+ return getErrorToolResult("team metrics: invalid id");
966
+ }
967
+ const range = getDateRange(argumentsPayload);
968
+ const result = await client.getTeamBlockedCountHistory(id, range);
969
+ if (result.ok) {
970
+ return getSuccessToolResult(
971
+ `team blockedCountHistory: ${encodePayload(result.value)}`
972
+ );
973
+ }
974
+ return getErrorToolResult(
975
+ `team metrics: ${result.error.category} (${result.error.reason})`
976
+ );
977
+ }
978
+ if (name === "lighthouse_portfolio_metrics_blockedCountHistory") {
979
+ const id = getNumericId(argumentsPayload);
980
+ if (id === null) {
981
+ return getErrorToolResult("portfolio metrics: invalid id");
982
+ }
983
+ const range = getDateRange(argumentsPayload);
984
+ const result = await client.getPortfolioBlockedCountHistory(id, range);
985
+ if (result.ok) {
986
+ return getSuccessToolResult(
987
+ `portfolio blockedCountHistory: ${encodePayload(result.value)}`
988
+ );
989
+ }
990
+ return getErrorToolResult(
991
+ `portfolio metrics: ${result.error.category} (${result.error.reason})`
992
+ );
993
+ }
926
994
  if (name === "lighthouse_team_metrics_cumulativeStateTime") {
927
995
  const id = getNumericId(argumentsPayload);
928
996
  if (id === null) {
package/dist/index.d.cts CHANGED
@@ -15,7 +15,7 @@ type McpToolResult = {
15
15
  readonly content: readonly McpToolContent[];
16
16
  };
17
17
  type McpToolDefinition = {
18
- readonly name: "lighthouse_health_check" | "lighthouse_version_get" | "lighthouse_worktracking_list" | "lighthouse_worktracking_get" | "lighthouse_team_list" | "lighthouse_team_get" | "lighthouse_team_refresh" | "lighthouse_portfolio_list" | "lighthouse_portfolio_get" | "lighthouse_portfolio_refresh" | "lighthouse_team_metrics_throughput" | "lighthouse_team_metrics_cycleTimePercentiles" | "lighthouse_team_metrics_workItemAgePercentiles" | "lighthouse_portfolio_metrics_workItemAgePercentiles" | "lighthouse_team_metrics_workItemAge" | "lighthouse_team_metrics_totalWorkItemAge" | "lighthouse_portfolio_metrics_throughput" | "lighthouse_portfolio_metrics_workItemAge" | "lighthouse_portfolio_metrics_totalWorkItemAge" | "lighthouse_team_metrics_cumulativeStateTime" | "lighthouse_team_metrics_cumulativeStateTimeItems" | "lighthouse_team_metrics_cumulativeStateTimeCandidates" | "lighthouse_portfolio_metrics_cumulativeStateTime" | "lighthouse_portfolio_metrics_cumulativeStateTimeItems" | "lighthouse_portfolio_metrics_cumulativeStateTimeCandidates" | "lighthouse_feature_get" | "lighthouse_feature_workitems" | "lighthouse_delivery_list" | "lighthouse_blackout_list" | "lighthouse_blackout_create" | "lighthouse_blackout_update" | "lighthouse_blackout_delete" | "lighthouse_forecast_manual" | "lighthouse_forecast_backtest";
18
+ readonly name: "lighthouse_health_check" | "lighthouse_version_get" | "lighthouse_worktracking_list" | "lighthouse_worktracking_get" | "lighthouse_team_list" | "lighthouse_team_get" | "lighthouse_team_refresh" | "lighthouse_portfolio_list" | "lighthouse_portfolio_get" | "lighthouse_portfolio_refresh" | "lighthouse_team_metrics_throughput" | "lighthouse_team_metrics_cycleTimePercentiles" | "lighthouse_team_metrics_workItemAgePercentiles" | "lighthouse_portfolio_metrics_workItemAgePercentiles" | "lighthouse_team_metrics_workItemAge" | "lighthouse_team_metrics_totalWorkItemAge" | "lighthouse_portfolio_metrics_throughput" | "lighthouse_portfolio_metrics_workItemAge" | "lighthouse_portfolio_metrics_totalWorkItemAge" | "lighthouse_team_metrics_blockedCountHistory" | "lighthouse_portfolio_metrics_blockedCountHistory" | "lighthouse_team_metrics_cumulativeStateTime" | "lighthouse_team_metrics_cumulativeStateTimeItems" | "lighthouse_team_metrics_cumulativeStateTimeCandidates" | "lighthouse_portfolio_metrics_cumulativeStateTime" | "lighthouse_portfolio_metrics_cumulativeStateTimeItems" | "lighthouse_portfolio_metrics_cumulativeStateTimeCandidates" | "lighthouse_feature_get" | "lighthouse_feature_workitems" | "lighthouse_delivery_list" | "lighthouse_blackout_list" | "lighthouse_blackout_create" | "lighthouse_blackout_update" | "lighthouse_blackout_delete" | "lighthouse_forecast_manual" | "lighthouse_forecast_backtest";
19
19
  readonly description: string;
20
20
  readonly inputSchema: {
21
21
  readonly type: "object";
@@ -236,6 +236,32 @@ type McpRuntimeClient = {
236
236
  readonly reason: string;
237
237
  };
238
238
  }>;
239
+ readonly getTeamBlockedCountHistory: (id: number, range?: {
240
+ readonly startDate: string;
241
+ readonly endDate: string;
242
+ }) => Promise<{
243
+ readonly ok: true;
244
+ readonly value: readonly unknown[];
245
+ } | {
246
+ readonly ok: false;
247
+ readonly error: {
248
+ readonly category: string;
249
+ readonly reason: string;
250
+ };
251
+ }>;
252
+ readonly getPortfolioBlockedCountHistory: (id: number, range?: {
253
+ readonly startDate: string;
254
+ readonly endDate: string;
255
+ }) => Promise<{
256
+ readonly ok: true;
257
+ readonly value: readonly unknown[];
258
+ } | {
259
+ readonly ok: false;
260
+ readonly error: {
261
+ readonly category: string;
262
+ readonly reason: string;
263
+ };
264
+ }>;
239
265
  readonly getTeamCumulativeStateTime: (id: number, range?: {
240
266
  readonly startDate: string;
241
267
  readonly endDate: string;
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ type McpToolResult = {
15
15
  readonly content: readonly McpToolContent[];
16
16
  };
17
17
  type McpToolDefinition = {
18
- readonly name: "lighthouse_health_check" | "lighthouse_version_get" | "lighthouse_worktracking_list" | "lighthouse_worktracking_get" | "lighthouse_team_list" | "lighthouse_team_get" | "lighthouse_team_refresh" | "lighthouse_portfolio_list" | "lighthouse_portfolio_get" | "lighthouse_portfolio_refresh" | "lighthouse_team_metrics_throughput" | "lighthouse_team_metrics_cycleTimePercentiles" | "lighthouse_team_metrics_workItemAgePercentiles" | "lighthouse_portfolio_metrics_workItemAgePercentiles" | "lighthouse_team_metrics_workItemAge" | "lighthouse_team_metrics_totalWorkItemAge" | "lighthouse_portfolio_metrics_throughput" | "lighthouse_portfolio_metrics_workItemAge" | "lighthouse_portfolio_metrics_totalWorkItemAge" | "lighthouse_team_metrics_cumulativeStateTime" | "lighthouse_team_metrics_cumulativeStateTimeItems" | "lighthouse_team_metrics_cumulativeStateTimeCandidates" | "lighthouse_portfolio_metrics_cumulativeStateTime" | "lighthouse_portfolio_metrics_cumulativeStateTimeItems" | "lighthouse_portfolio_metrics_cumulativeStateTimeCandidates" | "lighthouse_feature_get" | "lighthouse_feature_workitems" | "lighthouse_delivery_list" | "lighthouse_blackout_list" | "lighthouse_blackout_create" | "lighthouse_blackout_update" | "lighthouse_blackout_delete" | "lighthouse_forecast_manual" | "lighthouse_forecast_backtest";
18
+ readonly name: "lighthouse_health_check" | "lighthouse_version_get" | "lighthouse_worktracking_list" | "lighthouse_worktracking_get" | "lighthouse_team_list" | "lighthouse_team_get" | "lighthouse_team_refresh" | "lighthouse_portfolio_list" | "lighthouse_portfolio_get" | "lighthouse_portfolio_refresh" | "lighthouse_team_metrics_throughput" | "lighthouse_team_metrics_cycleTimePercentiles" | "lighthouse_team_metrics_workItemAgePercentiles" | "lighthouse_portfolio_metrics_workItemAgePercentiles" | "lighthouse_team_metrics_workItemAge" | "lighthouse_team_metrics_totalWorkItemAge" | "lighthouse_portfolio_metrics_throughput" | "lighthouse_portfolio_metrics_workItemAge" | "lighthouse_portfolio_metrics_totalWorkItemAge" | "lighthouse_team_metrics_blockedCountHistory" | "lighthouse_portfolio_metrics_blockedCountHistory" | "lighthouse_team_metrics_cumulativeStateTime" | "lighthouse_team_metrics_cumulativeStateTimeItems" | "lighthouse_team_metrics_cumulativeStateTimeCandidates" | "lighthouse_portfolio_metrics_cumulativeStateTime" | "lighthouse_portfolio_metrics_cumulativeStateTimeItems" | "lighthouse_portfolio_metrics_cumulativeStateTimeCandidates" | "lighthouse_feature_get" | "lighthouse_feature_workitems" | "lighthouse_delivery_list" | "lighthouse_blackout_list" | "lighthouse_blackout_create" | "lighthouse_blackout_update" | "lighthouse_blackout_delete" | "lighthouse_forecast_manual" | "lighthouse_forecast_backtest";
19
19
  readonly description: string;
20
20
  readonly inputSchema: {
21
21
  readonly type: "object";
@@ -236,6 +236,32 @@ type McpRuntimeClient = {
236
236
  readonly reason: string;
237
237
  };
238
238
  }>;
239
+ readonly getTeamBlockedCountHistory: (id: number, range?: {
240
+ readonly startDate: string;
241
+ readonly endDate: string;
242
+ }) => Promise<{
243
+ readonly ok: true;
244
+ readonly value: readonly unknown[];
245
+ } | {
246
+ readonly ok: false;
247
+ readonly error: {
248
+ readonly category: string;
249
+ readonly reason: string;
250
+ };
251
+ }>;
252
+ readonly getPortfolioBlockedCountHistory: (id: number, range?: {
253
+ readonly startDate: string;
254
+ readonly endDate: string;
255
+ }) => Promise<{
256
+ readonly ok: true;
257
+ readonly value: readonly unknown[];
258
+ } | {
259
+ readonly ok: false;
260
+ readonly error: {
261
+ readonly category: string;
262
+ readonly reason: string;
263
+ };
264
+ }>;
239
265
  readonly getTeamCumulativeStateTime: (id: number, range?: {
240
266
  readonly startDate: string;
241
267
  readonly endDate: string;
package/dist/index.js CHANGED
@@ -200,6 +200,32 @@ var toolDefinitions = [
200
200
  additionalProperties: false
201
201
  }
202
202
  },
203
+ {
204
+ name: "lighthouse_team_metrics_blockedCountHistory",
205
+ description: "Get the blocked-items-over-time trend for a team by ID: how many work items were blocked on each captured day, optionally filtered by start and end dates. To see what is blocked right now and for how long, read the team's current WIP \u2014 each item carries isBlocked and, when blocked, a blockedSince timestamp.",
206
+ inputSchema: {
207
+ type: "object",
208
+ properties: {
209
+ ...idInputSchema.properties,
210
+ ...dateRangeProperties
211
+ },
212
+ required: ["id"],
213
+ additionalProperties: false
214
+ }
215
+ },
216
+ {
217
+ name: "lighthouse_portfolio_metrics_blockedCountHistory",
218
+ description: "Get the blocked-items-over-time trend for a portfolio by ID: how many work items were blocked on each captured day, optionally filtered by start and end dates. To see what is blocked right now and for how long, read the portfolio's current WIP \u2014 each item carries isBlocked and, when blocked, a blockedSince timestamp.",
219
+ inputSchema: {
220
+ type: "object",
221
+ properties: {
222
+ ...idInputSchema.properties,
223
+ ...dateRangeProperties
224
+ },
225
+ required: ["id"],
226
+ additionalProperties: false
227
+ }
228
+ },
203
229
  {
204
230
  name: "lighthouse_portfolio_metrics_throughput",
205
231
  description: "Get throughput run-chart data for a portfolio by ID, optionally filtered by start and end dates.",
@@ -615,6 +641,16 @@ var toolInputSchemas = {
615
641
  startDate: isoDateStringSchema.optional(),
616
642
  endDate: isoDateStringSchema.optional()
617
643
  }),
644
+ lighthouse_team_metrics_blockedCountHistory: z.object({
645
+ id: z.number().int(),
646
+ startDate: isoDateStringSchema.optional(),
647
+ endDate: isoDateStringSchema.optional()
648
+ }),
649
+ lighthouse_portfolio_metrics_blockedCountHistory: z.object({
650
+ id: z.number().int(),
651
+ startDate: isoDateStringSchema.optional(),
652
+ endDate: isoDateStringSchema.optional()
653
+ }),
618
654
  lighthouse_team_metrics_workItemAge: z.object({
619
655
  id: z.number().int(),
620
656
  startDate: isoDateStringSchema.optional(),
@@ -897,6 +933,38 @@ var createMcpCoreRuntime = (dependencies) => ({
897
933
  `portfolio metrics: ${result.error.category} (${result.error.reason})`
898
934
  );
899
935
  }
936
+ if (name === "lighthouse_team_metrics_blockedCountHistory") {
937
+ const id = getNumericId(argumentsPayload);
938
+ if (id === null) {
939
+ return getErrorToolResult("team metrics: invalid id");
940
+ }
941
+ const range = getDateRange(argumentsPayload);
942
+ const result = await client.getTeamBlockedCountHistory(id, range);
943
+ if (result.ok) {
944
+ return getSuccessToolResult(
945
+ `team blockedCountHistory: ${encodePayload(result.value)}`
946
+ );
947
+ }
948
+ return getErrorToolResult(
949
+ `team metrics: ${result.error.category} (${result.error.reason})`
950
+ );
951
+ }
952
+ if (name === "lighthouse_portfolio_metrics_blockedCountHistory") {
953
+ const id = getNumericId(argumentsPayload);
954
+ if (id === null) {
955
+ return getErrorToolResult("portfolio metrics: invalid id");
956
+ }
957
+ const range = getDateRange(argumentsPayload);
958
+ const result = await client.getPortfolioBlockedCountHistory(id, range);
959
+ if (result.ok) {
960
+ return getSuccessToolResult(
961
+ `portfolio blockedCountHistory: ${encodePayload(result.value)}`
962
+ );
963
+ }
964
+ return getErrorToolResult(
965
+ `portfolio metrics: ${result.error.category} (${result.error.reason})`
966
+ );
967
+ }
900
968
  if (name === "lighthouse_team_metrics_cumulativeStateTime") {
901
969
  const id = getNumericId(argumentsPayload);
902
970
  if (id === null) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letpeoplework/lighthouse-mcp-core",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Shared MCP semantics for Lighthouse",
5
5
  "repository": "https://github.com/LetPeopleWork/lighthouse-clients",
6
6
  "type": "module",
@@ -26,7 +26,7 @@
26
26
  "@modelcontextprotocol/sdk": "^1.26.0",
27
27
  "@toon-format/toon": "^2.1.0",
28
28
  "zod": "^3.24.1",
29
- "@letpeoplework/lighthouse-client": "1.4.0"
29
+ "@letpeoplework/lighthouse-client": "1.6.0"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "tsup src/index.ts --format esm,cjs --dts --clean",