Lcontext MCP Server
An MCP server that exposes user behavior as queryable data for AI coding agents.
Documentation
Lcontext
The product analytics agent for your AI coding tools. Lcontext studies how users navigate your product, where they engage, hesitate, and drop off, and delivers behavioral context via MCP.
Works with: Claude Code, Claude Desktop, Cursor, Windsurf, Cline, and any MCP-compatible AI coding tool.
Quick Setup
The fastest way to get started -- sign up, configure your agent, and get your tracking script in one command:
npx lcontext-mcp@latest setup
Or using the standalone installer (no Node required):
curl -fsSL https://lcontext.com/api/cli/install | bash
Both will open your browser to sign up (or log in), configure your coding agent, and print the tracking script to add to your app.
Manual Setup
If you prefer to set things up manually:
- Create a free account at lcontext.com
- Add the tracking script to your app (find your tag in the dashboard):
<script src="https://lcontext.com/it.js?iTag=YOUR_SITE_TAG" defer></script>
- Connect your coding agent (see below)
What the tracker collects
- Page views - URL, title, referrer
- Clicks - Buttons, links, interactive elements (label text only, no personal data)
- Form submissions - Form metadata (no field values captured)
- Scroll depth - How far users scroll (25% increments)
- Device metadata - Screen size, browser language, viewport
Privacy-focused: No passwords, input values, or personal information collected. ~4KB minified.
Advanced: Link to your user IDs
Associate the anonymous visitor with your application's user ID:
lcontext('setProfileId', 'user-123');
Track custom events:
lcontext('trackEvent', 'purchase', { productId: 'abc', amount: 99.99 });
Agent Configuration
Claude Code / Claude Desktop
claude mcp add lcontext -s user -e LCONTEXT_API_KEY=your-api-key -- npx -y lcontext-mcp@latest
Then restart Claude.
Cursor
Option 1: One-Click Install
After clicking, replace your-api-key-here with your actual API key in Cursor settings.
Option 2: Manual Setup
First, install the binary:
curl -fsSL https://lcontext.com/api/cli/install | bash
Then open Cursor Settings (Cmd/Ctrl + Shift + J), and add the server:
{
"lcontext": {
"command": "lcontext",
"env": {
"LCONTEXT_API_KEY": "your-api-key-here"
}
}
}
Windsurf
First, install the binary:
curl -fsSL https://lcontext.com/api/cli/install | bash
Then open Windsurf and navigate to Cascade > Configure > MCP Servers (or click the hammer icon), then click "Add Server" and select "Add custom server". Add this configuration:
{
"lcontext": {
"command": "lcontext",
"env": {
"LCONTEXT_API_KEY": "your-api-key-here"
}
}
}
Cline (VS Code Extension)
First, install the binary:
curl -fsSL https://lcontext.com/api/cli/install | bash
Then in VS Code with Cline installed:
- Open Cline settings (click gear icon in Cline panel)
- Navigate to MCP Servers section
- Add a new server:
{
"lcontext": {
"command": "lcontext",
"env": {
"LCONTEXT_API_KEY": "your-api-key-here"
}
}
}
Other MCP-Compatible Tools
First, install the binary:
curl -fsSL https://lcontext.com/api/cli/install | bash
Lcontext works with any tool that supports the Model Context Protocol. The general configuration pattern is:
- Command:
lcontext - Environment Variable:
LCONTEXT_API_KEY=your-api-key-here
Refer to your tool's documentation for MCP server configuration.
Alternative Installation Methods
The install script used above (curl -fsSL https://lcontext.com/api/cli/install | bash) is the recommended approach. If you need an alternative:
Manual Download
Download the binary for your platform from the latest release:
| Platform | Binary |
|---|---|
| macOS (Apple Silicon) | lcontext-macos-arm64 |
| macOS (Intel) | lcontext-macos-x64 |
| Linux (x64) | lcontext-linux-x64 |
| Linux (ARM64) | lcontext-linux-arm64 |
| Windows (x64) | lcontext-windows-x64.exe |
Via npm
If you have Node.js installed:
npm install -g lcontext-mcp
From Source
git clone https://github.com/lcontext/lcontext.git
cd lcontext
npm install
npm run build
Available Tools
get_page_context
Get comprehensive analytics context for a page including stats, visitor metrics, Web Vitals (LCP, FCP, FID, CLS), and all interactive elements with their engagement data.
Parameters:
path(required): The page path (e.g.,/products,/checkout)startDate(optional): Start date for stats (ISO format)endDate(optional): End date for stats (ISO format)periodType(optional):dayorweek(default:day)
Example:
Get the analytics context for the /checkout page for the last 7 days
list_pages
List all tracked pages for your app.
Parameters:
limit(optional): Maximum pages to return (default: 50, max: 200)search(optional): Filter by path (e.g.,/product)
Example:
What pages are being tracked on my app?
get_element_context
Get detailed analytics for a specific interactive element by its label or ID.
Parameters:
elementLabel(optional): Element's label text or aria-labelelementId(optional): Element's HTML IDpagePath(optional): Filter by page path
Example:
Show me analytics for the "Add to Cart" button
get_app_context
Get application-wide analytics including sessions, visitors, page views, engagement metrics, device breakdown (mobile/tablet/desktop), top browsers, top OS, Web Vitals (LCP, FCP, FID, CLS), and AI-generated insights.
Parameters:
periodType(optional):dayorweek(default:day)limit(optional): Number of periods to return (default: 7, max: 30)
Example:
Give me an overview of my app's behavioral analytics for the last week
get_visitors
Get a list of visitors with AI-generated profiles, interests, engagement trends, segment assignments, device info (type, browser, OS), and location (city, region, country).
Parameters:
limit(optional): Maximum visitors to return (default: 20, max: 100)offset(optional): Offset for paginationsegmentId(optional): Filter by segment IDsearch(optional): Search in visitor ID, title, summary, interests, goals, action, evidencefirstVisitAfter(optional): Filter by first visit date (ISO format)firstVisitBefore(optional): Filter by first visit date (ISO format)lastVisitAfter(optional): Filter by last visit date (ISO format)lastVisitBefore(optional): Filter by last visit date (ISO format)engagementTrend(optional):increasing,stable, ordecreasingoverallSentiment(optional):positive,negative,neutral, ormixed
Example:
Show me visitors with increasing engagement trend
get_visitor_detail
Get detailed profile and recent sessions for a specific visitor, including device info (type, browser, OS) and location.
Parameters:
visitorId(required): The visitor's unique identifier
Example:
Get the full profile for visitor abc123
get_sessions
Get a list of user sessions with AI-generated summaries, titles, sentiment analysis, and device type.
Parameters:
limit(optional): Maximum sessions to return (default: 20, max: 100)offset(optional): Offset for paginationvisitorId(optional): Filter by visitor IDsentiment(optional):positive,negative, orneutralstartDate(optional): Start date for filtering (ISO format)endDate(optional): End date for filtering (ISO format)search(optional): Search in session title and descriptionminDuration(optional): Minimum session duration in secondsmaxDuration(optional): Maximum session duration in secondsminEventsCount(optional): Minimum number of eventsmaxEventsCount(optional): Maximum number of eventspagePath(optional): Filter sessions that visited a specific page path
Example:
Show me negative sentiment sessions from the last 24 hours
get_session_detail
Get detailed information about a specific session including full event timeline, visitor context, device type, and location (city, region, country).
Parameters:
sessionId(required): The session's numeric ID
Example:
Show me the details of session 12345
get_user_flows
Get automatically detected user journey patterns showing how users navigate through the application. Each flow represents a common page sequence with engagement metrics and drop-off points.
Parameters:
limit(optional): Maximum flows to return (default: 10, max: 50)category(optional): Filter by category:conversion,exploration,onboarding,support,engagement,otherminSessions(optional): Minimum session count for a flow to be includedperiodType(optional):dayfor daily flows,weekfor weekly aggregated flows
Example:
Show me the most common user journeys on my app
get_analysis
Get a pre-computed daily or weekly analysis report. Contains problem areas, funnel health, session findings, and prioritized recommendations — all referencing specific page paths, element IDs, and session IDs you can investigate with other tools.
Parameters:
periodType(optional):dayfor daily report (default),weekfor weekly reportdate(optional): ISO date string for the period start (e.g.,2026-02-23). Defaults to most recent completed analysis.
Example:
Get the latest daily analysis for my app
Prompts
analytics-guide
A comprehensive guide for analyzing user behavior data with Lcontext tools. Includes step-by-step analysis workflows, decision trees for common scenarios (e.g., "this page isn't converting", "performance feels slow"), and a reference table connecting analytics findings to code investigations.
AI agents can request this prompt to get expert-level guidance on how to use the tools effectively.
Updating
The binary includes a self-update command:
lcontext --update
Environment Variables
| Variable | Description | Required |
|---|---|---|
LCONTEXT_API_KEY | Your Lcontext API key | Yes |
LCONTEXT_API_URL | API base URL (default: https://lcontext.com) | No |
Contributing
See CONTRIBUTING.md for development setup and build instructions.
License
MIT - see LICENSE for details.