MCP server that prioritizes product plans by triangulating HelpScout tickets and ProductLift feature requests with PII scrubbing and KPI integration.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Pm Copilot.
synthesize_feedbackCross-references HelpScout tickets, ProductLift feature requests, and Chatbase conversations, returns theme-matched analysis with priority scores.
generate_product_planBuilds a prioritized product plan with evidence and customer quotes. Accepts external business metrics via `kpi_context`.
get_feature_requestsRaw ProductLift data access for browsing feature requests directly. Each request includes its
list_sourcesLists the data sources the server is connected to β HelpScout mailboxes (id + name),
An MCP server that triangulates customer support tickets, feature requests, and AI support agent conversations to help PMs decide what to build next.
Real results: Analyzed 3,353 signals in one 30-day window β 1,678 support tickets, 276 feature requests, and 1,399 AI support agent conversations across 4 products. Top priority: Booking & Scheduling β 285 tickets + 74 feature requests + 347 chats pointing at the same problem, with the AI agent answering with low confidence in 48% of those chats.
The 1,399 chats are the point. None of them were visible to the analysis before v1.4.0, and they are 83% the volume of the ticket channel.
Read the full story: I built an MCP server that changed how I prioritize products β why I built this, how convergent signals work in practice, and what I learned building with Claude Code.
self_serve_failure_rate showing where self-serve is failing.generate_product_plan via kpi_context, and the methodology adjusts priorities accordingly.Claude orchestrates multiple MCP servers. PM Copilot handles qualitative customer signals. Other servers provide quantitative business metrics. The kpi_context parameter is the integration point β no point-to-point integrations required.
HelpScout is required. ProductLift and Chatbase are both optional β configure either, both, or neither, and the analysis adapts.
| Variable | Required | Description |
|---|---|---|
HELPSCOUT_APP_ID | Yes | OAuth app ID from https://secure.helpscout.net/apps/custom/ |
HELPSCOUT_APP_SECRET | Yes | OAuth app secret |
PRODUCTLIFT_PORTALS | No | Multi-portal: name|url|key,name2|url2|key2 |
PRODUCTLIFT_PORTAL_URL | No | Single portal URL |
PRODUCTLIFT_API_KEY | No | Single portal Bearer token |
PRODUCTLIFT_PORTAL_NAME | No | Portal display name (default: default) |
CHATBASE_API_KEY | No | Account-wide secret key from Chatbase β Settings β API keys |
CHATBASE_AGENTS | No | Multi-agent: name|agentId,name2|agentId2 |
CHATBASE_AGENT_ID | No | Single agent id |
CHATBASE_AGENT_NAME | No | Single agent display name (default: default) |
Chatbase API access needs a Chatbase Standard plan or higher. On a lower plan the API returns 403 and the deflection signal is reported as a warning rather than failing the whole analysis. One agent per product is the useful shape β agents give you product-level attribution that a shared support mailbox does not.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Or use the .mcp.json already in the project root β Claude Code picks it up automatically.
synthesize_feedbackCross-references HelpScout tickets, ProductLift feature requests, and Chatbase conversations, returns theme-matched analysis with priority scores.
| Parameter | Type | Default | Description |
|---|---|---|---|
timeframe_days | number | 30 | Days to look back (1-90) |
top_voted_limit | number | 50 | Top-voted requests per portal; recent requests in the timeframe are always included on top |
mailbox_id | string | β | HelpScout mailbox filter (raw ID) |
mailbox_name | string | β | HelpScout mailbox name (case-insensitive); auto-resolved to an ID. Run list_sources to see names |
portal_name | string | β | ProductLift portal filter |
agent_name | string | β | Chatbase agent filter. Run list_sources to see names |
source_filter | string | β | Chatbase conversation source filter, comma-separated for multiple, e.g. Widget or Iframe or WhatsApp,API. Case-insensitive. Run list_sources for the valid values |
detail_level | string | "summary" | "summary", "standard", or "full". Output size scales with data volume β roughly 20KB / 100KB / 600KB |
Returns themes sorted by priority score, each with reactive/proactive counts, convergence flag, evidence summaries, and representative customer quotes.
generate_product_planBuilds a prioritized product plan with evidence and customer quotes. Accepts external business metrics via kpi_context.
| Parameter | Type | Default | Description |
|---|---|---|---|
timeframe_days | number | 30 | Days to look back (1-90) |
top_voted_limit | number | 50 | Top-voted requests per portal; recent requests in the timeframe are always included on top |
mailbox_id | string | β | HelpScout mailbox filter (raw ID) |
mailbox_name | string | β | HelpScout mailbox name (case-insensitive); auto-resolved to an ID. Run list_sources to see names |
portal_name | string | β | ProductLift portal filter |
agent_name | string | β | Chatbase agent filter. Run list_sources to see names |
source_filter | string | β | Chatbase conversation source filter, comma-separated for multiple, e.g. Widget or Iframe or WhatsApp,API. Case-insensitive. Run list_sources for the valid values |
kpi_context | string | β | Business metrics from other MCP servers |
max_priorities | number | 5 | Number of priorities to return (1-10) |
preview_only | boolean | false | Audit mode: show what data would be sent |
detail_level | string | "summary" | "summary", "standard", or "full". Output size scales with data volume β for one 30-day mailbox, roughly 5KB / 21KB / 375KB |
format | string | "json" | "json" (structured, composable) or "markdown" (ready-to-read product brief) |
get_feature_requestsRaw ProductLift data access for browsing feature requests directly. Each request includes its
public url.
| Parameter | Type | Default | Description |
|---|---|---|---|
portal_name | string | β | Filter to a specific portal |
include_comments | boolean | true | Include comments on each request |
status | string | β | Filter to requests with this status (case-insensitive), e.g. open, planned, completed |
list_sourcesLists the data sources the server is connected to β HelpScout mailboxes (id + name),
ProductLift portals (name + url), and Chatbase agents (name + id) β so you can discover the
names to pass to mailbox_name / portal_name / agent_name. When Chatbase is configured it
also returns chatbase_conversation_sources, the values source_filter accepts (a fixed list
from the Chatbase docs, not queried per account). Read-only; never returns API keys or customer
data. Takes no parameters.
Three sources, three different things they tell you. Only the first two feed the convergence rule.
| Class | Source | What it means | Feeds |
|---|---|---|---|
| Reactive | HelpScout tickets | Something is broken | Frequency, severity, convergence |
| Proactive | ProductLift requests | Something is wanted | Frequency, vote momentum, convergence |
| Deflected | Chatbase conversations | Something was asked, and self-serve either handled it or did not | Frequency only |
Deflected signals count toward frequency and carry two evidence fields per theme, but they do not enter the severity or vote-momentum terms and do not change the 2x convergence boost. The formula is unchanged from v2.1:
deflected_count β conversations matching the themeself_serve_failure_rate β share of those conversations where the agent's lowest answer confidence fell below 0.5mean_answer_confidence β mean of that same scoreFactual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/dkships-pm-copilot)<a href="https://allmcps.com/mcp/dkships-pm-copilot"><img src="https://allmcps.com/api/badge/dkships-pm-copilot?style=directory" alt="Pm Copilot on AllMCPs" /></a>