Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@
"name": "contentsquare-web",
"source": "./plugins/contentsquare-web",
"description": "Install & verify the Contentsquare tracking tag with your AI agent."
},
{
"name": "contentsquare",
"source": "./plugins/contentsquare",
"description": "Query your Contentsquare analytics data directly from Cursor using natural language."
}
]
}
22 changes: 22 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "contentsquare",
"owner": {
"name": "Contentsquare",
"email": "engineering@contentsquare.com"
},
"metadata": {
"description": "Official Contentsquare plugins for AI coding agents"
},
"plugins": [
{
"name": "contentsquare-web",
"source": "plugins/contentsquare-web",
"description": "Install & verify the Contentsquare tracking tag with your AI agent."
},
{
"name": "contentsquare",
"source": "plugins/contentsquare",
"description": "Query your Contentsquare analytics data directly from Cursor using natural language."
}
]
}
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@
# TAG TEAM

**/contentsquare-web*/ @ContentSquare/tag-functions

# MCP TEAM

plugins/contentsquare/* @ContentSquare/mcp-and-a2a
7 changes: 5 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions plugins/contentsquare/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "contentsquare",
"description": "Query your Contentsquare analytics data directly from Cursor using natural language.",
"version": "1.0.0",
"author": {
"name": "Contentsquare",
"email": "engineering@contentsquare.com",
"url": "https://contentsquare.com"
},
"homepage": "https://support.contentsquare.com/hc/en-us/articles/41563169756945-Model-Context-Protocol-MCP",
"repository": "https://github.com/ContentSquare/skills",
"license": "MIT",
"keywords": [
"contentsquare",
"analytics",
"journey",
"impact",
"funnel",
"mcp"
],
"logo": "assets/logo.png"
}
13 changes: 13 additions & 0 deletions plugins/contentsquare/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "contentsquare",
"description": "Query your Contentsquare analytics data directly from Cursor using natural language.",
"version": "1.0.0",
"author": {
"name": "Contentsquare",
"email": "engineering@contentsquare.com"
},
"homepage": "https://support.contentsquare.com/hc/en-us/articles/41563169756945-Model-Context-Protocol-MCP",
"repository": "https://github.com/ContentSquare/skills",
"keywords": ["contentsquare", "analytics", "journey", "impact", "funnel", "ux", "metrics", "errors", "mcp"],
"logo": "assets/logo.png"
}
89 changes: 89 additions & 0 deletions plugins/contentsquare/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Contentsquare MCP for Cursor

Query your Contentsquare analytics data directly from Cursor using natural language. Ask questions about user journeys, conversion funnels, error impact, and page performance without leaving your editor.

## Prerequisites

- A Contentsquare account with admin access
- Cursor IDE with MCP support enabled

## Installation

Install this plugin from the [Cursor marketplace](https://cursor.com/marketplace) by searching for **contentsquare**, or add it directly from this repository URL.

Once installed, Cursor will prompt you to authenticate with your Contentsquare account via OAuth. No manual token management required.

## Authentication

This plugin connects to the Contentsquare MCP server at `https://api.contentsquare.com/mcp` using OAuth 2.1 with PKCE. Cursor handles the authentication flow automatically when you first invoke a tool.

You will need:
- A Contentsquare account
- Admin-level access to at least one project

## Available tools

The Contentsquare MCP server exposes two experiences. When authenticating, you select which one to use - this determines which set of tools is available.

### CSQ XP

A unified experience combining Contentsquare and Heap analytics into a single entry point.

| Tool | Description |
|------|-------------|
| `listHierarchy` | List available master projects, environments, and data sources |
| `runAnalysis` | Run any analysis - journey, funnel, impact, page comparison, or metrics |
| `getDefinedEvents` | List custom interaction events defined in your project |
| `getTransactionEvent` | Retrieve the built-in transaction event for e-commerce analysis |

### Legacy

The original experience with dedicated tools per analysis type.

| Tool | Description |
|------|-------------|
| `listProjects` | List accessible Contentsquare projects |
| `computeJourney` | Analyze user navigation paths through your site |
| `computeFunnel` | Compute conversion funnel metrics step by step |
| `computeImpact` | Measure the revenue and conversion impact of page issues |
| `computePageComparison` | Compare metrics across multiple page groups side by side |
| `computeSiteMetrics` | Retrieve overall site-level metrics |
| `computePageGroupMetrics` | Retrieve metrics for a specific page group |
| `getTopErrorsBySessionsWithErrors` | Find pages with the most user sessions containing errors |
| `getTopErrorsByImpactOnGoal` | Find errors with the highest impact on conversion goals |
| `getTopErrorsByMissedOpportunity` | Find errors causing the most missed revenue opportunity |
| `getTopPageGroupsByLostConversions` | Identify page groups with the most lost conversions |
| `getTopPagesBySessionsWithErrors` | List pages ranked by error session count |
| `searchGoals` | Search for conversion goals by name |
| `recommendGoals` | Get goal recommendations based on your recent activity |

### Both experiences

These tools are available regardless of which experience you select.

| Tool | Description |
|------|-------------|
| `searchMappings` | Search for URL mappings by name or keyword |
| `recommendMappings` | Get mapping recommendations based on your recent activity |
| `searchSegments` | Search for audience segments by name |
| `recommendSegments` | Get segment recommendations based on your recent activity |
| `getPageGroupsForMapping` | List all page groups for a given mapping |
| `recommendPageGroups` | Get page group recommendations based on your recent activity |
| `submitMcpFeedback` | Submit feedback about the MCP experience |

## Example prompts

- "Show me the top 5 pages where users are dropping off in my checkout funnel"
- "What errors are causing the most missed revenue on the product page?"
- "Compare conversion rates between the old and new homepage designs"
- "Analyze the journey users take after landing on the pricing page"
- "Which page groups have the highest frustration score this week?"

## Documentation

Full documentation is available at [support.contentsquare.com](https://support.contentsquare.com/hc/en-us/articles/41563169756945-Model-Context-Protocol-MCP).

## Support

- Documentation: [Model Context Protocol (MCP)](https://support.contentsquare.com/hc/en-us/articles/41563169756945-Model-Context-Protocol-MCP)
- Support: [engineering@contentsquare.com](mailto:engineering@contentsquare.com)
Binary file added plugins/contentsquare/assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions plugins/contentsquare/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"mcpServers": {
"contentsquare": {
"url": "https://api.contentsquare.com/mcp"
}
}
}