为什么 Product Insights 应该在你的 IDE 中
Source: Dev.to
你已经调试支付处理边缘案例三个小时了。打开了六个标签页:编辑器、Stripe 仪表盘、APM 工具、相关的 GitHub issue。然后你的 PM 在 Slack 上给你发消息:
“嘿,发布那个修复之前,能不能检查一下用户是否也在报告重试逻辑失败?”
现在你需要第七个标签页——每季度登录两次的产品反馈仪表盘。
你浏览了一遍,找不到合适的过滤器,放弃了,回复说:“我只会修复我在日志里能看到的东西。” 修复上线了。它解决了监控捕获的症状,却没有解决上个月 40 位客户报告的另外三个相关问题。
这就是 上下文切换成本。不是打开新标签页的五秒钟,而是因为摩擦稍大就被跳过的、你从未去查找的信息。
产品反馈孤岛的问题
在大多数 SaaS 团队中,产品反馈与应该解决这些问题的代码完全处于不同的宇宙。PM(产品经理)把它们汇总在电子表格、Productboard 或 Notion 中。工程师得到的是一个精炼版——一个 Jira 任务,写着 “用户在结账时遇到困难”,却没有关于有多少用户、具体哪些流程或他们实际说了什么的信号。
这种交接本身就会丢失信息。PM 阅读 200 条反馈,将其综合成一段任务描述,工程师则根据该摘要进行实现。原始信号——客户使用的确切语言、严重程度分布、相关投诉——被压缩掉了。
这 不是人际问题。它是一个 架构问题。反馈数据和开发环境是脱节的系统。只要能够在不打断工作流的情况下获取产品洞察,工程师就会使用它们,只是他们从未真正得到过。
如果反馈主动找上你?
思考一下你使用语言服务器的方式。你不会打开另一个应用程序去检查类型定义。只需将鼠标悬停在符号上,信息就会出现。之所以能看到这些数据,是因为工具把它带到了你的上下文中。
产品情报也应该以同样的方式工作。当你准备重构 onboarding 流程时,你应该能够在编辑器中直接提问——
What are users saying about onboarding?并在几秒钟内得到结构化的答案。不是 Slack 讨论,也不是仪表盘链接,而是内联的、真实数据的响应。
这并非假设。Model Context Protocol 已经让它在今天成为可能。
MCP 作为桥梁
如果您使用过 Claude Code、Cursor 或 GitHub Copilot 在 VS Code 中的功能,您已经在与能够调用外部工具的 AI 助手交互。Model Context Protocol(MCP)是一项开放标准,定义了这些 AI 助手如何发现并调用外部服务器提供的工具。
架构非常简单:MCP 服务器是一个轻量级进程,通过 stdio 或 HTTP 暴露一组带类型的工具定义。您 IDE 中的 AI 助手会发现这些工具,当查询匹配某个工具的用途时,它会调用该工具并将结果整合到自己的响应中。
这对产品情报非常重要,因为它消除了集成鸿沟。无需为每个 IDE 构建定制的 VS Code 扩展和专属 UI,MCP 服务器即可暴露结构化数据,任何兼容 MCP 的 AI 助手都能直接使用。一个服务器,适用于所有 IDE。
具体示例:实际效果
ProductSights 提供一个 MCP 服务器,将你的产品反馈数据以工具调用的形式公开。下面是工具及示例响应。
搜索特定功能的洞察
> search_insights("checkout crashes"){
"results": [
{
"summary": "Checkout page crashes on Safari 17.2 when applying discount code",
"category": "Bug Report",
"sentiment": "negative",
"priority": 87,
"source": "Intercom",
"date": "2026-03-19",
"companies": ["Acme Corp", "Northwind"]
},
{
"summary": "Crash during checkout when switching payment methods on mobile",
"category": "Bug Report",
"sentiment": "negative",
"priority": 79,
"source": "Zendesk",
"date": "2026-03-17",
"companies": ["Contoso"]
}
],
"total": 12
}十二条报告,而不是错误追踪器捕获的两条。现在你在编写修复之前就能了解问题的范围。
获取全产品的主要问题
> get_top_problems(){
"clusters": [
{
"title": "Checkout crashes on Safari and mobile browsers",
"insightCount": 34,
"companiesAffected": 18,
"avgPriority": 82,
"trend": "increasing",
"status": "investigating"
},
{
"title": "Onboarding wizard skips step 3 intermittently",
"insightCount": 21,
"companiesAffected": 12,
"avgPriority": 74,
"trend": "stable",
"status": "proposed"
},
{
"title": "CSV export times out for large datasets",
"insightCount": 15,
"companiesAffected": 9,
"avgPriority": 68,
"trend": "decreasing",
"status": "accepted"
}
]
}ProductSights 使用向量嵌入自动将相似反馈聚类。每个集群代表一个独立的问题,并统计了有多少客户报告了该问题。这正是你的产品经理在仪表盘中查看的数据,现在可以直接在编辑器中内联使用。
查看统计信息
> get_insight_stats(){
"totalInsights": 1847,
"thisWeek": 93,
"topCategory": "Bug Report",
"avgSentiment": -0.32,
"topSource": "Intercom"
}通过 MCP 将产品洞察直接带入 IDE,工程师可以保持工作流的连贯性,做出基于数据的决策,并交付真正解决客户痛点的方案。
查找与功能区域相关的反馈
> find_related_insights("onboarding"){
"results": [
{
"summary": "New onboarding flow is great but skips team invitation step",
"category": "UX Issue",
"sentiment": "neutral",
"priority": 61
},
{
"summary": "Would love a guided product tour after onboarding",
"category": "Feature Request",
"sentiment": "positive",
"priority": 55
},
{
"summary": "Onboarding email sequence doesn't mention API key setup",
"category": "Feature Request",
"sentiment": "neutral",
"priority": 48
}
],
"total": 8
}获取最新的来访反馈
> get_recent_insights()返回最近的洞察,可选类别、情感和日期过滤器。可用于在站会前快速检查“今天有什么新进展”。
Real workflow scenarios
Before a sprint: scoping with signal
You are picking up a ticket to re‑work the settings‑page navigation. Before writing code, you ask your AI assistant:
“查找关于设置页面的相关洞察”
The MCP server returns 14 pieces of feedback:
- 7 mention confusion about finding billing settings.
- 3 mention the notification preferences being buried.
- 2 are about settings not persisting on mobile.
Now you know which part of “re‑work settings navigation” actually matters to users and can scope accordingly. Your PM didn’t have to distill this for you – you pulled the raw signal yourself.
During debugging: confirming the blast radius
You find a race condition in the webhook handler. Before deciding whether this is a quick fix or a P1, you ask:
“搜索关于 webhook 失败的洞察”
Result: 23 reports from 11 companies, trend increasing. That changes your priority call. You flag it in your PR description with the actual numbers.
In PR review: validating impact
A teammate submits a PR that refactors the CSV export. You want to know if this addresses real user pain:
“获取与 CSV 导出相关的主要问题”
Result: 15 reports about export timeouts. The PR adds pagination to the export query, enriching the review context.
如何设置
安装大约需要两分钟。
1. 获取 API 密钥
在 ProductSights 仪表盘,前往 Settings > API Keys,创建一个密钥并复制它。
2. 配置你的 IDE
Claude Code (~/.claude/claude_code_config.json)
{
"mcpServers": {
"productsights": {
"command": "npx",
"args": ["@productsights/mcp-server"],
"env": {
"PRODUCTSIGHTS_API_KEY": "ps_your_key_here"
}
}
}
}Cursor (.cursor/mcp.json in your project root)
{
"mcpServers": {
"productsights": {
"command": "npx",
"args": ["@productsights/mcp-server"],
"env": {
"PRODUCTSIGHTS_API_KEY": "ps_your_key_here"
}
}
}
}VS Code (.vscode/settings.json)
{
"mcp": {
"servers": {
"productsights": {
"command": "npx",
"args": ["@productsights/mcp-server"],
"env": {
"PRODUCTSIGHTS_API_KEY": "ps_your_key_here"
}
}
}
}
}3. 开始使用
连接后,你的 AI 助手会自动发现可用的工具。用自然语言提问关于产品反馈的问题,助手会调用相应的 MCP 工具。
无需学习新的 UI。无需保持仪表盘打开。数据通过你已经在使用的对话界面流动。
这对 PM‑工程协作的意义
传统的反馈循环是:
- 用户报告问题。
- 支持团队记录这些问题。
- PM 进行分流并汇总。
- PM 编写工单。
- 工程师根据工单实现。
每一次交接都会压缩信息。
在 IDE 中直接获取产品洞察,工程师可以直接拉取原始信号。这 并不会取代 PM ——它改变了协作模式。PM 仍然负责设定优先级并拥有路线图,但工程师可以独立验证假设,检查 bug 修复是否针对问题最常被报告的变体,并将信号反馈回来(例如,“我在调试时发现了 23 条关于此问题的报告;我们是否需要升级?”)。
能够交付正确产品的团队,是那些 所有人——不仅仅是 PM——都能获取用户反馈的团队。将这些数据引入 IDE 是实现这一目标摩擦最小的方式。
ProductSights clusters 会使用向量嵌入自动对反馈进行分组,跟踪从提案到发布的执行状态,并衡量前后影响。MCP 服务器是从你的开发环境读取所有这些信息的入口。
Try it
npx @productsights/mcp-serverFull docs: ProductSights MCP Server documentation
如果您已经在使用 AI 编码助手,只需添加一个配置块即可加入产品智能。您产品经理手动传达给您的反馈,现在只需一个问题即可获取。