mcp-session-insight
Enables AI assistants to query and analyze past Claude Code sessions, providing structured insights like file changes, decisions, errors, and git history across projects.
README
<img src="banner.png" width="100%" alt="mcp-session-insight" />
<div align="center">
MCP Session Insight
AI-Native Session Observability for Claude Code
简体中文 | English
</div>
Why session-insight?
Claude Code sessions accumulate rich context — file changes, user requests, decisions, errors, git history — but that context vanishes when the session ends. CLAUDE.md stores static rules, but can't answer "what did I work on today?" or "what went wrong in that last session?".
session-insight gives your AI assistant a read-only lens into all past sessions:
- Session analytics — extract structured insights from JSONL: file changes, decisions, errors, tool usage, todo progress
- EnrichedSummary — returns structured JSON instead of Markdown templates, letting the calling LLM synthesize concise summaries at zero extra API cost
- Cross-project git logs — collect commit history across all projects with date range, project, and author filters
- Semantic classification — bash commands classified into 9 categories (build/test/deploy/debug/network/run/git/explore/other)
- Session handoff — generate structured context for seamless session continuation
Quick Start
# Install
npm install -g @morningljn/mcp-session-insight
# One-command setup
claude mcp add session-insight -- npx @morningljn/mcp-session-insight
Restart your AI assistant and it can now query all past sessions.
Manual Setup
Add to ~/.claude/mcp.json:
{
"mcpServers": {
"session-insight": {
"command": "npx",
"args": ["@morningljn/mcp-session-insight"]
}
}
}
Tools
| Tool | Description |
|---|---|
list_sessions |
List all sessions with optional project filter and limit |
show_session |
Show session metadata (supports prefix matching on session ID) |
search_sessions |
Search sessions by keyword in content or ID |
get_session_summary |
Returns EnrichedSummary JSON for LLM synthesis |
get_session_changes |
Get file changes (created / modified / read) |
get_session_requests |
Get deduplicated user requests |
get_session_todos |
Get todo progress snapshots |
get_session_errors |
Get errors and issues with context |
get_session_decisions |
Get key decisions from thinking blocks |
get_session_conversation |
Get conversation history with role filter |
get_git_logs |
Collect git commit logs across projects |
get_session_summary (EnrichedSummary)
Returns structured JSON instead of formatted text. The calling LLM reads the data and synthesizes a concise summary — zero extra API cost.
{
"sessionDuration": "116min",
"messageDensity": "low",
"classifiedBash": [{ "cmd": "npm test", "category": "test" }],
"errorsWithContext": [{ "message": "...", "trigger": "Bash", "relatedFile": "src/server.ts" }],
"fileChangeGroups": [{ "directory": "src", "created": ["git.ts"], "modified": [] }],
"dedupedRequests": ["refactor summary to structured JSON"],
"decisions": ["use Jaccard trigram for dedup"],
"toolStats": { "Bash": 93, "Read": 39, "Edit": 38 },
"gitActions": ["git commit -m \"feat: ...\"", "git push origin main"]
}
get_git_logs
Collect git commit history across all Claude Code projects:
[
{
"project": "/Users/user/project",
"projectName": "my-app",
"commits": [
{ "hash": "a1b2c3d", "message": "feat: add auth", "author": "user", "date": "2026-05-20T10:00:00+08:00", "files": ["src/auth.ts"] }
]
}
]
Architecture
┌───────────────────┐ stdio ┌──────────────────┐ read ┌──────────────────────────┐
│ MCP Client │◄─────────►│ session-insight │◄──────────►│ ~/.claude/projects/ │
│ (Claude / Codex) │ JSON │ server │ │ │
└───────────────────┘ └───────┬──────────┘ │ ┌─project-a/ │
│ │ │ ├─session-1.jsonl │
┌──────┴──────┐ │ │ └─session-2.jsonl │
│ │ │ └─project-b/ │
│ Extractor │ Git Log │ └─session-3.jsonl │
│ (summary, │ Collector │ │
│ classify, │ (git log └──────────────────────────┘
│ dedup, │ per project)
│ errors) │
└─────────────┘
Key design decisions:
- Stateless — no database, no persistence, reads JSONL directly on each request
- Zero dependencies — only
@modelcontextprotocol/sdk, all processing is pure computation - LLM-friendly output — structured JSON that the calling LLM synthesizes into natural language
Development
npm install
npm test # run tests with vitest
npm run build # compile TypeScript
npm start # start MCP server
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。