No description
|
Some checks failed
Build and Publish / build-and-publish (push) Failing after 41s
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| node_modules | ||
| src | ||
| .gitignore | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tsup.config.ts | ||
@lilith/mcp-session-analyzer
MCP server for ML-powered analysis of Claude Code session transcripts.
Features
- list_sessions - Browse recent sessions from Claude's history
- search_sessions - Search across all transcripts using regex patterns
- analyze_session - Full ML-powered analysis (summary, sections, topics, evaluation)
- summarize_session - Quick summary generation with style options
- get_session_topics - Extract topic changes and discussion flow
Installation
pnpm add @lilith/mcp-session-analyzer
Configuration
Add to ~/.claude/mcp-config.json:
{
"mcpServers": {
"session-analyzer": {
"command": "node",
"args": ["/path/to/mcp-session-analyzer/dist/index.js"]
}
}
}
Requirements
- Local Llama service running on port 41221 (lilith-llama-service)
- ripgrep (
rg) installed for search functionality
Data Sources
The server reads from Claude's native storage:
~/.claude/history.jsonl- Session index~/.claude/projects/{escaped-path}/{sessionId}.jsonl- Full transcripts
Tools
list_sessions
Browse recent Claude Code sessions.
list_sessions({
project?: string, // Filter by project path
limit?: number, // Max results (default: 20)
since?: string, // ISO date filter
})
search_sessions
Search across all transcripts using ripgrep.
search_sessions({
query: string, // Regex pattern
project?: string, // Filter by project
limit?: number, // Max matches (default: 50)
})
analyze_session
Full ML-powered session analysis.
analyze_session({
sessionId: string,
provider?: 'llama' | 'claude' | 'openai', // Default: llama
})
// Returns:
interface SessionAnalysis {
summary: string;
sections: ConversationSection[];
topics: TopicChange[];
evaluation: ConversationEvaluation;
keyDecisions: string[];
filesModified: string[];
toolsUsed: string[];
}
summarize_session
Quick summary generation.
summarize_session({
sessionId: string,
style?: 'brief' | 'detailed' | 'bullet-points',
})
get_session_topics
Extract topic flow from a session.
get_session_topics(sessionId: string)
// Returns:
interface SessionTopics {
mainTopics: string[];
topicFlow: TopicChange[];
timeOnTopic: { topic: string; lines: number }[];
}
Caching
Analysis results are cached in ~/.local/share/claude/mcp/cache/session-analyzer/ for 24 hours.
Dependencies
@lilith/mcp-common- Shared MCP utilities@lilith/ml-provider-clients- LLM provider clients@modelcontextprotocol/sdk- MCP framework
License
MIT