# Claude Code History MCP Server
An MCP server for retrieving and analyzing Claude Code conversation history with smart filtering and pagination.
## Features
This MCP server provides **4 powerful tools** for exploring your Claude Code conversation history:
### 1. `list_projects` 👀 **Start Here**
Discover all projects with Claude Code conversation history.
**Why use this first:** Get an overview of all available data before diving deeper.
**Returns:** Project paths, session counts, message counts, and last activity time.
### 2. `list_sessions` 📁 **Explore Sessions**
List conversation sessions for exploration and filtering.
**Parameters:**
- `projectPath` (optional): Filter by specific project
- `startDate` (optional): Start date (e.g., "2025-06-30")
- `endDate` (optional): End date (e.g., "2025-06-30")
- `timezone` (optional): Timezone for date filtering (e.g., "Asia/Tokyo", "UTC")
**Returns:** Session IDs, timestamps, message counts, and project paths.
### 3. `get_conversation_history` 💬 **Get Detailed Data**
Retrieve paginated conversation history with smart filtering.
**Key Features:**
- **Pagination**: `limit` (default: 20) and `offset` for efficient data handling
- **Message Filtering**: `messageTypes` defaults to `["user"]` to reduce data volume
- **Timezone Support**: Automatic timezone detection or specify (e.g., "Asia/Tokyo")
- **Date Filtering**: Smart date normalization with timezone awareness
**Parameters:**
- `sessionId` (optional): Specific session ID
- `startDate` (optional): Start date (e.g., "2025-06-30")
- `endDate` (optional): End date (e.g., "2025-06-30")
- `limit` (optional): Max entries per page (default: 20)
- `offset` (optional): Skip entries for pagination (default: 0)
- `messageTypes` (optional): `["user"]` (default), `["user", "assistant"]`, etc.
- `timezone` (optional): e.g., "Asia/Tokyo", "UTC" (auto-detected)
**Example:**
```json
{
"startDate": "2025-06-30",
"limit": 50,
"messageTypes": ["user"],
"timezone": "Asia/Tokyo"
}
```
**Response includes pagination info:**
```json
{
"entries": [...],
"pagination": {
"total_count": 150,
"limit": 20,
"offset": 0,
"has_more": true
}
}
```
### 4. `search_conversations` 🔍 **Find Specific Content**
Search across all conversation content by keywords with advanced filtering.
**Parameters:**
- `query` (required): Search terms
- `limit` (optional): Max results (default: 30)
- `projectPath` (optional): Filter by specific project path
- `startDate` (optional): Start date (e.g., "2025-06-30")
- `endDate` (optional): End date (e.g., "2025-06-30")
- `timezone` (optional): Timezone for date filtering (e.g., "Asia/Tokyo", "UTC")
## Quick Start
```bash
# Install directly via npx (no local installation needed)
npx claude-code-history-mcp
# Or install globally
npm install -g claude-code-history-mcp
```
## Usage with MCP Clients
Add the following configuration to your MCP client (e.g., Claude Desktop):
```json
{
"mcpServers": {
"claude-code-history": {
"command": "npx",
"args": ["claude-code-history-mcp"]
}
}
}
```
Alternatively, if you have installed the package globally:
```json
{
"mcpServers": {
"claude-code-history": {
"command": "claude-code-history-mcp"
}
}
}
```
## Recommended Workflow 🚀
### 1. **Explore Available Data**
```json
// Start with list_projects to see what's available
{"tool": "list_projects"}
```
### 2. **Find Relevant Sessions**
```json
// List sessions for a specific project or date range with timezone
{
"tool": "list_sessions",
"projectPath": "/Users/yourname/code/my-project",
"startDate": "2025-06-30",
"timezone": "Asia/Tokyo"
}
```
### 3. **Get Targeted Data**
```json
// Get conversation history with optimal settings
{
"tool": "get_conversation_history",
"sessionId": "specific-session-id",
"messageTypes": ["user"], // Only your inputs (default)
"limit": 50
}
```
## Data Source
This server reads Claude Code history files (.jsonl format) stored in `~/.claude/projects/`.
## Smart Features 💡
### **Message Type Filtering**
- **Default**: Only `["user"]` messages to reduce data volume
- **Full conversation**: Use `["user", "assistant"]`
- **Everything**: Use `["user", "assistant", "system", "result"]`
### **Timezone Intelligence**
- Automatically detects your system timezone
- Supports explicit timezone specification (e.g., "Asia/Tokyo")
- Smart date normalization (e.g., "2025-06-30" → proper timezone bounds)
### **Pagination Support**
- Efficient handling of large datasets
- `total_count` helps you understand data volume
- `has_more` indicates if there's additional data
## Use Cases
### **Daily Work Review**
```
What did I work on today?
```
1. `list_projects` → See active projects
2. `get_conversation_history` with today's date and `messageTypes: ["user"]`
### **Project Deep Dive**
```
Analyze my recent work on Project X
```
1. `list_sessions` with specific project path
2. `get_conversation_history` for relevant sessions
3. Use pagination to browse through all data
### **Topic Research**
```
Find all conversations about "API integration" in a specific project
```
1. `search_conversations` with query "API integration", projectPath, and date range
2. Use results to identify relevant sessions
3. `get_conversation_history` for detailed context
**Example with advanced filtering:**
```json
{
"tool": "search_conversations",
"query": "API integration",
"projectPath": "/Users/yourname/code/my-project",
"startDate": "2025-06-01",
"endDate": "2025-06-30",
"timezone": "Asia/Tokyo",
"limit": 50
}
```
## License
MIT