@ebowwa/mcp-claude-code-history 1.2.7 → 1.4.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.d.ts CHANGED
@@ -5,6 +5,8 @@
5
5
  * MCP server for accessing Claude Code conversation history with useful context.
6
6
  * Provides tools for listing projects, sessions, retrieving conversation history, and searching conversations.
7
7
  * Enhanced to return useful data instead of just UUIDs.
8
+ *
9
+ * Uses @ebowwa/jsonl-hft generic parser with Claude Code preset defined locally.
8
10
  */
9
11
  export {};
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
package/dist/index.js CHANGED
@@ -5,17 +5,29 @@
5
5
  * MCP server for accessing Claude Code conversation history with useful context.
6
6
  * Provides tools for listing projects, sessions, retrieving conversation history, and searching conversations.
7
7
  * Enhanced to return useful data instead of just UUIDs.
8
+ *
9
+ * Uses @ebowwa/jsonl-hft generic parser with Claude Code preset defined locally.
8
10
  */
9
11
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
10
12
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
13
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
12
14
  import { ClaudeCodeHistoryService } from "@ebowwa/claudecodehistory";
13
- import { parseDirFast } from "@ebowwa/jsonl-hft";
14
15
  import { handleMCPOutput } from "@ebowwa/large-output";
15
16
  import { homedir } from "os";
16
- import { readFileSync, readdirSync, existsSync, statSync, createReadStream } from "fs";
17
+ import { readFileSync, existsSync } from "fs";
17
18
  import { join } from "path";
18
- import { createInterface } from "readline";
19
+ // Import fast parser from npm package
20
+ import { parseDirFast } from "@ebowwa/jsonl-hft";
21
+ // Convert ParsedEntry to GenericEntry for compatibility
22
+ function toGenericEntry(entry) {
23
+ return {
24
+ sessionId: entry.session_id,
25
+ timestamp: entry.timestamp,
26
+ type: entry.role?.toLowerCase() || "user",
27
+ content: entry.content,
28
+ source_file: entry.source_file,
29
+ };
30
+ }
19
31
  function loadConfig() {
20
32
  return {
21
33
  claudeDir: process.env.CLAUDE_DIR || `${homedir()}/.claude`,
@@ -32,6 +44,18 @@ function getHistoryService() {
32
44
  }
33
45
  return historyService;
34
46
  }
47
+ /**
48
+ * Parse Claude Code history directory using fast Rust parser.
49
+ */
50
+ function parseClaudeCodeHistory(dir) {
51
+ try {
52
+ const entries = parseDirFast(dir);
53
+ return entries.map(toGenericEntry);
54
+ }
55
+ catch {
56
+ return [];
57
+ }
58
+ }
35
59
  // Helper: Get the last line of history.jsonl
36
60
  function getLastHistoryLine(config) {
37
61
  const historyPath = join(config.claudeDir, "history.jsonl");
@@ -51,48 +75,6 @@ function getLastHistoryLine(config) {
51
75
  return null;
52
76
  }
53
77
  }
54
- function listSessionDirectories(config, limit = 100, sort = "recent") {
55
- const sessionEnvPath = join(config.claudeDir, "session-env");
56
- if (!existsSync(sessionEnvPath)) {
57
- return [];
58
- }
59
- try {
60
- const entries = readdirSync(sessionEnvPath, { withFileTypes: true });
61
- const sessions = [];
62
- for (const entry of entries) {
63
- if (!entry.isDirectory()) {
64
- continue;
65
- }
66
- const fullPath = join(sessionEnvPath, entry.name);
67
- const stats = statSync(fullPath);
68
- const sessionFiles = readdirSync(fullPath);
69
- sessions.push({
70
- uuid: entry.name,
71
- lastModified: stats.mtime.toISOString(),
72
- lastModifiedTimestamp: stats.mtimeMs,
73
- isEmpty: sessionFiles.length === 0,
74
- });
75
- }
76
- // Sort
77
- if (sort === "recent") {
78
- sessions.sort((a, b) => b.lastModifiedTimestamp - a.lastModifiedTimestamp);
79
- }
80
- else if (sort === "oldest") {
81
- sessions.sort((a, b) => a.lastModifiedTimestamp - b.lastModifiedTimestamp);
82
- }
83
- else if (sort === "name") {
84
- sessions.sort((a, b) => a.uuid.localeCompare(b.uuid));
85
- }
86
- // Apply limit
87
- if (limit > 0) {
88
- return sessions.slice(0, limit);
89
- }
90
- return sessions;
91
- }
92
- catch {
93
- return [];
94
- }
95
- }
96
78
  // Helper: Format time ago
97
79
  function getTimeAgo(date) {
98
80
  const now = new Date();
@@ -158,63 +140,6 @@ function parseSince(since) {
158
140
  }
159
141
  return null;
160
142
  }
161
- // Helper: Stream read first user message from session (fast - doesn't parse whole file)
162
- async function getFirstUserMessageStream(claudeDir, sessionId) {
163
- // Find the session's history file in projects directory
164
- // Sessions are stored as: projects/{project}/{sessionId}.jsonl
165
- const projectsDir = join(claudeDir, "projects");
166
- if (!existsSync(projectsDir))
167
- return null;
168
- const projectDirs = readdirSync(projectsDir, { withFileTypes: true });
169
- for (const projectDir of projectDirs) {
170
- if (!projectDir.isDirectory())
171
- continue;
172
- // Session history files are stored directly in project directory
173
- const historyPath = join(projectsDir, projectDir.name, `${sessionId}.jsonl`);
174
- if (!existsSync(historyPath))
175
- continue;
176
- // Stream read until we find a user message
177
- const fileStream = createReadStream(historyPath, { encoding: "utf-8" });
178
- const rl = createInterface({
179
- input: fileStream,
180
- crlfDelay: Infinity,
181
- });
182
- try {
183
- for await (const line of rl) {
184
- if (!line.trim())
185
- continue;
186
- try {
187
- const entry = JSON.parse(line);
188
- if (entry.type === "user" && entry.message?.content) {
189
- rl.close();
190
- fileStream.destroy();
191
- // User messages have content as string
192
- const content = typeof entry.message.content === "string"
193
- ? entry.message.content
194
- : Array.isArray(entry.message.content)
195
- ? entry.message.content.map((c) => c.text || "").join(" ")
196
- : "";
197
- return {
198
- content,
199
- projectPath: entry.cwd || projectDir.name,
200
- };
201
- }
202
- }
203
- catch {
204
- // Skip malformed lines
205
- }
206
- }
207
- }
208
- catch {
209
- // File read error
210
- }
211
- finally {
212
- rl.close();
213
- fileStream.destroy();
214
- }
215
- }
216
- return null;
217
- }
218
143
  // Helper function to create response
219
144
  const createResponse = (data) => ({
220
145
  content: [
@@ -227,7 +152,7 @@ const createResponse = (data) => ({
227
152
  // Create MCP server
228
153
  const server = new Server({
229
154
  name: "@mcp/claude-code-history",
230
- version: "1.2.0",
155
+ version: "1.4.0",
231
156
  }, {
232
157
  capabilities: {
233
158
  tools: {},
@@ -454,6 +379,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
454
379
  claudeDir: config.claudeDir,
455
380
  dopplerProject: config.dopplerProject || "not_set",
456
381
  dopplerConfig: config.dopplerConfig,
382
+ parserAvailable: parseDirFast !== null,
457
383
  },
458
384
  environment: {
459
385
  DOPPLER_TOKEN: process.env.DOPPLER_TOKEN ? "set" : "not_set",
@@ -463,127 +389,197 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
463
389
  });
464
390
  }
465
391
  case "list_projects": {
466
- const service = getHistoryService();
467
- const projects = await service.listProjects();
468
- return createResponse(projects);
392
+ const config = loadConfig();
393
+ const start = performance.now();
394
+ // Use generic parser with Claude Code preset
395
+ const entries = parseClaudeCodeHistory(config.claudeDir);
396
+ const parseTime = performance.now() - start;
397
+ // Extract unique project paths from source_file
398
+ const projectMap = new Map();
399
+ for (const entry of entries) {
400
+ // source_file format: /path/to/projects/{project}/{sessionId}.jsonl
401
+ const sourceFile = entry.source_file || "";
402
+ const match = sourceFile.match(/projects\/([^/]+)\//);
403
+ const project = match ? match[1] : "unknown";
404
+ if (!projectMap.has(project)) {
405
+ projectMap.set(project, { sessionCount: 0, messageCount: 0 });
406
+ }
407
+ const data = projectMap.get(project);
408
+ data.messageCount++;
409
+ // Track unique sessions
410
+ if (entry.sessionId) {
411
+ // Use a set-like approach with the map
412
+ const sessionKey = `${project}:${entry.sessionId}`;
413
+ if (!projectMap.has(sessionKey)) {
414
+ projectMap.set(sessionKey, { sessionCount: 1, messageCount: 0 });
415
+ data.sessionCount++;
416
+ }
417
+ }
418
+ }
419
+ // Clean up temp session keys and format output
420
+ const projects = Array.from(projectMap.entries())
421
+ .filter(([key]) => !key.includes(":"))
422
+ .map(([path, data]) => ({
423
+ path,
424
+ name: path.split("/").pop() || path,
425
+ sessionCount: data.sessionCount,
426
+ messageCount: data.messageCount,
427
+ }))
428
+ .sort((a, b) => b.messageCount - a.messageCount);
429
+ return createResponse({
430
+ total: projects.length,
431
+ parseTimeMs: parseTime.toFixed(0),
432
+ projects,
433
+ });
469
434
  }
470
435
  case "get_recent_activity": {
471
436
  const limit = args?.limit ?? 10;
472
437
  const sinceTimestamp = parseSince(args?.since);
473
- // Use session directories (fast - just filesystem metadata)
474
438
  const config = loadConfig();
475
- // Get more than limit if we need to filter by time
476
- const sessionDirs = listSessionDirectories(config, sinceTimestamp ? 500 : limit, "recent");
477
- // Filter by time if since is specified
478
- const filteredDirs = sinceTimestamp
479
- ? sessionDirs.filter(s => s.lastModifiedTimestamp >= sinceTimestamp)
480
- : sessionDirs;
481
- // Stream read first user message for each session (fast - stops after finding it)
482
- const activity = await Promise.all(filteredDirs.slice(0, limit).map(async (s) => {
483
- try {
484
- const result = await getFirstUserMessageStream(config.claudeDir, s.uuid);
485
- const asked = result?.content?.slice(0, 150) + (result?.content?.length > 150 ? "..." : "") || "No user message";
486
- const project = result?.projectPath?.split("/").pop() || "unknown";
487
- return {
488
- sessionId: s.uuid,
489
- project,
490
- asked,
491
- timeAgo: getTimeAgo(new Date(s.lastModified)),
492
- lastActive: s.lastModified,
493
- };
439
+ const start = performance.now();
440
+ // Use generic parser with Claude Code preset
441
+ const entries = parseClaudeCodeHistory(config.claudeDir);
442
+ const parseTime = performance.now() - start;
443
+ // Group by session and get first user message + last timestamp
444
+ const sessionMap = new Map();
445
+ for (const entry of entries) {
446
+ const sid = entry.sessionId || "unknown";
447
+ const ts = entry.timestamp ? new Date(entry.timestamp).getTime() : 0;
448
+ if (!sessionMap.has(sid)) {
449
+ sessionMap.set(sid, {
450
+ firstUserMessage: "",
451
+ project: entry.source_file?.split("/").slice(-2)[0] || "unknown",
452
+ lastTimestamp: 0,
453
+ });
494
454
  }
495
- catch {
496
- return {
497
- sessionId: s.uuid,
498
- project: "unknown",
499
- asked: "Unable to load",
500
- timeAgo: getTimeAgo(new Date(s.lastModified)),
501
- lastActive: s.lastModified,
502
- };
455
+ const data = sessionMap.get(sid);
456
+ // Get first user message
457
+ if (!data.firstUserMessage && entry.type === "user" && entry.content) {
458
+ data.firstUserMessage = entry.content;
503
459
  }
504
- }));
460
+ // Track latest timestamp
461
+ if (ts > data.lastTimestamp) {
462
+ data.lastTimestamp = ts;
463
+ }
464
+ }
465
+ // Convert to array and filter by time
466
+ let sessions = Array.from(sessionMap.entries())
467
+ .map(([sessionId, data]) => ({
468
+ sessionId,
469
+ project: data.project,
470
+ asked: data.firstUserMessage.slice(0, 150) + (data.firstUserMessage.length > 150 ? "..." : "") || "No user message",
471
+ timeAgo: getTimeAgo(new Date(data.lastTimestamp)),
472
+ lastActive: new Date(data.lastTimestamp).toISOString(),
473
+ lastTimestamp: data.lastTimestamp,
474
+ }))
475
+ .sort((a, b) => b.lastTimestamp - a.lastTimestamp);
476
+ // Filter by time if specified
477
+ if (sinceTimestamp) {
478
+ sessions = sessions.filter(s => s.lastTimestamp >= sinceTimestamp);
479
+ }
480
+ const filterTime = performance.now() - start - parseTime;
505
481
  return createResponse({
506
- showing: activity.length,
482
+ showing: Math.min(sessions.length, limit),
507
483
  since: args?.since || null,
508
484
  sinceDate: sinceTimestamp ? new Date(sinceTimestamp).toISOString() : null,
509
- activity,
485
+ parseTimeMs: parseTime.toFixed(0),
486
+ filterTimeMs: filterTime.toFixed(0),
487
+ activity: sessions.slice(0, limit),
510
488
  });
511
489
  }
512
490
  case "list_sessions": {
513
- const service = getHistoryService();
514
- const sessions = await service.listSessions({
515
- projectPath: args?.projectPath,
516
- startDate: args?.startDate,
517
- endDate: args?.endDate,
518
- timezone: args?.timezone,
519
- });
491
+ const config = loadConfig();
492
+ const projectPath = args?.projectPath;
493
+ const startDate = args?.startDate;
494
+ const endDate = args?.endDate;
520
495
  const includePreviews = args?.includePreviews ?? true;
521
- // Enhance sessions with previews if requested
522
- if (includePreviews && sessions.length > 0) {
523
- const enhancedSessions = await Promise.all(sessions.map(async (session) => {
524
- try {
525
- // Only fetch 1 message for preview (faster)
526
- const history = await service.getConversationHistory({
527
- sessionId: session.sessionId,
528
- limit: 1,
529
- messageTypes: ["user"],
530
- });
531
- const firstMessage = history.entries[0]?.content || "";
532
- const preview = firstMessage.slice(0, 100) + (firstMessage.length > 100 ? "..." : "");
533
- // Calculate duration
534
- const startTime = new Date(session.startTime).getTime();
535
- const endTime = new Date(session.endTime).getTime();
536
- const durationMs = endTime - startTime;
537
- const duration = durationMs > 0
538
- ? `${Math.round(durationMs / 60000)}m`
539
- : "N/A";
540
- return {
541
- sessionId: session.sessionId,
542
- project: session.projectPath.split("/").pop() || session.projectPath,
543
- preview,
544
- messageCount: session.messageCount,
545
- duration,
546
- startTime: session.startTime,
547
- };
548
- }
549
- catch {
550
- return {
551
- sessionId: session.sessionId,
552
- project: session.projectPath.split("/").pop() || session.projectPath,
553
- preview: "Unable to load",
554
- messageCount: session.messageCount,
555
- duration: "N/A",
556
- startTime: session.startTime,
557
- };
558
- }
559
- }));
560
- return createResponse(enhancedSessions);
496
+ const start = performance.now();
497
+ // Use generic parser with Claude Code preset
498
+ let entries = parseClaudeCodeHistory(config.claudeDir);
499
+ const parseTime = performance.now() - start;
500
+ // Filter by project path
501
+ if (projectPath) {
502
+ entries = entries.filter(e => e.source_file?.includes(projectPath));
503
+ }
504
+ // Filter by date range
505
+ if (startDate || endDate) {
506
+ const startMs = startDate ? new Date(startDate).getTime() : 0;
507
+ const endMs = endDate ? new Date(endDate).getTime() : Date.now();
508
+ entries = entries.filter(e => {
509
+ if (!e.timestamp)
510
+ return false;
511
+ const entryMs = new Date(e.timestamp).getTime();
512
+ return entryMs >= startMs && entryMs <= endMs;
513
+ });
514
+ }
515
+ // Group by session
516
+ const sessionMap = new Map();
517
+ for (const entry of entries) {
518
+ const sid = entry.sessionId || "unknown";
519
+ if (!sessionMap.has(sid)) {
520
+ sessionMap.set(sid, { entries: [], project: entry.source_file?.split("/").slice(-2)[0] || "unknown" });
521
+ }
522
+ sessionMap.get(sid).entries.push(entry);
561
523
  }
562
- return createResponse(sessions);
524
+ const filterTime = performance.now() - start - parseTime;
525
+ // Format sessions
526
+ const sessions = Array.from(sessionMap.entries())
527
+ .map(([sessionId, data]) => {
528
+ const sorted = data.entries.sort((a, b) => new Date(a.timestamp || 0).getTime() - new Date(b.timestamp || 0).getTime());
529
+ const firstEntry = sorted[0];
530
+ const lastEntry = sorted[sorted.length - 1];
531
+ const startTime = firstEntry?.timestamp || "";
532
+ const endTime = lastEntry?.timestamp || "";
533
+ const durationMs = startTime && endTime
534
+ ? new Date(endTime).getTime() - new Date(startTime).getTime()
535
+ : 0;
536
+ // Get first user message for preview
537
+ const firstUser = sorted.find(e => e.type === "user");
538
+ const preview = includePreviews && firstUser?.content
539
+ ? firstUser.content.slice(0, 100) + (firstUser.content.length > 100 ? "..." : "")
540
+ : "";
541
+ return {
542
+ sessionId,
543
+ project: data.project,
544
+ preview: preview || "No preview",
545
+ messageCount: data.entries.length,
546
+ duration: durationMs > 0 ? `${Math.round(durationMs / 60000)}m` : "N/A",
547
+ startTime,
548
+ };
549
+ })
550
+ .sort((a, b) => new Date(b.startTime).getTime() - new Date(a.startTime).getTime());
551
+ return createResponse({
552
+ total: sessions.length,
553
+ parseTimeMs: parseTime.toFixed(0),
554
+ filterTimeMs: filterTime.toFixed(0),
555
+ sessions: sessions.slice(0, 100), // Limit to 100
556
+ });
563
557
  }
564
558
  case "get_session_summary": {
565
- const service = getHistoryService();
559
+ const config = loadConfig();
566
560
  const sessionId = args?.sessionId;
567
561
  const includeToolCalls = args?.includeToolCalls ?? true;
568
562
  if (!sessionId) {
569
563
  throw new Error("Session ID is required");
570
564
  }
571
- // Get full conversation for this session
572
- const history = await service.getConversationHistory({
573
- sessionId,
574
- limit: Number.MAX_SAFE_INTEGER,
575
- messageTypes: ["user", "assistant"],
576
- });
577
- if (history.entries.length === 0) {
565
+ const start = performance.now();
566
+ // Use generic parser with Claude Code preset
567
+ const allEntries = parseClaudeCodeHistory(config.claudeDir);
568
+ const parseTime = performance.now() - start;
569
+ // Filter to this session
570
+ const entries = allEntries.filter(e => e.sessionId === sessionId);
571
+ if (entries.length === 0) {
578
572
  return createResponse({
579
573
  found: false,
580
574
  error: "No messages found for this session",
581
575
  });
582
576
  }
577
+ // Sort by timestamp
578
+ const sorted = entries.sort((a, b) => new Date(a.timestamp || 0).getTime() - new Date(b.timestamp || 0).getTime());
583
579
  // Extract topics from user messages
584
- const userMessages = history.entries.filter(e => e.type === "user");
580
+ const userMessages = sorted.filter(e => e.type === "user");
585
581
  const topics = userMessages
586
- .map(m => m.content.slice(0, 100))
582
+ .map(m => (m.content || "").slice(0, 100))
587
583
  .filter(t => t.length > 10)
588
584
  .slice(0, 5);
589
585
  // Extract files and commands from assistant messages
@@ -591,36 +587,40 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
591
587
  const commandsRun = [];
592
588
  const toolsUsed = [];
593
589
  if (includeToolCalls) {
594
- for (const entry of history.entries) {
590
+ for (const entry of sorted) {
595
591
  if (entry.type === "assistant") {
592
+ const content = entry.content || "";
596
593
  // Extract file paths
597
- const fileMatches = entry.content.match(/(?:\/[\w.-]+)+\/[\w.-]+/g) || [];
594
+ const fileMatches = content.match(/(?:\/[\w.-]+)+\/[\w.-]+/g) || [];
598
595
  filesModified.push(...fileMatches.slice(0, 3));
599
596
  // Extract bash commands
600
- const bashMatches = entry.content.match(/`([^`]{3,50})`/g) || [];
597
+ const bashMatches = content.match(/`([^`]{3,50})`/g) || [];
601
598
  commandsRun.push(...bashMatches.map(m => m.replace(/`/g, "")).slice(0, 2));
602
599
  // Extract tool mentions
603
- const toolMatches = entry.content.match(/\b(Read|Write|Edit|Bash|Grep|Glob|Task)\b/g) || [];
600
+ const toolMatches = content.match(/\b(Read|Write|Edit|Bash|Grep|Glob|Task)\b/g) || [];
604
601
  toolsUsed.push(...toolMatches);
605
602
  }
606
603
  }
607
604
  }
608
605
  // Get first and last message for context
609
606
  const firstMessage = userMessages[0]?.content || "N/A";
610
- const lastAssistant = [...history.entries].reverse().find(e => e.type === "assistant")?.content || "N/A";
607
+ const lastAssistant = [...sorted].reverse().find(e => e.type === "assistant")?.content || "N/A";
611
608
  // Determine outcome
612
- const hasError = history.entries.some(e => e.content.toLowerCase().includes("error") ||
613
- e.content.toLowerCase().includes("failed"));
609
+ const hasError = sorted.some(e => (e.content || "").toLowerCase().includes("error") ||
610
+ (e.content || "").toLowerCase().includes("failed"));
614
611
  const outcome = hasError ? "completed_with_issues" : "completed";
612
+ const filterTime = performance.now() - start - parseTime;
615
613
  return createResponse({
616
614
  sessionId,
617
- projectPath: history.entries[0]?.projectPath || "unknown",
615
+ projectPath: sorted[0]?.source_file?.split("/").slice(-2)[0] || "unknown",
616
+ parseTimeMs: parseTime.toFixed(0),
617
+ filterTimeMs: filterTime.toFixed(0),
618
618
  summary: {
619
- totalMessages: history.entries.length,
619
+ totalMessages: sorted.length,
620
620
  userMessages: userMessages.length,
621
- assistantMessages: history.entries.length - userMessages.length,
622
- startTime: history.entries[0]?.timestamp,
623
- endTime: history.entries[history.entries.length - 1]?.timestamp,
621
+ assistantMessages: sorted.length - userMessages.length,
622
+ startTime: sorted[0]?.timestamp,
623
+ endTime: sorted[sorted.length - 1]?.timestamp,
624
624
  },
625
625
  topics: [...new Set(topics)].slice(0, 5),
626
626
  firstRequest: firstMessage.slice(0, 300),
@@ -637,18 +637,16 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
637
637
  const startDate = args?.startDate;
638
638
  const endDate = args?.endDate;
639
639
  const messageTypes = args?.messageTypes;
640
- const timezone = args?.timezone;
641
640
  const start = performance.now();
642
- // Use fast Rust parser
643
- let entries = parseDirFast(config.claudeDir);
641
+ // Use generic parser with Claude Code preset
642
+ let entries = parseClaudeCodeHistory(config.claudeDir);
644
643
  const parseTime = performance.now() - start;
645
644
  // Filter by session
646
645
  if (sessionId) {
647
- entries = entries.filter(e => e.session_id === sessionId);
646
+ entries = entries.filter(e => e.sessionId === sessionId);
648
647
  }
649
648
  // Filter by date range
650
649
  if (startDate || endDate) {
651
- const tz = timezone || Intl.DateTimeFormat().resolvedOptions().timeZone;
652
650
  const startMs = startDate ? new Date(startDate).getTime() : 0;
653
651
  const endMs = endDate ? new Date(endDate).getTime() : Date.now();
654
652
  entries = entries.filter(e => {
@@ -661,15 +659,15 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
661
659
  // Filter by message types
662
660
  if (messageTypes && messageTypes.length > 0) {
663
661
  const types = new Set(messageTypes.map(t => t.toLowerCase()));
664
- entries = entries.filter(e => types.has(e.role?.toLowerCase() || ""));
662
+ entries = entries.filter(e => types.has(e.type?.toLowerCase() || ""));
665
663
  }
666
664
  const filterTime = performance.now() - start - parseTime;
667
- // Format response to match existing API
665
+ // Format response
668
666
  const result = {
669
667
  entries: entries.map(e => ({
670
- sessionId: e.session_id,
668
+ sessionId: e.sessionId,
671
669
  timestamp: e.timestamp,
672
- role: e.role,
670
+ type: e.type,
673
671
  content: e.content,
674
672
  })),
675
673
  totalCount: entries.length,
@@ -692,17 +690,17 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
692
690
  }
693
691
  const config = loadConfig();
694
692
  const start = performance.now();
695
- // Use fast Rust parser
696
- const allEntries = parseDirFast(config.claudeDir);
693
+ // Use generic parser with Claude Code preset
694
+ const allEntries = parseClaudeCodeHistory(config.claudeDir);
697
695
  const parseTime = performance.now() - start;
698
696
  // Filter by query
699
697
  const matches = allEntries.filter(e => e.content?.toLowerCase().includes(query) ||
700
- e.role?.toLowerCase().includes(query));
698
+ e.type?.toLowerCase().includes(query));
701
699
  const searchTime = performance.now() - start - parseTime;
702
700
  // Group by session
703
701
  const sessionGroups = new Map();
704
702
  for (const entry of matches) {
705
- const sid = entry.session_id || "unknown";
703
+ const sid = entry.sessionId || "unknown";
706
704
  if (!sessionGroups.has(sid))
707
705
  sessionGroups.set(sid, []);
708
706
  sessionGroups.get(sid).push(entry);
@@ -725,62 +723,93 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
725
723
  });
726
724
  }
727
725
  case "get_current_session": {
728
- const service = getHistoryService();
729
- const session = await service.getCurrentSession();
730
- if (!session) {
726
+ const config = loadConfig();
727
+ // Get last line from history.jsonl for current session ID
728
+ const lastHistory = getLastHistoryLine(config);
729
+ if (!lastHistory) {
731
730
  return createResponse({
732
731
  found: false,
733
732
  error: "No history file found or history is empty",
734
733
  });
735
734
  }
736
- // Get additional context for the current session
737
- let messageCount = 0;
738
- let project = session.projectPath || "unknown";
739
- let latestPrompt = session.display || "N/A";
740
- try {
741
- const history = await service.getConversationHistory({
742
- sessionId: session.sessionId,
743
- limit: 1000,
744
- });
745
- messageCount = history.entries.length;
746
- project = history.entries[0]?.projectPath || project;
747
- }
748
- catch {
749
- // Ignore errors getting additional context
750
- }
735
+ const start = performance.now();
736
+ // Use generic parser with Claude Code preset
737
+ const allEntries = parseClaudeCodeHistory(config.claudeDir);
738
+ const parseTime = performance.now() - start;
739
+ // Filter to current session
740
+ const sessionEntries = allEntries.filter(e => e.sessionId === lastHistory.sessionId);
741
+ // Get latest user prompt
742
+ const userEntries = sessionEntries.filter(e => e.type === "user");
743
+ const latestPrompt = userEntries.length > 0
744
+ ? userEntries[userEntries.length - 1]?.content || "N/A"
745
+ : lastHistory.display || "N/A";
746
+ // Get project from source_file
747
+ const project = sessionEntries[0]?.source_file?.split("/").slice(-2)[0] ||
748
+ lastHistory.project?.split("/").pop() || "unknown";
751
749
  return createResponse({
752
750
  found: true,
753
- sessionId: session.sessionId,
754
- project: project.split("/").pop() || project,
755
- projectPath: project,
756
- latestPrompt,
757
- messageCount,
758
- timestamp: session.timestamp,
759
- timeAgo: getTimeAgo(new Date(session.timestamp)),
751
+ sessionId: lastHistory.sessionId,
752
+ project,
753
+ projectPath: lastHistory.project || project,
754
+ latestPrompt: latestPrompt.slice(0, 200),
755
+ messageCount: sessionEntries.length,
756
+ timestamp: lastHistory.timestamp,
757
+ timeAgo: getTimeAgo(new Date(lastHistory.timestamp)),
758
+ parseTimeMs: parseTime.toFixed(0),
760
759
  });
761
760
  }
762
761
  case "list_session_directories": {
763
- const service = getHistoryService();
762
+ const config = loadConfig();
764
763
  const limit = args?.limit ?? 20;
765
764
  const sort = args?.sort ?? "recent";
766
- // Get all session UUIDs from session-env directory
767
- const allUuids = await service.listAllSessionUuids();
768
- // Get additional metadata by reading the session directories
769
- const config = loadConfig();
770
- const sessions = listSessionDirectories(config, 0, sort);
771
- // Quick return - just UUIDs with timestamps (fast)
772
- const quickSessions = sessions
773
- .filter(s => allUuids.includes(s.uuid))
774
- .slice(0, limit > 0 ? limit : 50)
775
- .map(s => ({
776
- sessionId: s.uuid,
777
- lastActive: getTimeAgo(new Date(s.lastModified)),
778
- isEmpty: s.isEmpty,
765
+ const start = performance.now();
766
+ // Use generic parser with Claude Code preset
767
+ const entries = parseClaudeCodeHistory(config.claudeDir);
768
+ const parseTime = performance.now() - start;
769
+ // Group by session and get metadata
770
+ const sessionMap = new Map();
771
+ for (const entry of entries) {
772
+ const sid = entry.sessionId || "unknown";
773
+ const ts = entry.timestamp ? new Date(entry.timestamp).getTime() : 0;
774
+ if (!sessionMap.has(sid)) {
775
+ sessionMap.set(sid, {
776
+ lastTimestamp: ts,
777
+ messageCount: 0,
778
+ project: entry.source_file?.split("/").slice(-2)[0] || "unknown"
779
+ });
780
+ }
781
+ const data = sessionMap.get(sid);
782
+ data.messageCount++;
783
+ if (ts > data.lastTimestamp) {
784
+ data.lastTimestamp = ts;
785
+ }
786
+ }
787
+ // Convert to array and sort
788
+ let sessions = Array.from(sessionMap.entries())
789
+ .map(([sessionId, data]) => ({
790
+ sessionId,
791
+ project: data.project,
792
+ lastActive: getTimeAgo(new Date(data.lastTimestamp)),
793
+ lastTimestamp: data.lastTimestamp,
794
+ messageCount: data.messageCount,
795
+ isEmpty: false,
779
796
  }));
797
+ if (sort === "recent") {
798
+ sessions.sort((a, b) => b.lastTimestamp - a.lastTimestamp);
799
+ }
800
+ else if (sort === "oldest") {
801
+ sessions.sort((a, b) => a.lastTimestamp - b.lastTimestamp);
802
+ }
803
+ else if (sort === "name") {
804
+ sessions.sort((a, b) => a.sessionId.localeCompare(b.sessionId));
805
+ }
806
+ const filterTime = performance.now() - start - parseTime;
780
807
  return createResponse({
781
- total: allUuids.length,
782
- sessions: quickSessions,
783
- returned: quickSessions.length,
808
+ total: sessions.length,
809
+ parseTimeMs: parseTime.toFixed(0),
810
+ filterTimeMs: filterTime.toFixed(0),
811
+ sessions: sessions.slice(0, limit > 0 ? limit : 50),
812
+ returned: Math.min(sessions.length, limit > 0 ? limit : 50),
784
813
  });
785
814
  }
786
815
  case "get_session_by_pid": {
@@ -805,10 +834,16 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
805
834
  });
806
835
  }
807
836
  case "list_all_session_uuids": {
808
- const service = getHistoryService();
809
- const uuids = await service.listAllSessionUuids();
837
+ const config = loadConfig();
838
+ const start = performance.now();
839
+ // Use generic parser with Claude Code preset
840
+ const entries = parseClaudeCodeHistory(config.claudeDir);
841
+ const parseTime = performance.now() - start;
842
+ // Extract unique session IDs
843
+ const uuids = [...new Set(entries.map(e => e.sessionId).filter(Boolean))];
810
844
  return createResponse({
811
845
  count: uuids.length,
846
+ parseTimeMs: parseTime.toFixed(0),
812
847
  uuids,
813
848
  note: "Use list_session_directories for more useful output with previews and context",
814
849
  });
@@ -845,6 +880,7 @@ async function main() {
845
880
  await server.connect(transport);
846
881
  console.error("Claude Code History MCP server running on stdio");
847
882
  console.error(`Config: CLAUDE_DIR=${config.claudeDir}`);
883
+ console.error(`Parser: @ebowwa/jsonl-hft (generic, fields defined locally)`);
848
884
  if (config.dopplerProject) {
849
885
  console.error(`Config: DOPPLER_PROJECT=${config.dopplerProject}`);
850
886
  console.error(`Config: DOPPLER_CONFIG=${config.dopplerConfig}`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ebowwa/mcp-claude-code-history",
3
- "version": "1.2.7",
3
+ "version": "1.4.0",
4
4
  "description": "MCP server for Claude Code conversation history with useful context and summaries",
5
5
  "type": "module",
6
6
  "private": false,
@@ -22,9 +22,9 @@
22
22
  "typecheck": "tsc --noEmit"
23
23
  },
24
24
  "dependencies": {
25
- "@ebowwa/claudecodehistory": "^1.2.4",
26
- "@ebowwa/jsonl-hft": "^0.1.1",
27
- "@ebowwa/large-output": "^1.1.0",
25
+ "@ebowwa/claudecodehistory": "^1.5.1",
26
+ "@ebowwa/jsonl-hft": "^0.1.2",
27
+ "@ebowwa/large-output": "^1.2.0",
28
28
  "@modelcontextprotocol/sdk": "^1.0.0"
29
29
  },
30
30
  "devDependencies": {