@crypto512/jicon-mcp 2.1.1 → 2.2.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.
Files changed (103) hide show
  1. package/README.md +288 -1
  2. package/TOOL_LIST.md +390 -87
  3. package/dist/config/constants.d.ts +12 -0
  4. package/dist/config/constants.d.ts.map +1 -1
  5. package/dist/config/constants.js +13 -0
  6. package/dist/config/constants.js.map +1 -1
  7. package/dist/config/loader.d.ts +8 -0
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +27 -1
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +93 -0
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +26 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/tools.d.ts +8 -1
  16. package/dist/confluence/tools.d.ts.map +1 -1
  17. package/dist/confluence/tools.js +61 -51
  18. package/dist/confluence/tools.js.map +1 -1
  19. package/dist/credentials/client-factory.d.ts +64 -0
  20. package/dist/credentials/client-factory.d.ts.map +1 -0
  21. package/dist/credentials/client-factory.js +110 -0
  22. package/dist/credentials/client-factory.js.map +1 -0
  23. package/dist/credentials/context.d.ts +25 -0
  24. package/dist/credentials/context.d.ts.map +1 -0
  25. package/dist/credentials/context.js +35 -0
  26. package/dist/credentials/context.js.map +1 -0
  27. package/dist/credentials/extractor.d.ts +21 -0
  28. package/dist/credentials/extractor.d.ts.map +1 -0
  29. package/dist/credentials/extractor.js +46 -0
  30. package/dist/credentials/extractor.js.map +1 -0
  31. package/dist/credentials/index.d.ts +9 -0
  32. package/dist/credentials/index.d.ts.map +1 -0
  33. package/dist/credentials/index.js +8 -0
  34. package/dist/credentials/index.js.map +1 -0
  35. package/dist/credentials/types.d.ts +21 -0
  36. package/dist/credentials/types.d.ts.map +1 -0
  37. package/dist/credentials/types.js +13 -0
  38. package/dist/credentials/types.js.map +1 -0
  39. package/dist/index.js +98 -75
  40. package/dist/index.js.map +1 -1
  41. package/dist/jira/activity-tools.d.ts +54 -1
  42. package/dist/jira/activity-tools.d.ts.map +1 -1
  43. package/dist/jira/activity-tools.js +737 -79
  44. package/dist/jira/activity-tools.js.map +1 -1
  45. package/dist/jira/client.d.ts +34 -2
  46. package/dist/jira/client.d.ts.map +1 -1
  47. package/dist/jira/client.js +119 -63
  48. package/dist/jira/client.js.map +1 -1
  49. package/dist/jira/tools.d.ts +58 -1
  50. package/dist/jira/tools.d.ts.map +1 -1
  51. package/dist/jira/tools.js +226 -27
  52. package/dist/jira/tools.js.map +1 -1
  53. package/dist/jira/types.d.ts +22 -0
  54. package/dist/jira/types.d.ts.map +1 -1
  55. package/dist/permissions/tool-registry.d.ts +10 -10
  56. package/dist/permissions/tool-registry.d.ts.map +1 -1
  57. package/dist/permissions/tool-registry.js +8 -4
  58. package/dist/permissions/tool-registry.js.map +1 -1
  59. package/dist/tempo/tools.d.ts +33 -1
  60. package/dist/tempo/tools.d.ts.map +1 -1
  61. package/dist/tempo/tools.js +141 -17
  62. package/dist/tempo/tools.js.map +1 -1
  63. package/dist/transport/http.d.ts +18 -0
  64. package/dist/transport/http.d.ts.map +1 -0
  65. package/dist/transport/http.js +66 -0
  66. package/dist/transport/http.js.map +1 -0
  67. package/dist/transport/index.d.ts +17 -0
  68. package/dist/transport/index.d.ts.map +1 -0
  69. package/dist/transport/index.js +32 -0
  70. package/dist/transport/index.js.map +1 -0
  71. package/dist/transport/types.d.ts +15 -0
  72. package/dist/transport/types.d.ts.map +1 -0
  73. package/dist/transport/types.js +12 -0
  74. package/dist/transport/types.js.map +1 -0
  75. package/dist/types.d.ts +10 -0
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/types.js +0 -1
  78. package/dist/types.js.map +1 -1
  79. package/dist/utils/buffer-pipeline/index.js +2 -2
  80. package/dist/utils/buffer-pipeline/index.js.map +1 -1
  81. package/dist/utils/buffer-pipeline/schema.d.ts +99 -99
  82. package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -1
  83. package/dist/utils/buffer-tools.d.ts +91 -83
  84. package/dist/utils/buffer-tools.d.ts.map +1 -1
  85. package/dist/utils/buffer-tools.js +312 -139
  86. package/dist/utils/buffer-tools.js.map +1 -1
  87. package/dist/utils/jicon-help.d.ts +3 -3
  88. package/dist/utils/jicon-help.d.ts.map +1 -1
  89. package/dist/utils/jicon-help.js +141 -10
  90. package/dist/utils/jicon-help.js.map +1 -1
  91. package/dist/utils/json-structure.d.ts +11 -0
  92. package/dist/utils/json-structure.d.ts.map +1 -1
  93. package/dist/utils/json-structure.js +61 -0
  94. package/dist/utils/json-structure.js.map +1 -1
  95. package/dist/utils/plantuml/tools.d.ts +4 -4
  96. package/dist/utils/plantuml/tools.d.ts.map +1 -1
  97. package/dist/utils/plantuml/tools.js +29 -8
  98. package/dist/utils/plantuml/tools.js.map +1 -1
  99. package/dist/utils/plantuml/types.d.ts +4 -4
  100. package/dist/utils/response-formatter.d.ts.map +1 -1
  101. package/dist/utils/response-formatter.js +8 -4
  102. package/dist/utils/response-formatter.js.map +1 -1
  103. package/package.json +5 -2
@@ -2,13 +2,24 @@
2
2
  * Tempo MCP Tools
3
3
  */
4
4
  import { z } from "zod";
5
- import { formatSuccess, formatSuccessJson, formatError, isApiError, formatConflictError, } from "../utils/response-formatter.js";
5
+ import { formatSuccess, formatSuccessJson, formatSuccessDirect, formatError, isApiError, formatConflictError, } from "../utils/response-formatter.js";
6
6
  import { contentBuffer } from "../utils/content-buffer.js";
7
7
  import { formatWorklogSearchMetadata } from "./formatters.js";
8
8
  import { formatTimeSpent } from "../utils/time-formatter.js";
9
+ import { parseSince } from "../utils/date-tools.js";
9
10
  // Re-export defaults for consumer access
10
11
  export { DEFAULT_WORKLOG_FIELDS, DEFAULT_WORKLOG_DAYS, DEFAULT_WORKLOG_LIMIT } from "./defaults.js";
11
- export function createTempoTools(client) {
12
+ /**
13
+ * Create Tempo tools with a client getter function
14
+ */
15
+ export function createTempoTools(getClient) {
16
+ const requireClient = () => {
17
+ const client = getClient();
18
+ if (!client) {
19
+ throw new Error("Tempo is not configured. Provide JIRA_URL and JIRA_API_TOKEN environment variables (Tempo uses Jira credentials), or pass credentials via X-Jira-Url and X-Jira-Token headers.");
20
+ }
21
+ return client;
22
+ };
12
23
  return {
13
24
  tempo_get_worklogs: {
14
25
  description: `Get Tempo worklogs with filters. Entry point for time tracking queries.
@@ -48,9 +59,9 @@ Example: tempo_get_worklogs(dateFrom="2025-12-01", dateTo="2025-12-31", me=true)
48
59
  // Resolve workerKey from me=true if needed
49
60
  let workerKey = args.workerKey;
50
61
  if (args.me && !workerKey) {
51
- workerKey = await client.getMyWorkerKey();
62
+ workerKey = await requireClient().getMyWorkerKey();
52
63
  }
53
- const result = await client.getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, workerKey);
64
+ const result = await requireClient().getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, workerKey);
54
65
  const titleParts = ["Worklogs"];
55
66
  if (args.dateFrom || args.dateTo) {
56
67
  titleParts.push(`${args.dateFrom || "..."} to ${args.dateTo || "..."}`);
@@ -85,7 +96,7 @@ NEXT: tempo_update_worklog (to modify), tempo_delete_worklog (to remove)`,
85
96
  }),
86
97
  handler: async (args) => {
87
98
  try {
88
- const result = await client.getWorklog(args.worklogId);
99
+ const result = await requireClient().getWorklog(args.worklogId);
89
100
  const issueKey = result.issue?.key || "";
90
101
  return formatSuccessJson(result, {
91
102
  resourceType: "tempo_worklog",
@@ -128,7 +139,7 @@ TIP: hours as decimal (1.5 = 1h 30m)`,
128
139
  const remainingEstimateSeconds = args.remainingEstimateHours
129
140
  ? Math.round(args.remainingEstimateHours * 3600)
130
141
  : undefined;
131
- const result = await client.logWork({
142
+ const result = await requireClient().logWork({
132
143
  issueKey: args.issueKey,
133
144
  timeSpentSeconds,
134
145
  startDate: args.date,
@@ -185,7 +196,7 @@ TIP: Use autoRetry=true for automatic 409 conflict recovery.`,
185
196
  };
186
197
  try {
187
198
  const updateData = buildUpdateData();
188
- const result = await client.updateWorklog(args.worklogId, updateData);
199
+ const result = await requireClient().updateWorklog(args.worklogId, updateData);
189
200
  // Invalidate any cached buffers for this worklog to prevent stale data
190
201
  contentBuffer.invalidateByMetadata({
191
202
  resourceType: "tempo_worklog",
@@ -203,9 +214,9 @@ TIP: Use autoRetry=true for automatic 409 conflict recovery.`,
203
214
  if (args.autoRetry) {
204
215
  try {
205
216
  // Re-fetch to get current state, then retry
206
- await client.getWorklog(args.worklogId);
217
+ await requireClient().getWorklog(args.worklogId);
207
218
  const updateData = buildUpdateData();
208
- const result = await client.updateWorklog(args.worklogId, updateData);
219
+ const result = await requireClient().updateWorklog(args.worklogId, updateData);
209
220
  contentBuffer.invalidateByMetadata({
210
221
  resourceType: "tempo_worklog",
211
222
  resourceId: String(args.worklogId),
@@ -247,7 +258,7 @@ WARNING: This action cannot be undone.`,
247
258
  }),
248
259
  handler: async (args) => {
249
260
  try {
250
- await client.deleteWorklog(args.worklogId);
261
+ await requireClient().deleteWorklog(args.worklogId);
251
262
  // Invalidate any cached buffers for this worklog
252
263
  contentBuffer.invalidateByMetadata({
253
264
  resourceType: "tempo_worklog",
@@ -272,7 +283,7 @@ NEXT: tempo_get_account (for details), buffer_grep (to search)`,
272
283
  inputSchema: z.object({}),
273
284
  handler: async () => {
274
285
  try {
275
- const result = await client.getAccounts();
286
+ const result = await requireClient().getAccounts();
276
287
  return formatSuccessJson(result, {
277
288
  resourceType: "tempo_accounts",
278
289
  title: "All Tempo Accounts",
@@ -294,7 +305,7 @@ NEXT: tempo_get_worklogs (filter by account)`,
294
305
  }),
295
306
  handler: async (args) => {
296
307
  try {
297
- const result = await client.getAccount(args.accountKey);
308
+ const result = await requireClient().getAccount(args.accountKey);
298
309
  return formatSuccessJson(result, {
299
310
  resourceType: "tempo_account",
300
311
  title: result.name || args.accountKey,
@@ -315,7 +326,7 @@ NEXT: tempo_get_team (for details), tempo_get_team_worklogs (for time tracking)`
315
326
  inputSchema: z.object({}),
316
327
  handler: async () => {
317
328
  try {
318
- const result = await client.getTeams();
329
+ const result = await requireClient().getTeams();
319
330
  return formatSuccessJson(result, {
320
331
  resourceType: "tempo_teams",
321
332
  title: "All Tempo Teams",
@@ -337,7 +348,7 @@ NEXT: tempo_get_team_worklogs (for team time tracking)`,
337
348
  }),
338
349
  handler: async (args) => {
339
350
  try {
340
- const result = await client.getTeam(args.teamId);
351
+ const result = await requireClient().getTeam(args.teamId);
341
352
  return formatSuccessJson(result, {
342
353
  resourceType: "tempo_team",
343
354
  title: result.name || `Team #${args.teamId}`,
@@ -362,7 +373,7 @@ NEXT: buffer_pipeline (for time reports), workload_sum (for totals)`,
362
373
  }),
363
374
  handler: async (args) => {
364
375
  try {
365
- const result = await client.getTeamWorklogs(args.teamId, args.dateFrom, args.dateTo);
376
+ const result = await requireClient().getTeamWorklogs(args.teamId, args.dateFrom, args.dateTo);
366
377
  return formatSuccessJson({
367
378
  ...formatWorklogSearchMetadata(result),
368
379
  worklogs: result.results,
@@ -388,7 +399,7 @@ TIP: Call this first to get workerKey, then use in tempo_get_worklogs(workerKey=
388
399
  inputSchema: z.object({}),
389
400
  handler: async () => {
390
401
  try {
391
- const result = await client.getCurrentUser();
402
+ const result = await requireClient().getCurrentUser();
392
403
  return formatSuccess({
393
404
  workerKey: result.key,
394
405
  username: result.name,
@@ -417,7 +428,7 @@ TIP: More efficient than jira_get_total_worklogs for Tempo instances.`,
417
428
  }),
418
429
  handler: async (args) => {
419
430
  try {
420
- const result = await client.getEpicWorklogs(args.epicKey, args.dateFrom, args.dateTo);
431
+ const result = await requireClient().getEpicWorklogs(args.epicKey, args.dateFrom, args.dateTo);
421
432
  // Calculate totals and breakdown by issue
422
433
  const byIssue = new Map();
423
434
  let totalTimeSpentSeconds = 0;
@@ -464,6 +475,119 @@ TIP: More efficient than jira_get_total_worklogs for Tempo instances.`,
464
475
  }
465
476
  },
466
477
  },
478
+ tempo_get_top_worklogs: {
479
+ description: `Get top issues or users by workload for a period. Returns DIRECTLY (not buffered).
480
+
481
+ Aggregates Tempo worklogs and returns ranked results. Perfect for:
482
+ - "Which tickets had the most work last week?"
483
+ - "Who logged the most time this month?"
484
+ - "Top 10 issues by time spent"
485
+
486
+ REQUIRES: since (date expression like "last_week", "this_month", "7d")
487
+ RETURNS: Markdown table with ranked results (directly to LLM, not buffered)
488
+
489
+ Example: tempo_get_top_worklogs(since="last_week", groupBy="issue", limit=10)
490
+ Example: tempo_get_top_worklogs(since="this_month", projectKey="MESH", groupBy="user")`,
491
+ inputSchema: z.object({
492
+ since: z.string().describe('Date expression: "today", "last_week", "this_month", "7d", "30d", etc.'),
493
+ projectKey: z.string().optional().describe("Filter by project key"),
494
+ groupBy: z.enum(["issue", "user"]).optional().describe('Group results by issue or user (default: "issue")'),
495
+ limit: z.number().optional().describe("Maximum results to return (default: 10)"),
496
+ }),
497
+ handler: async (args) => {
498
+ try {
499
+ const { dateFrom, dateTo } = parseSince(args.since);
500
+ const groupBy = args.groupBy ?? "issue";
501
+ const limit = args.limit ?? 10;
502
+ // Fetch worklogs for the period (individual params, not object)
503
+ const result = await requireClient().getWorklogs(dateFrom, dateTo, args.projectKey, undefined, // issueKey
504
+ undefined // workerKey
505
+ );
506
+ if (result.results.length === 0) {
507
+ return formatSuccessDirect({
508
+ _directContent: true,
509
+ content: `# Top Worklogs\n\n**Period**: ${dateFrom} to ${dateTo}\n\nNo worklogs found for this period.`,
510
+ });
511
+ }
512
+ // Aggregate by group
513
+ const aggregated = new Map();
514
+ for (const worklog of result.results) {
515
+ const issueKey = worklog.issue?.key || `ID-${worklog.originTaskId}`;
516
+ // v4 API uses workerKey (string), not author object
517
+ const author = worklog.workerKey || "Unknown";
518
+ let groupKey;
519
+ let groupLabel;
520
+ if (groupBy === "user") {
521
+ groupKey = author;
522
+ groupLabel = author;
523
+ }
524
+ else {
525
+ groupKey = issueKey;
526
+ // v4 issue doesn't have summary, just key
527
+ groupLabel = issueKey;
528
+ }
529
+ const existing = aggregated.get(groupKey);
530
+ if (existing) {
531
+ existing.timeSpentSeconds += worklog.timeSpentSeconds || 0;
532
+ existing.worklogCount += 1;
533
+ existing.contributors.add(author);
534
+ existing.issues.add(issueKey);
535
+ }
536
+ else {
537
+ aggregated.set(groupKey, {
538
+ key: groupKey,
539
+ label: groupLabel,
540
+ timeSpentSeconds: worklog.timeSpentSeconds || 0,
541
+ worklogCount: 1,
542
+ contributors: new Set([author]),
543
+ issues: new Set([issueKey]),
544
+ });
545
+ }
546
+ }
547
+ // Sort by time spent and take top N
548
+ const sorted = Array.from(aggregated.values())
549
+ .sort((a, b) => b.timeSpentSeconds - a.timeSpentSeconds)
550
+ .slice(0, limit);
551
+ // Calculate total
552
+ const totalSeconds = sorted.reduce((sum, item) => sum + item.timeSpentSeconds, 0);
553
+ // Build markdown output
554
+ const lines = [];
555
+ const projectFilter = args.projectKey ? ` (${args.projectKey})` : "";
556
+ lines.push(`# Top ${limit} ${groupBy === "user" ? "Contributors" : "Issues"} by Workload${projectFilter}`);
557
+ lines.push("");
558
+ lines.push(`**Period**: ${dateFrom} to ${dateTo}`);
559
+ lines.push("");
560
+ if (groupBy === "user") {
561
+ lines.push("| Rank | Contributor | Time Spent | Entries | Issues |");
562
+ lines.push("|------|-------------|------------|---------|--------|");
563
+ sorted.forEach((item, index) => {
564
+ const timeStr = formatTimeSpent(item.timeSpentSeconds);
565
+ lines.push(`| ${index + 1} | ${item.label} | ${timeStr} | ${item.worklogCount} | ${item.issues.size} |`);
566
+ });
567
+ }
568
+ else {
569
+ lines.push("| Rank | Issue | Time Spent | Entries | Contributors |");
570
+ lines.push("|------|-------|------------|---------|--------------|");
571
+ sorted.forEach((item, index) => {
572
+ const timeStr = formatTimeSpent(item.timeSpentSeconds);
573
+ const contribs = Array.from(item.contributors).slice(0, 3).join(", ");
574
+ const contribsDisplay = item.contributors.size > 3 ? `${contribs} +${item.contributors.size - 3}` : contribs;
575
+ lines.push(`| ${index + 1} | ${item.label} | ${timeStr} | ${item.worklogCount} | ${contribsDisplay} |`);
576
+ });
577
+ }
578
+ lines.push("");
579
+ lines.push("---");
580
+ lines.push(`**Total** (top ${sorted.length}): ${formatTimeSpent(totalSeconds)} across ${result.results.length} worklogs`);
581
+ return formatSuccessDirect({
582
+ _directContent: true,
583
+ content: lines.join("\n"),
584
+ });
585
+ }
586
+ catch (error) {
587
+ return formatError(isApiError(error) ? error : new Error(String(error)));
588
+ }
589
+ },
590
+ },
467
591
  };
468
592
  }
469
593
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * HTTP transport using StreamableHTTPServerTransport
3
+ */
4
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
5
+ import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
6
+ import type { Express } from "express";
7
+ import type { HttpTransportConfig } from "./types.js";
8
+ export interface HttpServer {
9
+ app: Express;
10
+ transport: StreamableHTTPServerTransport;
11
+ start: () => Promise<void>;
12
+ close: () => Promise<void>;
13
+ }
14
+ /**
15
+ * Creates an HTTP server with StreamableHTTPServerTransport
16
+ */
17
+ export declare function createHttpServer(server: Server, config: HttpTransportConfig): HttpServer;
18
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,6BAA6B,CAAC;IACzC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,GAC1B,UAAU,CA8DZ"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * HTTP transport using StreamableHTTPServerTransport
3
+ */
4
+ import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
5
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
6
+ /**
7
+ * Creates an HTTP server with StreamableHTTPServerTransport
8
+ */
9
+ export function createHttpServer(server, config) {
10
+ const { port, host, basePath } = config;
11
+ // Create Express app with MCP defaults
12
+ const app = createMcpExpressApp({
13
+ host,
14
+ // When binding to 0.0.0.0, allow any host header for container deployments
15
+ allowedHosts: host === "0.0.0.0" ? undefined : [host, "localhost"],
16
+ });
17
+ // Health check endpoint
18
+ app.get("/health", (_req, res) => {
19
+ res.json({ status: "ok" });
20
+ });
21
+ // Readiness endpoint (can be extended to check dependencies)
22
+ app.get("/ready", (_req, res) => {
23
+ res.json({ status: "ready" });
24
+ });
25
+ // Create transport in stateless mode for container deployments
26
+ const transport = new StreamableHTTPServerTransport({
27
+ sessionIdGenerator: undefined, // Stateless mode
28
+ enableJsonResponse: true,
29
+ });
30
+ // Mount MCP endpoint
31
+ app.all(basePath, async (req, res) => {
32
+ await transport.handleRequest(req, res, req.body);
33
+ });
34
+ let httpServer = null;
35
+ return {
36
+ app,
37
+ transport,
38
+ start: async () => {
39
+ // Connect server to transport
40
+ await server.connect(transport);
41
+ // Start HTTP server
42
+ return new Promise((resolve) => {
43
+ httpServer = app.listen(port, host, () => {
44
+ console.error(`HTTP server listening on http://${host}:${port}`);
45
+ console.error(`MCP endpoint: http://${host}:${port}${basePath}`);
46
+ console.error(`Health check: http://${host}:${port}/health`);
47
+ resolve();
48
+ });
49
+ });
50
+ },
51
+ close: async () => {
52
+ await transport.close();
53
+ if (httpServer) {
54
+ return new Promise((resolve, reject) => {
55
+ httpServer.close((err) => {
56
+ if (err)
57
+ reject(err);
58
+ else
59
+ resolve();
60
+ });
61
+ });
62
+ }
63
+ },
64
+ };
65
+ }
66
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAYnG;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,MAA2B;IAE3B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAExC,uCAAuC;IACvC,MAAM,GAAG,GAAG,mBAAmB,CAAC;QAC9B,IAAI;QACJ,2EAA2E;QAC3E,YAAY,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;KACnE,CAAC,CAAC;IAEH,wBAAwB;IACxB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAClD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACjD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,+DAA+D;IAC/D,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;QAClD,kBAAkB,EAAE,SAAS,EAAE,iBAAiB;QAChD,kBAAkB,EAAE,IAAI;KACzB,CAAC,CAAC;IAEH,qBAAqB;IACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACtD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,GAAyC,IAAI,CAAC;IAE5D,OAAO;QACL,GAAG;QACH,SAAS;QACT,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,8BAA8B;YAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEhC,oBAAoB;YACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;oBACvC,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;oBACjE,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;oBACjE,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC;oBAC7D,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACrC,UAAW,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACxB,IAAI,GAAG;4BAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;4BAChB,OAAO,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Transport module - factory for creating stdio or HTTP transports
3
+ */
4
+ import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
5
+ import type { TransportConfig } from "./types.js";
6
+ export type { TransportMode, HttpTransportConfig, TransportConfig } from "./types.js";
7
+ export { DEFAULT_TRANSPORT_CONFIG } from "./types.js";
8
+ export interface TransportResult {
9
+ mode: "stdio" | "http";
10
+ start: () => Promise<void>;
11
+ close: () => Promise<void>;
12
+ }
13
+ /**
14
+ * Creates and starts a transport based on configuration
15
+ */
16
+ export declare function createTransport(server: Server, config: TransportConfig): TransportResult;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,GACtB,eAAe,CAsBjB"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Transport module - factory for creating stdio or HTTP transports
3
+ */
4
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
+ import { createHttpServer } from "./http.js";
6
+ export { DEFAULT_TRANSPORT_CONFIG } from "./types.js";
7
+ /**
8
+ * Creates and starts a transport based on configuration
9
+ */
10
+ export function createTransport(server, config) {
11
+ if (config.mode === "http") {
12
+ const httpServer = createHttpServer(server, config.http);
13
+ return {
14
+ mode: "http",
15
+ start: httpServer.start,
16
+ close: httpServer.close,
17
+ };
18
+ }
19
+ // Default: stdio transport
20
+ const transport = new StdioServerTransport();
21
+ return {
22
+ mode: "stdio",
23
+ start: async () => {
24
+ await server.connect(transport);
25
+ console.error("Jicon MCP Server running on stdio");
26
+ },
27
+ close: async () => {
28
+ await transport.close();
29
+ },
30
+ };
31
+ }
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAQtD;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,MAAuB;IAEvB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Transport type definitions
3
+ */
4
+ export type TransportMode = "stdio" | "http";
5
+ export interface HttpTransportConfig {
6
+ port: number;
7
+ host: string;
8
+ basePath: string;
9
+ }
10
+ export interface TransportConfig {
11
+ mode: TransportMode;
12
+ http: HttpTransportConfig;
13
+ }
14
+ export declare const DEFAULT_TRANSPORT_CONFIG: TransportConfig;
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,EAAE,eAOtC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Transport type definitions
3
+ */
4
+ export const DEFAULT_TRANSPORT_CONFIG = {
5
+ mode: "stdio",
6
+ http: {
7
+ port: 3000,
8
+ host: "0.0.0.0",
9
+ basePath: "/mcp",
10
+ },
11
+ };
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC"}
package/dist/types.d.ts CHANGED
@@ -25,4 +25,14 @@ export interface ToolResult {
25
25
  }>;
26
26
  isError?: boolean;
27
27
  }
28
+ /**
29
+ * Context passed to tool handlers for per-request credentials
30
+ */
31
+ export interface ToolContext {
32
+ /** Per-request credentials from HTTP headers (optional) */
33
+ jiraUrl?: string;
34
+ jiraToken?: string;
35
+ confluenceUrl?: string;
36
+ confluenceToken?: string;
37
+ }
28
38
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
package/dist/types.js CHANGED
@@ -2,5 +2,4 @@
2
2
  * Shared types for Jira, Confluence, and Tempo MCP Server
3
3
  */
4
4
  export {};
5
- // Note: This type is compatible with CallToolResult from @modelcontextprotocol/sdk
6
5
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;AA8BH,mFAAmF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -246,10 +246,10 @@ function getHint(outputType) {
246
246
  case "xhtml_list":
247
247
  return "Use confluence_draft_create(bufferId) to publish to Confluence, or buffer_edit to modify";
248
248
  case "json":
249
- return "Use buffer_pipeline again with this buffer as source, or buffer_get_chunk to view";
249
+ return "Use buffer_pipeline again with this buffer as source, or buffer_get_items to access";
250
250
  case "csv":
251
251
  case "markdown":
252
- return "Use buffer_get_chunk to view content";
252
+ return "Use buffer_grep to search content";
253
253
  default:
254
254
  return "";
255
255
  }