pendo-mcp
A comprehensive MCP server that provides AI assistants with powerful access to Pendo analytics through 15 specialized tools, transforming natural language questions into deep product insights.
README
Pendo MCP Server š
A comprehensive Model Context Protocol (MCP) server that provides AI assistants with powerful access to Pendo analytics through 15 specialized tools. Transform natural language questions into deep product insights with intelligent fallback strategies and LLM-optimized responses.
⨠Key Features
- š§ 15 Comprehensive Tools - Complete analytics toolkit organized by business function
- š§ Intelligent Fallbacks - Never dead-end; always provides actionable insights
- š Tool Chaining - Complex business intelligence through natural tool composition
- š LLM-Optimized Output - Responses formatted specifically for AI consumption
- ā” Universal Segment Support - Filter any analysis by user segments
- šÆ Zero Required Parameters - All tools work out-of-the-box with sensible defaults
š Tool Categories
šÆ Product Discovery (3 tools)
search_pages- Find and analyze page usage with optional metricssearch_features- Discover feature adoption and click patternssearch_track_events- Analyze custom event tracking data
š„ People Insights (5 tools)
get_visitor_details- Deep visitor profiles with activity historysearch_visitors- Find users by metadata, activity, and segmentsget_account_details- Account analysis with visitor metricssearch_accounts- Advanced account discovery and filteringanalyze_segments- Multi-purpose segment analysis and exports
š Behavioral Analytics (6 tools)
analyze_usage- Activity patterns with intelligent fallbacks āanalyze_feature_adoption- Adoption rates and usage trendsanalyze_retention- User stickiness and churn analysisanalyze_funnels- Multi-step conversion trackinganalyze_user_paths- Navigation pattern discoverycalculate_product_engagement- PES scoring and engagement metrics
š¬ Feedback (1 tool)
analyze_nps_feedback- NPS scoring with sentiment analysis
š Quick Start
1. Installation
# Clone the repository
git clone https://github.com/AsherJN/pendo-mcp.git
cd pendo-mcp
# Install dependencies
pip install -r requirements.txt
2. Configuration
Create a .env file with your Pendo Integration Key:
PENDO_INTEGRATION_KEY=your_integration_key_here
3. Claude Desktop Setup
Add this configuration to your Claude Desktop MCP settings:
{
"mcpServers": {
"pendo": {
"command": "python3",
"args": ["/path/to/pendo-mcp/pendo_mcp_server.py"],
"env": {
"PENDO_INTEGRATION_KEY": "your_integration_key_here"
}
}
}
}
4. Test the Connection
# Test server functionality
python test_server.py
š” Usage Examples
Basic Analytics Query
"Show me the top pages by traffic in the last 30 days"
ā Uses: search_pages(include_metrics=True, limit=10)
Complex Business Intelligence
"What's the user engagement health of our platform?"
ā Tool Chain:
1. search_pages(include_metrics=True) - Discover key pages
2. analyze_feature_adoption(days_back=30) - Check feature usage
3. calculate_product_engagement() - Overall PES score
4. analyze_retention(period_type="weekly") - Stickiness metrics
Intelligent Fallback Example
Query: analyze_usage(days_back=30, group_by="week")
ā Broad usage data unavailable.
š **Fallback Analysis - Feature Usage:**
Feature Activity Found - 'Alarm Acknowledge Button': 245 clicks from 23 users
š” **Tip**: For detailed feature analysis, try: analyze_feature_adoption()
š§ Tool Reference
Product Discovery Tools
search_pages
Search and analyze page usage with consolidated metrics.
Parameters:
page_id(optional) - Specific page ID to retrievename_contains(optional) - Filter by page name textinclude_metrics(optional) - Include usage metrics (default: False)limit(optional) - Max results (default: 100)
Example:
search_pages(name_contains="dashboard", include_metrics=True, limit=5)
search_features
Discover feature engagement and click patterns.
Parameters:
feature_id(optional) - Specific feature IDname_contains(optional) - Filter by feature nameinclude_metrics(optional) - Include click metrics (default: False)limit(optional) - Max results (default: 100)
search_track_events
Analyze custom event tracking data.
Parameters:
event_name(optional) - Specific event name filtervisitor_id(optional) - Filter by visitordays_back(optional) - Analysis period (default: 7, max: 90)limit(optional) - Max results (default: 100)
People Insights Tools
get_visitor_details
Get comprehensive visitor information and activity.
Parameters:
visitor_id(required) - The Pendo visitor IDinclude_history(optional) - Recent activity history (default: False)include_events(optional) - Event summary (default: False)
search_visitors
Advanced visitor discovery and filtering.
Parameters:
account_id(optional) - Filter by accountsegment_id(optional) - Filter by segmentmetadata_filter(optional) - Custom metadata filteractive_since(optional) - Only visitors active in last N dayslimit(optional) - Max results (default: 100)
get_account_details
Comprehensive account analysis with metrics.
Parameters:
account_id(required) - The Pendo account IDinclude_visitors(optional) - List of visitors (default: False)include_metrics(optional) - Activity metrics (default: False)
search_accounts
Advanced account search with segment support.
Parameters:
metadata_filter(optional) - Custom metadata filtersegment_id(optional) - Filter by segmentmin_visitors(optional) - Minimum visitor countactive_since(optional) - Activity recency filterlimit(optional) - Max results (default: 100)
analyze_segments
Multi-purpose segment analysis tool.
Parameters:
action(required) - 'list', 'details', 'check', or 'export'segment_id(optional) - Required for details/check/exportvisitor_id(optional) - For membership checkaccount_id(optional) - For membership check
Behavioral Analytics Tools
analyze_usage ā
Activity patterns with intelligent fallback strategies.
Parameters:
segment_id(optional) - Segment filtervisitor_id(optional) - Visitor filterdays_back(optional) - Analysis period (default: 30, max: 90)group_by(optional) - 'day', 'week', or 'month' (default: 'day')metric_type(optional) - 'events', 'sessions', or 'time' (default: 'events')
Special Feature: Automatic fallback strategies provide alternative insights when primary queries fail.
analyze_feature_adoption
Track feature and page adoption with time series.
Parameters:
feature_ids(optional) - List of feature IDs to analyzepage_ids(optional) - List of page IDs to analyzesegment_id(optional) - Segment filterdays_back(optional) - Analysis period (default: 30)group_by(optional) - 'total', 'day', or 'week' (default: 'total')
analyze_retention
User and account stickiness analysis.
Parameters:
segment_id(optional) - Segment filtercohort_date(optional) - Start date (YYYY-MM-DD format)period_type(optional) - 'daily', 'weekly', or 'monthly' (default: 'weekly')group_by(optional) - 'visitor' or 'account' (default: 'visitor')
analyze_funnels
Multi-step conversion analysis.
Parameters:
steps(required) - List of page/feature IDs representing funnel stepssegment_id(optional) - Segment filterdays_back(optional) - Analysis period (default: 30)group_by(optional) - 'total' or 'day' (default: 'total')
analyze_user_paths
Navigation pattern discovery.
Parameters:
start_page(optional) - Starting page IDend_page(optional) - Ending page IDsegment_id(optional) - Segment filtermax_steps(optional) - Maximum path length (default: 5)days_back(optional) - Analysis period (default: 7)
calculate_product_engagement
Product Engagement Score (PES) calculation.
Parameters:
segment_id(optional) - Segment filterfeatures_list(optional) - List of feature IDs to includedays_back(optional) - Analysis period (default: 30)group_by(optional) - 'total' or 'account' (default: 'total')
Feedback Tools
analyze_nps_feedback
NPS scoring and sentiment analysis.
Parameters:
segment_id(optional) - Segment filterpoll_id(optional) - Specific poll IDdays_back(optional) - Analysis period (default: 30)group_by(optional) - 'total', 'day', or 'account' (default: 'total')
šÆ Advanced Features
Intelligent Fallback Strategies
When primary analytics queries fail, the system automatically tries alternative approaches:
- Primary Strategy - Original aggregation query
- Fallback Strategy 1 - Feature usage analysis
- Fallback Strategy 2 - Page activity analysis
- Fallback Strategy 3 - Basic visitor activity
- Final Fallback - Comprehensive help with tool suggestions
Tool Chaining Patterns
Discovery ā Analysis
search_pages(name_contains="checkout") ā get page_id
analyze_feature_adoption(page_ids=[page_id], segment_id=X)
Segment-Driven Analysis
analyze_segments(action="list") ā select segment_id
analyze_retention(segment_id=segment_id, period_type="weekly")
Funnel Analysis Chain
search_pages() ā identify key pages
analyze_funnels(steps=[signup_page, activation_page, purchase_page])
Universal Design Principles
- Verb-based naming - Clear action-oriented tool names
- Progressive refinement - Start broad, narrow with parameters
- Universal segment support - segment_id works everywhere
- Minimal required params - Most tools work with no parameters
- Consistent patterns - Similar parameter structures across tools
š ļø Development
Project Structure
pendo-mcp/
āāā pendo_mcp_server.py # Main MCP server implementation
āāā test_server.py # Server validation tests
āāā requirements.txt # Python dependencies
āāā .env # Environment configuration
āāā FALLBACK_IMPLEMENTATION.md # Fallback strategy docs
āāā memory-bank/ # Project documentation
āāā high_priority_task.md
āāā projectbrief.md
āāā progress.md
Testing
# Test server functionality
python test_server.py
# Test with real queries
python -c "
import asyncio
from pendo_mcp_server import search_pages
result = asyncio.run(search_pages(limit=5, include_metrics=True))
print(result)
"
Contributing
- Fork the repository
- Create a feature branch
- Test your changes thoroughly
- Submit a pull request with clear description
š Security & Best Practices
- API Key Security - Store integration keys in environment variables only
- Read-Only Access - Server only performs GET operations and aggregations
- Rate Limiting - Respects Pendo API rate limits
- Error Handling - Comprehensive error handling with helpful messages
- Logging - All logs to stderr to avoid STDIO conflicts
ā Troubleshooting
Common Issues
"PENDO_INTEGRATION_KEY not found"
- Ensure your
.envfile exists and contains the integration key - Check Claude Desktop MCP configuration includes the environment variable
"Unable to fetch data from Pendo API"
- Verify your integration key has appropriate permissions
- Check Pendo API status and rate limits
- Try more specific queries with filters
"No data found" responses
- Use intelligent fallback suggestions provided in error messages
- Try different time ranges or filters
- Check if data exists in Pendo UI for comparison
Getting Help
- Review tool documentation and parameter options
- Check the FALLBACK_IMPLEMENTATION.md for fallback strategies
- Test individual tools with simple parameters first
- Use the analyze_segments tool to understand available segments
š Recent Enhancements
Version 2.0 - Intelligent Analytics Platform
- ā Complete 15-Tool Architecture - Comprehensive analytics coverage
- ā Intelligent Fallback Strategies - Never fail silently, always provide value
- ā Tool Consolidation - Unified search tools with optional detailed metrics
- ā Enhanced Error Handling - Context-aware suggestions for alternative queries
- ā LLM-Optimized Output - Formatted specifically for AI consumption
- ā Universal Segment Support - Consistent filtering across all analytics tools
Performance Improvements
- Reduced API calls through intelligent caching
- Optimized aggregation queries for faster responses
- Enhanced timeout handling for complex analytics
- Better handling of large result sets
š License
This project is licensed under the MIT License - see the LICENSE file for details.
š¤ Acknowledgments
- Model Context Protocol for the MCP framework
- Pendo for the comprehensive analytics API
- FastMCP for the server framework
- The Claude AI team for MCP integration support
Transform your Pendo analytics into AI-powered business intelligence with natural language queries and intelligent insights. š
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.