
最近在尝试将会议记录自动化整理时发现了一个痛点会议录音或笔记的整理工作繁琐耗时而AI助手虽然强大却需要手动复制粘贴内容流程割裂。Wispr Flow推出的Notetaker功能恰好解决了这个问题它能将会议记录无缝、自动地发送到Claude进行分析和总结极大地提升了知识管理和团队协作的效率。本文将为你详细拆解Wispr Flow Notetaker的完整使用流程从核心概念、环境搭建、配置连接到实战应用并深入探讨其背后的MCP协议原理让你不仅能快速上手还能理解其技术架构打造属于自己的AI工作流。1. 背景与核心概念什么是Wispr Flow与Notetaker在深入实操之前我们有必要厘清几个核心概念这有助于理解整个工具链的定位和价值。Wispr Flow是一个专注于提升个人与团队生产力的自动化工作流平台。你可以将它理解为一个更智能、更专注于特定场景如会议、阅读、写作的“IFTTT”或“Zapier”。它通过连接不同的应用和服务在特定事件触发时自动执行一系列操作从而减少重复性劳动。Notetaker是Wispr Flow平台上的一个具体功能或“技能”。它的核心职责是充当一个智能的会议记录中转站。它能够捕获你在其他应用如Zoom、Teams、甚至本地录音软件中产生的会议音频、转录文本或笔记并按照预设的规则自动将其发送至指定的AI助手进行处理。Claude是由Anthropic公司开发的大型语言模型助手以其强大的推理能力、长上下文支持和安全性著称。在会议记录场景中Claude可以承担总结纪要、提取行动项、分析讨论要点、生成待办清单等任务。那么Notetaker如何将记录“直通”Claude这里就引出了一个关键的技术协议MCP。MCP是Model Context Protocol的缩写你可以将它理解为AI助手如Claude与外部工具、数据源和服务进行安全、标准化通信的“桥梁”或“插件协议”。它定义了AI如何发现、调用外部能力。通过MCPClaude可以直接读取数据库、调用搜索引擎、操作文件系统或者——正如本文主题——接收来自Wispr Flow Notetaker的会议记录。简单来说流程是这样的会议发生 → Notetaker捕获记录 → 通过MCP协议 → 将记录作为上下文提供给Claude → Claude处理并输出结构化结果。2. 环境准备与版本说明为了完成整个“会议记录直通Claude”的流程我们需要准备两个主要的环境Claude的运行环境和Wispr Flow的配置环境。2.1 Claude 环境准备目前能支持MCP协议、允许连接外部工具的主流Claude客户端是Claude Desktop和Claude Code。Claude Desktop 官方推出的桌面应用程序提供了最完整的Claude体验并支持通过配置添加MCP服务器。Claude Code 集成在VS Code编辑器中的插件允许开发者在编码时直接使用Claude同样支持MCP。本文将以 Claude Desktop (Mac版) 为例进行演示因为其配置界面相对直观。请确保你已安装并可以正常使用Claude Desktop。版本参考操作系统 macOS (本文基于macOS Sonoma但流程在较新版本上通用)Claude Desktop 版本 1.5.0 (较早版本可能不支持或MCP配置方式不同)Wispr Flow 你需要拥有Wispr Flow的账户并开通相应权限。2.2 项目结构与思路我们的目标不是开发而是配置。因此“项目结构”在这里指的是配置文件的逻辑结构Claude Desktop配置用于告诉Claude如何连接Wispr Flow的MCP服务器。Wispr Flow工作流配置用于创建触发条件和定义发送给Claude的内容。3. 核心原理与配置拆解MCP协议理解MCP是灵活配置和排查问题的关键。我们不必深究其网络细节但需要掌握几个核心概念。3.1 MCP 的核心组件MCP 服务器 提供特定能力的后端服务。例如Wispr Flow会作为一个MCP服务器它提供“发送笔记内容”的能力。一个搜索工具也可以是MCP服务器提供“搜索网络”的能力。MCP 客户端 消费这些能力的AI应用。Claude Desktop就是一个MCP客户端。协议通信 客户端和服务器通过标准化的JSON-RPC消息进行通信定义了一系列标准操作如tools/list列出可用工具、tools/call调用某个工具。3.2 在Claude Desktop中配置MCP服务器这是连接Wispr Flow与Claude的核心步骤。Claude Desktop通过一个配置文件来声明需要连接的MCP服务器。配置文件位置 在macOS上Claude Desktop的MCP配置文件通常位于~/Library/Application Support/Claude/claude_desktop_config.json如果该文件或目录不存在你需要手动创建。配置内容详解 下面是一个基础的配置示例它添加了一个“记事本”MCP服务器原理与Wispr Flow类似{ mcpServers: { fs: { command: npx, args: [ -y, modelcontextprotocol/server-filesystem, /Users/你的用户名/Documents/notes ] }, wispr-flow-notetaker: { command: node, args: [ /path/to/wispr-flow-mcp-server/index.js ], env: { WISPR_API_KEY: your_wispr_api_key_here } } } }参数逐行解释mcpServers: 顶级对象包含所有要配置的服务器。wispr-flow-notetaker: 你为这个服务器起的任意名称方便识别。command: 启动MCP服务器所需的命令。通常是node对于JS/TS服务器、python或一个可执行文件路径。args: 传递给命令的参数。这里指向Wispr Flow官方提供的MCP服务器入口文件。注意你需要根据Wispr Flow官方文档获取确切的服务器脚本或安装方式/path/to/需要替换为实际路径。env: 环境变量。这里通常需要配置你的Wispr Flow API密钥用于身份认证。your_wispr_api_key_here需要替换为你在Wispr Flow账户中生成的真实API Key。重要提示 截至本文撰写时Wispr Flow官方可能尚未提供开箱即用的标准MCP服务器。上述配置是一个原理性示例。实际使用时你可能需要通过Wispr Flow的Webhook功能、或等待其官方发布MCP服务器实现。配置的核心思想是在claude_desktop_config.json中声明一个服务器该服务器有能力将外部事件新笔记转化为Claude可读的上下文。3.3 配置生效与验证创建或修改claude_desktop_config.json文件。完全关闭并重启Claude Desktop。MCP配置仅在启动时加载。重启后在Claude Desktop的对话界面你应该能看到新的工具可用。通常Claude会主动说“我有哪些工具可用”或者你可以尝试询问“你现在可以使用哪些工具”如果配置成功Claude的回复中应该包含你配置的服务器所提供的工具例如“读取笔记”、“发送会议摘要”等具体名称取决于服务器实现。4. 完整实战案例构建会议记录自动化流水线由于Wispr Flow Notetaker的MCP集成可能处于演进中我们以一个更通用、可实现的模拟场景来演示完整流程利用Wispr Flow的自动化能力将会议转录文本通过Webhook发送并由一个自定义脚本转发给Claude API进行处理。这个方案更底层但更灵活且不依赖特定的MCP服务器实现。4.1 场景与架构设计假设我们使用Otter.ai进行会议录音和自动转录。我们希望Otter.ai生成转录文本 → 触发Wispr Flow工作流 → Wispr Flow将文本发送到我们的自定义服务器 → 服务器调用Claude API生成摘要 → 将摘要保存到Notion或发回Slack。技术栈触发器Otter.ai (Webhook)自动化平台Wispr Flow处理中间件一个简单的Node.js/Express服务器 (或使用Serverless Function)AI处理Claude API输出端Notion/Slack/Email4.2 步骤一创建Wispr Flow工作流登录Wispr Flow进入工作流创建界面。选择触发器 选择“Webhook”作为触发器。Wispr Flow会为你生成一个唯一的Webhook URL例如https://hooks.wisprflow.com/trigger/your_unique_id。复制这个URL。配置Otter.ai 登录Otter.ai进入其集成或自动化设置通常叫“Integrations”或“Workflows”。添加一个新的Zapier/Make或Webhook集成将上一步复制的Wispr Flow Webhook URL填入。设置触发条件为“当新转录完成时”。这样每次Otter.ai处理好录音就会把转录文本POST到你的Wispr Flow Webhook。在Wispr Flow中设计动作 回到Wispr Flow在触发器后添加一个“HTTP Request”动作。方法 POSTURL 你的自定义中间件服务器的地址例如https://your-server.com/process-meeting。Headers{ Content-Type: application/json, Authorization: Bearer YOUR_SERVER_SECRET_KEY }Body 选择“JSON”并构建一个包含会议信息的JSON体。你可以使用Wispr Flow提供的动态变量如{{trigger.body}}来获取Otter.ai发来的完整数据或者提取特定字段。{ transcript: {{trigger.body.transcript_text}}, meeting_title: {{trigger.body.meeting_title}}, source: otter.ai }保存并启用工作流。4.3 步骤二搭建自定义中间件服务器我们使用Node.js和Express快速搭建一个接收Webhook、调用Claude API的服务器。项目初始化与依赖安装mkdir meeting-processor cd meeting-processor npm init -y npm install express axios dotenv创建服务器文件server.js// server.js require(‘dotenv’).config(); const express require(‘express’); const axios require(‘axios’); const app express(); const port process.env.PORT || 3000; // 中间件解析JSON请求体 app.use(express.json()); // 简单的身份验证中间件 const authenticate (req, res, next) { const authHeader req.headers[‘authorization’]; const token authHeader authHeader.split(‘ ‘)[1]; // Bearer TOKEN if (token process.env.SERVER_SECRET_KEY) { next(); } else { res.status(403).json({ error: ‘Forbidden’ }); } }; // 处理会议转录的端点 app.post(‘/process-meeting’, authenticate, async (req, res) { try { const { transcript, meeting_title } req.body; if (!transcript) { return res.status(400).json({ error: ‘Missing transcript’ }); } console.log(Processing meeting: ${meeting_title}); // 1. 调用Claude API进行总结 const claudeSummary await summarizeWithClaude(transcript, meeting_title); // 2. 这里可以添加其他操作如保存到数据库、发送到Notion等 // await saveToNotion(claudeSummary, meeting_title); // 3. 响应Wispr Flow可选 res.json({ success: true, message: ‘Meeting processed successfully’, summary: claudeSummary // 可以选择不返回取决于是否需要Wispr Flow后续动作 }); } catch (error) { console.error(‘Error processing meeting:’, error); res.status(500).json({ error: ‘Internal server error’ }); } }); // 调用Claude API的函数 async function summarizeWithClaude(transcript, title) { const apiKey process.env.CLAUDE_API_KEY; const apiUrl ‘https://api.anthropic.com/v1/messages’; // 构建一个提示词让Claude总结会议 const prompt 请分析以下会议转录文本并生成一份结构化摘要 会议主题${title} 转录内容 ${transcript} 请提供 1. 会议核心讨论要点分条列出。 2. 明确的行动项谁做什么何时。 3. 待决议题或需要跟进的事项。 4. 总体情绪或氛围可选。; const requestBody { model: ‘claude-3-5-sonnet-20241022’, // 使用适合的模型 max_tokens: 1500, messages: [ { role: ‘user’, content: prompt } ] }; const response await axios.post(apiUrl, requestBody, { headers: { ‘Content-Type’: ‘application/json’, ‘x-api-key’: apiKey, ‘anthropic-version’: ‘2023-06-01’ } }); // 提取Claude的回复内容 return response.data.content[0].text; } app.listen(port, () { console.log(Meeting processor server listening on port ${port}); });创建环境变量文件.envPORT3000 SERVER_SECRET_KEYyour_super_secret_key_here CLAUDE_API_KEYyour_anthropic_claude_api_key_here # NOTION_API_KEY... # NOTION_DATABASE_ID...4.4 步骤三部署与测试运行服务器node server.js。为了生产环境建议使用pm2或部署到Vercel/Heroku/Railway等平台。获取公网地址 本地开发可使用ngrok或localhost.run将本地localhost:3000暴露为一个公网URL如https://abc123.ngrok.io。将这个URL填入到步骤4.2中Wispr Flow的“HTTP Request”动作的URL里。模拟触发 在Otter.ai中手动触发一次测试或者使用Postman直接向你的Wispr Flow Webhook URL发送一个模拟的JSON请求。观察日志 查看你的服务器控制台和Wispr Flow的执行日志确认数据流是否通畅。验证结果 检查Claude API的调用是否成功并查看生成的摘要内容。4.5 步骤四扩展 - 将结果发送到Notion为了让流程更闭环我们可以在summarizeWithClaude函数调用后添加保存到Notion的步骤。安装Notion SDKnpm install notionhq/client在server.js中添加函数const { Client } require(‘notionhq/client’); async function saveToNotion(summary, title) { const notion new Client({ auth: process.env.NOTION_API_KEY }); const databaseId process.env.NOTION_DATABASE_ID; const response await notion.pages.create({ parent: { database_id: databaseId }, properties: { ‘Title’: { title: [ { text: { content: 会议摘要: ${title} - ${new Date().toLocaleDateString()} } } ] }, ‘Status’: { select: { name: ‘已处理’ } } }, children: [ { object: ‘block’, type: ‘paragraph’, paragraph: { rich_text: [ { type: ‘text’, text: { content: summary } } ] } } ] }); console.log(‘Summary saved to Notion:’, response.id); }然后在/process-meeting端点中取消注释// await saveToNotion(claudeSummary, meeting_title);这行。至此一个完整的、由Wispr Flow驱动的“会议记录直通AI处理并归档”的自动化流水线就搭建完成了。它虽然没有直接使用Notetaker的MCP集成但实现了相同的核心价值且更具可控性和扩展性。5. 常见问题与排查思路在配置和使用此类AI自动化流程时你可能会遇到以下问题问题现象可能原因排查步骤与解决方案Claude Desktop 不显示新工具1. MCP配置文件路径或格式错误。2. MCP服务器启动命令失败。3. Claude Desktop未重启。1. 检查claude_desktop_config.json的JSON语法确保无错误。2. 在终端手动运行配置中的command和args看服务器能否独立启动。3.彻底退出并重启Claude Desktop。Wispr Flow 工作流未触发1. Webhook URL未正确配置到触发源如Otter.ai。2. 触发源发送的数据格式不符合预期。1. 在Wispr Flow中检查Webhook触发器的历史记录看是否有请求进入。2. 使用Postman模拟触发源向Webhook URL发送请求检查Wispr Flow是否收到并解析成功。自定义服务器收不到请求1. 服务器未运行或端口被占用。2. 公网隧道ngrok断开或地址变更。3. Wispr Flow的HTTP请求动作配置错误URL、Method。4. 防火墙或网络策略阻止。1. 检查服务器进程状态和日志。2. 确认ngrok地址是否更新到Wispr Flow。3. 检查Wispr Flow动作配置的URL、Header、Body。4. 在服务器本地使用curl测试端点是否可访问。Claude API 调用失败1. API Key错误或过期。2. 请求体格式不符合API要求。3. 超过速率限制或额度不足。1. 检查.env文件中的CLAUDE_API_KEY。2. 对照Anthropic官方API文档检查model、messages结构、请求头尤其是anthropic-version是否正确。3. 查看API返回的错误信息通常会很明确。会议转录文本过长导致处理失败Claude API有上下文令牌限制。1. 在发送给Claude前先对文本进行预处理如截断、分段总结。2. 使用支持更长上下文的模型如claude-3-5-sonnet。3. 在Wispr Flow中先使用其内置的文本处理动作进行摘要再发送给Claude进行精炼。流程延迟高1. 网络延迟。2. Claude API响应慢。3. 中间件服务器性能瓶颈。1. 将中间件服务器部署在离你用户群近的区域。2. 考虑使用Claude的异步API或流式响应。3. 对于非实时场景可以将任务推入队列如Redis异步处理。6. 最佳实践与工程建议将AI自动化流程用于生产环境需要考虑稳定性、安全性和可维护性。安全性第一API密钥管理 永远不要将API密钥硬编码在代码中。使用环境变量.env文件或专业的密钥管理服务如AWS Secrets Manager, HashiCorp Vault。Webhook验证 在自定义服务器端验证请求是否真正来自Wispr Flow通过验证签名或Token。上述示例中的authenticate中间件是一个简单示例生产环境应使用更安全的机制。最小权限原则 为Wispr Flow、Claude API等创建仅具备必要权限的API密钥或访问令牌。错误处理与重试健壮的错误处理 如示例代码所示使用try-catch包裹核心逻辑并返回清晰的错误信息。记录详细的日志方便排查。实现重试机制 网络调用如调用Claude API可能失败。实现指数退避的重试逻辑对于非关键任务可以失败后存入死信队列人工处理。设置超时 为HTTP请求设置合理的超时时间避免进程长时间挂起。可观测性与监控记录关键日志 记录每个会议的处理开始时间、结束时间、Claude API调用耗时、是否成功等。添加监控告警 如果处理失败率超过阈值或流程长时间无新任务应触发告警发送邮件、Slack消息等。在Wispr Flow中利用其内置的流程运行历史快速定位失败步骤。性能与成本优化内容预处理 在发送给Claude前先过滤掉无关内容如长时间的静默、寒暄语或进行压缩总结以节省令牌消耗。缓存策略 如果频繁处理相似会议可以考虑缓存类似的摘要模板或结果。模型选择 根据任务复杂度选择合适的Claude模型。对于简单的摘要claude-3-haiku可能更经济对于复杂的分析再使用claude-3-5-sonnet。维护与迭代配置外部化 将提示词模板、模型名称、处理规则等抽离为配置文件无需修改代码即可调整AI行为。版本控制 将自定义服务器代码、Wispr Flow工作流配置如果支持导出纳入Git版本管理。定期审查 定期检查Claude生成的摘要质量优化提示词。同时关注Wispr Flow和Claude API的更新及时调整集成方式。通过本文的拆解你应该已经掌握了从概念到实战将会议记录通过Wispr Flow自动化处理并连接至Claude的核心方法。无论是等待官方的MCP集成还是采用自定义Webhook的灵活方案其核心思想都是构建一个高效、可靠的“数据管道”让AI能力无缝嵌入你的工作流。