Skip to main content
Glama
lekt9

OpenReplay MCP Server

by lekt9
README.md
# OpenReplay MCP Server

An MCP (Model Context Protocol) server that provides AI-powered analytics for OpenReplay sessions. This server enables LLMs to query and analyze user sessions through OpenReplay's API.

## Authentication Methods

### API Key Authentication (Current)
The server currently uses API key authentication which provides access to:
- List all projects
- Get user sessions by user ID
- Get session events
- User details

**Note**: API key authentication has limited access. For full functionality (session search, metrics, funnels, etc.), JWT authentication is required.

### JWT Authentication (Future)
Full access to all OpenReplay features including:
- Complete session search with filters
- Performance metrics and analytics
- Funnel analysis
- Error tracking and aggregation
- Custom dashboards and metrics

## Installation

```bash
npm install
npm run build
```

## Configuration

1. Copy `.env.example` to `.env`:
```bash
cp .env.example .env
```

2. Configure your OpenReplay credentials:
```env
# OpenReplay API URL
# For cloud: https://api.openreplay.com (default)
# For self-hosted: Your instance URL
OPENREPLAY_API_URL=https://api.openreplay.com

# Organization API Key (find in Preferences > Account > Organization API Key)
OPENREPLAY_API_KEY=your_organization_api_key

# Project key from your project settings
OPENREPLAY_PROJECT_KEY=your_project_key
```

## Usage with Claude Desktop

Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "openreplay": {
      "command": "node",
      "args": ["/path/to/openreplay-mcp/dist/index.js"],
      "env": {
        "OPENREPLAY_API_URL": "https://api.openreplay.com",
        "OPENREPLAY_API_KEY": "your_organization_api_key",
        "OPENREPLAY_PROJECT_KEY": "your_project_key"
      }
    }
  }
}
```

## Available Tools

### search_sessions
Search and filter sessions with various criteria like date range, user properties, errors, performance metrics.

### get_session_details
Get detailed information about a specific session including all events, errors, network requests, console logs.

### get_session_events
Get all events from a session with optional filtering by event type.

### aggregate_sessions
Aggregate session data with various metrics and groupings (count, avg_duration, error_rate, bounce_rate, etc.).

### get_user_journey
Get the complete journey of a user across multiple sessions.

### get_errors_issues
Get errors and issues with their impact and affected sessions.

### get_funnel_analysis
Analyze user funnels and conversion paths with custom step definitions.

### get_performance_metrics
Get performance metrics like page load times, LCP, TTI with percentiles.

### execute_custom_query
Execute custom queries for advanced analysis (SQL-like syntax for ClickHouse).

## Example Queries

Once connected, you can ask the LLM questions like:

- "What are the most common drop-off points in our checkout flow?"
- "Show me the longest user sessions from the last week"
- "What JavaScript errors are affecting the most users?"
- "Analyze the user journey for users who converted vs those who didn't"
- "What pages have the worst performance metrics?"
- "Find patterns in sessions that resulted in errors"
- "Show me the bounce rate by device type and country"

## Development

```bash
# Run in development mode
npm run dev

# Build for production
npm run build

# Start production server
npm start
```

## License

MIT

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have distinct purposes, such as aggregate_sessions for metrics, get_session_details for comprehensive data, and get_funnel_analysis for user paths. However, get_session_events and get_session_details could be confused as both retrieve session data, though their scopes differ (events only vs. all details).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as aggregate_sessions, get_session_details, and list_projects. This uniformity makes the tool set predictable and easy to navigate for an agent.

Tool Count5/5

With 11 tools, the count is well-suited for a session analytics domain, covering key operations like querying, analyzing, and managing sessions and projects. Each tool appears purposeful without being overwhelming or insufficient.

Completeness4/5

The tool set provides strong coverage for session analytics, including data retrieval, aggregation, error analysis, and user journey tracking. A minor gap exists in management operations, such as creating or deleting sessions or projects, but core analytical workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues