最近在尝试将会议记录自动化整理时,发现了一个痛点:会议录音或笔记的整理工作繁琐耗时,而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如何发现、调用外部能力。通过MCP,Claude可以直接读取数据库、调用搜索引擎、操作文件系统,或者——正如本文主题——接收来自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 项目结构与思路

我们的目标不是开发,而是配置。因此“项目结构”在这里指的是配置文件的逻辑结构:

  1. Claude Desktop配置 :用于告诉Claude如何连接Wispr Flow的MCP服务器。
  2. Wispr Flow工作流配置 :用于创建触发条件和定义发送给Claude的内容。

3. 核心原理与配置拆解:MCP协议

理解MCP是灵活配置和排查问题的关键。我们不必深究其网络细节,但需要掌握几个核心概念。

3.1 MCP 的核心组件

  1. MCP 服务器 : 提供特定能力的后端服务。例如,Wispr Flow会作为一个MCP服务器,它提供“发送笔记内容”的能力。一个搜索工具也可以是MCP服务器,提供“搜索网络”的能力。
  2. MCP 客户端 : 消费这些能力的AI应用。Claude Desktop就是一个MCP客户端。
  3. 协议通信 : 客户端和服务器通过标准化的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 配置生效与验证

  1. 创建或修改 claude_desktop_config.json 文件。
  2. 完全关闭并重启Claude Desktop 。MCP配置仅在启动时加载。
  3. 重启后,在Claude Desktop的对话界面,你应该能看到新的工具可用。通常Claude会主动说“我有哪些工具可用”,或者你可以尝试询问:“你现在可以使用哪些工具?”
  4. 如果配置成功,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/Email

4.2 步骤一:创建Wispr Flow工作流

  1. 登录Wispr Flow ,进入工作流创建界面。
  2. 选择触发器 : 选择“Webhook”作为触发器。Wispr Flow会为你生成一个唯一的Webhook URL(例如 https://hooks.wisprflow.com/trigger/your_unique_id )。复制这个URL。
  3. 配置Otter.ai : 登录Otter.ai,进入其集成或自动化设置(通常叫“Integrations”或“Workflows”)。添加一个新的Zapier/Make或Webhook集成,将上一步复制的Wispr Flow Webhook URL填入。设置触发条件为“当新转录完成时”。这样,每次Otter.ai处理好录音,就会把转录文本POST到你的Wispr Flow Webhook。
  4. 在Wispr Flow中设计动作 : 回到Wispr Flow,在触发器后添加一个“HTTP Request”动作。
    • 方法 : POST
    • URL : 你的自定义中间件服务器的地址(例如 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"
      }
      
  5. 保存并启用工作流

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}`);
});

创建环境变量文件 .env

PORT=3000
SERVER_SECRET_KEY=your_super_secret_key_here
CLAUDE_API_KEY=your_anthropic_claude_api_key_here
# NOTION_API_KEY=...
# NOTION_DATABASE_ID=...

4.4 步骤三:部署与测试

  1. 运行服务器 node server.js 。为了生产环境,建议使用 pm2 或部署到Vercel/Heroku/Railway等平台。
  2. 获取公网地址 : 本地开发可使用 ngrok localhost.run 将本地 localhost:3000 暴露为一个公网URL(如 https://abc123.ngrok.io )。将这个URL填入到步骤4.2中Wispr Flow的“HTTP Request”动作的URL里。
  3. 模拟触发 : 在Otter.ai中手动触发一次测试,或者使用Postman直接向你的Wispr Flow Webhook URL发送一个模拟的JSON请求。
  4. 观察日志 : 查看你的服务器控制台和Wispr Flow的执行日志,确认数据流是否通畅。
  5. 验证结果 : 检查Claude API的调用是否成功,并查看生成的摘要内容。

4.5 步骤四:扩展 - 将结果发送到Notion

为了让流程更闭环,我们可以在 summarizeWithClaude 函数调用后,添加保存到Notion的步骤。

安装Notion SDK npm 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自动化流程用于生产环境,需要考虑稳定性、安全性和可维护性。

  1. 安全性第一

    • API密钥管理 : 永远不要将API密钥硬编码在代码中。使用环境变量( .env 文件)或专业的密钥管理服务(如AWS Secrets Manager, HashiCorp Vault)。
    • Webhook验证 : 在自定义服务器端,验证请求是否真正来自Wispr Flow(通过验证签名或Token)。上述示例中的 authenticate 中间件是一个简单示例,生产环境应使用更安全的机制。
    • 最小权限原则 : 为Wispr Flow、Claude API等创建仅具备必要权限的API密钥或访问令牌。
  2. 错误处理与重试

    • 健壮的错误处理 : 如示例代码所示,使用 try-catch 包裹核心逻辑,并返回清晰的错误信息。记录详细的日志,方便排查。
    • 实现重试机制 : 网络调用(如调用Claude API)可能失败。实现指数退避的重试逻辑,对于非关键任务,可以失败后存入死信队列人工处理。
    • 设置超时 : 为HTTP请求设置合理的超时时间,避免进程长时间挂起。
  3. 可观测性与监控

    • 记录关键日志 : 记录每个会议的处理开始时间、结束时间、Claude API调用耗时、是否成功等。
    • 添加监控告警 : 如果处理失败率超过阈值,或流程长时间无新任务,应触发告警(发送邮件、Slack消息等)。
    • 在Wispr Flow中利用其内置的流程运行历史 ,快速定位失败步骤。
  4. 性能与成本优化

    • 内容预处理 : 在发送给Claude前,先过滤掉无关内容(如长时间的静默、寒暄语),或进行压缩总结,以节省令牌消耗。
    • 缓存策略 : 如果频繁处理相似会议,可以考虑缓存类似的摘要模板或结果。
    • 模型选择 : 根据任务复杂度选择合适的Claude模型。对于简单的摘要, claude-3-haiku 可能更经济;对于复杂的分析,再使用 claude-3-5-sonnet
  5. 维护与迭代

    • 配置外部化 : 将提示词模板、模型名称、处理规则等抽离为配置文件,无需修改代码即可调整AI行为。
    • 版本控制 : 将自定义服务器代码、Wispr Flow工作流配置(如果支持导出)纳入Git版本管理。
    • 定期审查 : 定期检查Claude生成的摘要质量,优化提示词。同时关注Wispr Flow和Claude API的更新,及时调整集成方式。

通过本文的拆解,你应该已经掌握了从概念到实战,将会议记录通过Wispr Flow自动化处理并连接至Claude的核心方法。无论是等待官方的MCP集成,还是采用自定义Webhook的灵活方案,其核心思想都是构建一个高效、可靠的“数据管道”,让AI能力无缝嵌入你的工作流。

更多推荐