pm-copilot

pm-copilot

Product management copilot that connects Claude to HelpScout support tickets and ProductLift feature requests. Synthesizes customer feedback across sources, scores themes by convergence, and generates prioritized product plans.

Category
访问服务器

README

PM Copilot

An MCP server that triangulates customer support tickets and feature requests to help PMs decide what to build next.

TypeScript License: MIT MCP SDK Node.js


Real results: Analyzed 2,370 signals (2,136 support tickets + 234 feature requests) across 3 products in 55 seconds. Identified 16 themes, 15 convergent. Top priority: Booking & Scheduling (score: 134.6) — 629 tickets + 77 feature requests pointing at the same problem.


What Makes This Different

  • Signal triangulation — Not just data access. Matches support tickets against feature requests to find convergent themes, then scores them with a weighted formula that gives convergent signals a 2x priority boost.
  • Composability — Designed to work with other MCP servers. Pass churn data from Metabase or traffic trends from Google Analytics into generate_product_plan via kpi_context, and the methodology adjusts priorities accordingly.
  • PM methodology built in — Opinionated scoring based on 7 years of real product management across 9 products and 1M+ users. Not a generic framework — an actual decision-making process exposed as an MCP resource.
  • PII scrubbing — Customer data never reaches the LLM unfiltered. SSNs, credit cards (Luhn-validated), emails, and phone numbers are redacted before analysis. Agent responses are filtered out of quotes.

Architecture

graph TD
    A[Claude Desktop / Code] -->|stdio| B[pm-copilot]
    A -->|stdio| C[Metabase MCP]
    A -->|stdio| D[Google Analytics MCP]
    B -->|Qualitative| E[HelpScout: tickets]
    B -->|Qualitative| F[ProductLift: feature requests]
    C -->|Quantitative| G[Conversion, Churn, Revenue]
    D -->|Acquisition| H[Traffic, Channels, Trends]
    B -.->|kpi_context| A

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.

Quick Start

git clone https://github.com/dkships/pm-copilot.git
cd pm-copilot
npm install
cp .env.example .env   # Edit with your credentials
npm run build

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pm-copilot": {
      "command": "node",
      "args": ["/absolute/path/to/pm-copilot/dist/index.js"]
    }
  }
}

Claude Code

claude mcp add pm-copilot -- node /absolute/path/to/pm-copilot/dist/index.js

Or use the .mcp.json already in the project root — Claude Code picks it up automatically.

Tools

synthesize_feedback

Cross-references HelpScout tickets and ProductLift feature requests, 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 Max feature requests by vote count
mailbox_id string HelpScout mailbox filter
portal_name string ProductLift portal filter
detail_level string "summary" "summary" (~19KB), "standard" (~68KB), or "full" (~563KB)

Returns themes sorted by priority score, each with reactive/proactive counts, convergence flag, evidence summaries, and representative customer quotes.

generate_product_plan

Builds 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 Max feature requests by vote count
mailbox_id string HelpScout mailbox filter
portal_name string ProductLift portal filter
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" (~7KB), "standard" (~21KB), or "full" (~584KB)

get_feature_requests

Raw ProductLift data access for browsing feature requests directly.

Parameter Type Default Description
portal_name string Filter to a specific portal
include_comments boolean true Include comments on each request

Composability in Action

PM Copilot is designed to work alongside other MCP servers. Here's a real example using live data from 3 AppSumo Originals products.

Step 1: The PM asks a single question

Pull our churn and booking completion data, then use pm-copilot to create a product plan using all of that context.

Step 2: pm-copilot analyzes 10,424 signals and returns the top priorities

# Theme Score Tickets Feature Requests Signal
1 Billing & Payment 91.1 2,336 20 Convergent
2 Booking & Scheduling 87.1 682 74 Convergent
3 Account & Licensing 69.7 1,955 8 Convergent
4 Team & Collaboration 64.4 1,875 19 Convergent
5 Whitelabel & Branding 50.2 92 30 Convergent

Step 3: Business metrics from dashboards arrive as kpi_context

TidyCal: booking completion rate dropped from 74% to 66% over last
30 days. Monthly churn increased from 3.1% to 4.2%. Organic traffic
up 22% MoM. BreezeDoc: document completion rate steady at 81%.
Churn flat at 2.8%.

Step 4: Claude synthesizes both — and overrides the formula

The scores say Billing & Payment is #1. But the methodology says churn data overrides the formula. With TidyCal's booking completion dropping 8 points and churn spiking 35%, Booking & Scheduling becomes the real #1 — it's the core product breaking.

BreezeDoc deprioritized (stable metrics, no fire). TidyCal's 22% organic traffic growth elevates Whitelabel & Branding as a growth play.

The server provides the signal ranking. KPI context provides the override judgment. Claude synthesizes both.

Methodology

PM Copilot exposes a pm-copilot://methodology resource — David Kelly's actual product planning framework built over 7 years of launching 9 products to 1M+ users at AppSumo Originals.

Key principles:

  • The 5% rule — You complete ~5% of what customers ask for each month. The framework identifies which 5% matters most.
  • Convergent signals always win — Same theme in both support tickets AND feature requests = highest confidence signal.
  • Reactive > proactive — Broken stuff drives churn. You can survive not having a feature; you can't survive errors.
  • Business metrics override the formula — Rising churn, dropping conversion, or revenue impact can change everything.

The methodology is versioned (v2.0) and served as markdown content via the MCP resource protocol. Claude references it automatically when using generate_product_plan.

Security

Customer data flows through PM Copilot on its way to Claude. All text is scrubbed before it enters the analysis pipeline or leaves the server.

PII scrubbing

Category Method Replacement
SSNs Pattern match (XXX-XX-XXXX) [SSN REDACTED]
Credit cards 13-19 digit sequences + Luhn validation [CREDIT CARD REDACTED]
Email addresses Standard email pattern [EMAIL REDACTED]
Phone numbers US formats (+1, parens, dashes, dots) [PHONE REDACTED]
Customer email field Always redacted [REDACTED]

What we exclude entirely

Data Why
Agent/admin responses Only customer voice matters; agent replies could leak internal process
Internal HelpScout notes May contain credentials, workarounds, internal discussions
Attachments Could contain screenshots with PII, invoices, medical documents
Voter identities Vote counts are sufficient; individual identity adds no PM value

Audit controls

  • preview_only: true on generate_product_plan shows what data would be sent without fetching it
  • Every response includes pii_scrubbing_applied and pii_categories_redacted metadata
  • Data categories logged to stderr on each call (categories only, never content)

Development

npm install          # Install dependencies
npm run build        # Compile TypeScript
npm run dev          # Watch mode
npm start            # Run the server

Theme configuration

themes.config.json in the project root defines what themes to look for. Edit without rebuilding — loaded at runtime.

Ships with 16 data-driven themes across 9 categories. Add your own by appending to the themes array. Unmatched data points are analyzed for emerging patterns using bigram/trigram frequency detection.

Scoring formula

priority = (frequency × 0.35 + severity × 0.35 + vote_momentum × 0.30) × convergence_boost
  • Frequency (0.35): Count of data points, normalized across themes
  • Severity (0.35): Reactive signals only — thread depth, recency (7-day half-life decay), tag boosts
  • Vote momentum (0.30): Proactive signals only — 80% votes + 20% comments
  • Convergence (2x): Applied when a theme has both reactive and proactive signals

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Ensure npm run build succeeds with no errors
  4. Follow existing patterns: tools use registerTool, API clients get their own module, PII scrubbing happens at the format layer
  5. Open a pull request

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选