Pendo MCP connector
OAuth 2.1/DCR AnalyticsMonitoringConnect to Pendo MCP to access product analytics, user guidance, and engagement data directly from your AI workflows.
Pendo MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'pendomcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Pendo MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'pendomcp_list_all_applications',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "pendomcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Pendo MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="pendomcp_list_all_applications",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Visitorquery records — Retrieve visitor data and metadata, or count matching visitors
- Visitormetadataschema records — Return the set of metadata fields available for visitors
- Segmentlist records — List all segments in the subscription with their IDs, names, and optional feature flag names
- Searchentities records — Search for product entities such as pages, features, track types, guides, accounts, and segments
- Productengagementscore records — Calculate the Product Engagement Score for an application over a date range, returning adoption, stickiness, and growth metrics
- Productareamemberactivity records — Return all pages, features, or track types in a product area including those with zero activity
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
pendomcp_accountmetadataschema
#
Return the set of metadata fields available for accounts. 2 params
Return the set of metadata fields available for accounts.
subId string required Subscription ID that owns the data. Required for all queries. userQuery string optional The original user query or question that triggered this tool call. pendomcp_accountquery
#
Retrieve account data and metadata, or count matching accounts. 7 params
Retrieve account data and metadata, or count matching accounts.
subId string required Subscription ID that owns the data. Required for all queries. accountId string optional only return data about the specified accountId count boolean optional Set to true to return only the total count of matching records instead of rows. metadataFilter string optional Filter using: metadata.metadataGroup.metadataField == metadataValue. Groups: agent, auto, custom, salesforce. Operators: == != < > <= >=. Combine with && or ||. String values need quotes. Dates: date("YYYY-MM-DD"). e.g. metadata.auto.country == "US" && metadata.custom.plan == "enterprise" segmentId string optional filter the results by the specified segment id. If not provided, no segment filtering is applied. select array optional list of fields to read in addition to the accountId. only exact field names may be used, and should come from the accountMetadataSchema tool userQuery string optional The original user query or question that triggered this tool call. pendomcp_activityquery
#
Query aggregated activity metrics for pages, features, and track types over a date range. 19 params
Query aggregated activity metrics for pages, features, and track types over a date range.
appId string required Application id of the app to query dateRange object required The time period to query. Use 'relative' with lastNDays or 'custom' with explicit dates. entityType string required The entity type to query subId string required Subscription ID that owns the data. Required for all queries. accountId string optional Filter results to a specific account. REQUIRED when the user mentions or references a specific account. Use the exact account ID string count boolean optional Set to true to return only the total count of matching records instead of rows. featureFlag object optional Filter events to those where a feature flag was set. Object: {name, value}. e.g. {"name": "myFlag", "value": true}. Use value:false to filter to events where the flag is not true. frustrationMetrics boolean optional Toggles return of frustration metrics: error click/rage click/u-turn/dead click count group array optional Fields to group results by. e.g. ["featureId"] for per-feature rows, ["visitorId"] for per-visitor rows. Any field in select can be used. historicalMetadataFilter object optional Filter by metadata values at event time (not current). Object: {kind, group, field, op, value}. kind: visitor|account|parentAccount. op: == != < > <= >=. e.g. {"kind":"visitor","group":"agent","field":"email","op":"==","value":"\"user@example.com\""} itemIds array optional The item ids to query limit number optional Maximum number of rows to return. Range: 1-1000. Default: 1000. period string optional Aggregation period: dayRange (default), day, week, month. Controls how date ranges are bucketed in results. productAreaId string optional Scope query to one product area. Mutually exclusive with itemIds. Use listProductAreas to find the ID. segmentId string optional filter the results by the specified segment id. If not provided, no segment filtering is applied. sort array optional The fields to sort by. Prepending the field with a + (ascending) or - (descending) determines the sort direction. userQuery string optional The original user query or question that triggered this tool call. visitorId string optional Filter results to a specific visitor. REQUIRED when the user mentions or references a specific visitor. Use the exact visitor ID string visitorMetadataFilter string optional Filter activity by visitor metadata (current values). e.g. metadata.auto.country == "US" && metadata.custom.plan == "enterprise". Mutually exclusive with segmentId. pendomcp_agent_analytics_key_metrics
#
Return key aggregate metrics for an AI agent's conversations over a date range, with period-over-period comparison. 6 params
Return key aggregate metrics for an AI agent's conversations over a date range, with period-over-period comparison.
agentId string required Required. The AI agent ID to get metrics for (from list_ai_agents). endDate string required Query end date in YYYY-MM-DD format (e.g., '2025-01-31'). Inclusive. startDate string required Query start date in YYYY-MM-DD format (e.g., '2025-01-01'). Inclusive. subId string required Subscription ID that owns the data. Required for all queries. appId string optional Application ID of the app to query (defaults to -323232 if not specified) userQuery string optional The original user query or question that triggered this tool call. pendomcp_ai_agent_issue_analysis
#
Return diagnoses, flagged tool/model usage, and user prompt content for a specific detected issue in an AI agent. 8 params
Return diagnoses, flagged tool/model usage, and user prompt content for a specific detected issue in an AI agent.
agentId string required The AI agent ID (from list_ai_agents). Used to scope the lookup to the correct agent. appId string required Application id of the app to query conversationIds array required List of conversation IDs for the issue cluster (from the list_ai_agent_issues response). endDate string required Query end date in YYYY-MM-DD format (e.g., '2025-01-31'). Inclusive. eventIds array required List of event IDs for the issue cluster (from the list_ai_agent_issues response). These are the agent response event IDs flagged as instances of this issue. startDate string required Query start date in YYYY-MM-DD format (e.g., '2025-01-01'). Inclusive. subId string required Subscription ID that owns the data. Required for all queries. userQuery string optional The original user query or question that triggered this tool call. pendomcp_get_agent_context
#
Fetch a grounding document describing a Pendo product resource so an LLM can answer questions about it. 5 params
Fetch a grounding document describing a Pendo product resource so an LLM can answer questions about it.
resource_id string required Opaque id for that resource type (e.g. when resource_type is 'space', the space id). resource_type string required Which product resource to load context for. Supported values depend on subscription features; currently includes 'space'. subId string required Subscription ID that owns the data. Required for all queries. frame_id string optional When resource_type is "space", limits context to one frame (that canvas item id) and items whose parent is that frame. Omit for full-space context. userQuery string optional The original user query or question that triggered this tool call. pendomcp_guidemetrics
#
Get performance metrics for a single guide over a date range, including reach, views, and completion rates. 7 params
Get performance metrics for a single guide over a date range, including reach, views, and completion rates.
endDate string required Query end date in YYYY-MM-DD format (e.g., '2025-01-31'). Inclusive. guideId string required The exact guide ID to analyze. startDate string required Query start date in YYYY-MM-DD format (e.g., '2025-01-01'). Inclusive. subId string required Subscription ID that owns the data. Required for all queries. blacklist string optional Blacklist behavior: 'apply' (use blacklist, normal behavior), 'ignore' (do not use blacklist), 'only' (invert blacklist, return only blacklisted activity) period string optional Aggregation period: dayRange (default), day, week, month. Controls how date ranges are bucketed in results. userQuery string optional The original user query or question that triggered this tool call. pendomcp_list_ai_agent_issues
#
List detected issues in an AI agent's conversations with instance and conversation counts. 7 params
List detected issues in an AI agent's conversations with instance and conversation counts.
agentId string required Required. The AI agent ID to filter by (from list_ai_agents). Issues are clustered per agent to match the emergent issues table. endDate string required Query end date in YYYY-MM-DD format (e.g., '2025-01-31'). Inclusive. startDate string required Query start date in YYYY-MM-DD format (e.g., '2025-01-01'). Inclusive. subId string required Subscription ID that owns the data. Required for all queries. appId string optional Application ID to filter by. If omitted, returns data across all applications the user can access. limit number optional Maximum number of issue rows to return. Range: 1-500. Default: 100. userQuery string optional The original user query or question that triggered this tool call. pendomcp_list_ai_agents
#
List all AI agents accessible in this subscription with agent IDs, names, and deployment configuration. 2 params
List all AI agents accessible in this subscription with agent IDs, names, and deployment configuration.
subId string required Subscription ID that owns the data. Required for all queries. userQuery string optional The original user query or question that triggered this tool call. pendomcp_list_all_applications
#
List all applications and subscriptions the current user has access to. 1 param
List all applications and subscriptions the current user has access to.
userQuery string optional The original user query or question that triggered this tool call. pendomcp_list_spaces
#
List the Pendo Spaces accessible to the current user. 2 params
List the Pendo Spaces accessible to the current user.
subId string required Subscription ID that owns the data. Required for all queries. userQuery string optional The original user query or question that triggered this tool call. pendomcp_list_use_cases
#
Return conversation clustering analysis for an AI agent, grouped by semantic topic. 5 params
Return conversation clustering analysis for an AI agent, grouped by semantic topic.
agentId string required The AI agent ID to analyze retrieved from the list_ai_agents tool endDate string required Query end date in YYYY-MM-DD format (e.g., '2025-01-31'). Inclusive. startDate string required Query start date in YYYY-MM-DD format (e.g., '2025-01-01'). Inclusive. subId string required Subscription ID that owns the data. Required for all queries. userQuery string optional The original user query or question that triggered this tool call. pendomcp_listguides
#
List, filter, and search in-app guides, or fetch a single guide's full content. 13 params
List, filter, and search in-app guides, or fetch a single guide's full content.
subId string required Subscription ID that owns the data. Required for all queries. activation string optional Filter by launch method: auto (automatic), api (programmatic), badge, dom (element click), embed, launcher (resource center), page (page view), feature (mobile element click), form, track (track event). appId string optional Application ID to filter by. If omitted, returns data across all applications the user can access. expand boolean optional Set to true for detailed guide metadata (steps, polls, scheduling, recurrence, conversion). Does not include guide content text — use guideId for that. expiration string optional Filter guides by expiration status. Values:
"active" — guide has no expiration date or has not yet expired,
"expired" — guide's expiration date is in the past. guideId string optional Fetch a single guide by ID and return its full content (step-by-step text extracted from building blocks). When provided, all filter/pagination params are ignored. guideType string optional Filter by type: banner, tooltip, lightbox, walkthrough, whatsnew, building-block, group, training, launcher, mobile-lightbox. limit number optional Maximum number of results to return. offset number optional Number of matching results to skip before returning. Use with limit to paginate through large result sets. search string optional Search query for guide names/descriptions. Use with searchType. Offset is ignored when search is active — use limit to control result count. searchType string optional Search mode: semantic (natural-language ranked by meaning) or fuzzy (keyword matching on name and description). status string optional Filter guides by state. Values: "public" (live), "staged" (testing), "draft" (in progress), "_pendingReview_" (awaiting review), "disabled" (turned off). userQuery string optional The original user query or question that triggered this tool call. pendomcp_listproductareas
#
List all product areas in the subscription with their IDs, names, and descriptions. 5 params
List all product areas in the subscription with their IDs, names, and descriptions.
subId string required Subscription ID that owns the data. Required for all queries. limit number optional Maximum number of results to return. offset number optional Number of matching results to skip before returning. Use with limit to paginate through large result sets. search string optional Optional fuzzy search string to filter product areas by name or description. When omitted, all product areas are returned. userQuery string optional The original user query or question that triggered this tool call. pendomcp_productareamemberactivity
#
Return all pages, features, or track types in a product area including those with zero activity. 10 params
Return all pages, features, or track types in a product area including those with zero activity.
dateRange object required The time period to query. Use 'relative' with lastNDays or 'custom' with explicit dates. entityType string required The entity type to query. Must be a direct product area type: page, feature, or trackType. productAreaId string required The ID of the product area whose members to return. subId string required Subscription ID that owns the data. Required for all queries. appId string optional Application ID of the app to query (defaults to -323232 if not specified) limit number optional Maximum number of rows to return. Range: 1-1000. Default: 1000. period string optional Aggregation period: dayRange (default), day, week, month. Controls how date ranges are bucketed in results. segmentId string optional filter the results by the specified segment id. If not provided, no segment filtering is applied. sort array optional The fields to sort by. Prepending the field with a + (ascending) or - (descending) determines the sort direction. userQuery string optional The original user query or question that triggered this tool call. pendomcp_productengagementscore
#
Calculate the Product Engagement Score for an application over a date range, returning adoption, stickiness, and growth metrics. 18 params
Calculate the Product Engagement Score for an application over a date range, returning adoption, stickiness, and growth metrics.
appId string required Application id of the app to query endDate string required Query end date in YYYY-MM-DD format (e.g., '2025-01-31'). Inclusive. startDate string required Query start date in YYYY-MM-DD format (e.g., '2025-01-01'). Inclusive. subId string required Subscription ID that owns the data. Required for all queries. accountId string optional Filter results to a specific account. REQUIRED when the user mentions or references a specific account. Use the exact account ID string adoptionUserBase string optional The user base for the adoption score. blacklist string optional Blacklist behavior: 'apply' (use blacklist, normal behavior), 'ignore' (do not use blacklist), 'only' (invert blacklist, return only blacklisted activity) excludeWeekends boolean optional Whether to exclude weekends in the stickiness score calculation. featureIds array optional Array of the featureIds to include in the adoption score calculation. If this, pageIds, and trackEventIds are empty, default core events are included. growthUserBase string optional The user base for the growth score. pageIds array optional Array of the pageIds to include in the adoption score calculation. If this, featureIds, and trackEventIds are empty, default core events are included. scores array optional Array of the scores to return. If empty, only PES is returned segmentId string optional filter the results by the specified segment id. If not provided, no segment filtering is applied. stickinessDenominator string optional The denominator time range for the stickiness score. If denominator is provided, numerator must also be provided. Numerator cannot equal denominator. stickinessNumerator string optional The numerator time range for the stickiness score. If numerator is provided, denominator must also be provided. Numerator cannot equal denominator. stickinessUserBase string optional The user base for the stickiness score. trackEventIds array optional Array of the trackEventIds to include in the adoption score calculation. If this, pageIds, and featureIds are empty, default core events are included. userQuery string optional The original user query or question that triggered this tool call. pendomcp_searchentities
#
Search for product entities such as pages, features, track types, guides, accounts, and segments. 9 params
Search for product entities such as pages, features, track types, guides, accounts, and segments.
appId string required Application id of the app to query itemType array required The types of items to search for. Case-sensitive. subId string required Subscription ID that owns the data. Required for all queries. itemIds array optional Fetch specific entities by ID. Requires exactly one itemType. Cannot be combined with search or search_fallback. limit number optional Return at most this many items for each itemType. search string optional The semantic search query (e.g., "Bridgeway Logistics", "onboarding features"). Use natural phrases, not meta-instructions.
Must always be specified together with search_fallback.
search_fallback array optional Fuzzy fallback search terms. Must be provided together with search for search mode. Not allowed with itemIds. starredItemTypes array optional Return only entities starred by the current user for these types. Combine multiple types in one call (e.g. ["Guide", "SessionRecording"]). userQuery string optional The original user query or question that triggered this tool call. pendomcp_segmentlist
#
List all segments in the subscription with their IDs, names, and optional feature flag names. 3 params
List all segments in the subscription with their IDs, names, and optional feature flag names.
subId string required Subscription ID that owns the data. Required for all queries. substring string optional Only return segments whose name contains this value; matching is case insensitive userQuery string optional The original user query or question that triggered this tool call. pendomcp_visitormetadataschema
#
Return the set of metadata fields available for visitors. 2 params
Return the set of metadata fields available for visitors.
subId string required Subscription ID that owns the data. Required for all queries. userQuery string optional The original user query or question that triggered this tool call. pendomcp_visitorquery
#
Retrieve visitor data and metadata, or count matching visitors. 9 params
Retrieve visitor data and metadata, or count matching visitors.
appId string required Application id of the app to query subId string required Subscription ID that owns the data. Required for all queries. count boolean optional Set to true to return only the total count of matching records instead of rows. limit number optional Number of visitors to return. Only set this if count is false. Defaults to 10000, max of 50000 metadataFilter string optional Filter using: metadata.metadataGroup.metadataField == metadataValue. Groups: agent, auto, custom, salesforce. Operators: == != < > <= >=. Combine with && or ||. String values need quotes. Dates: date("YYYY-MM-DD"). e.g. metadata.auto.country == "US" && metadata.custom.plan == "enterprise" segmentId string optional filter the results by the specified segment id. If not provided, no segment filtering is applied. select array optional list of fields to read in addition to the visitorId. only exact field names may be used, and should come from the visitorMetadataSchema tool userQuery string optional The original user query or question that triggered this tool call. visitorId string optional only return data about the specified visitorId (often formatted as email address)