音频笔记记录器 - 带MCP的AI语音笔记
利用由Claude和MCP(模型上下文协议)驱动的AI代理工作流,将语音记录转换为可执行的任务、日历事件和结构化笔记。
概述
这个项目展示了一个端到端的AI代理工作流程,该流程:
- 从用户那里获取音频录音
- 使用Deepgram将音频转录为文字
- 使用Claude AI提取可操作项
- 将结构化数据保存到存储中
- 生成日历事件链接
构建于:
- Next.js 15 + TypeScript(或:Next.js 15搭配TypeScript)
- 工具链中的MCP(模型上下文协议)
- Claude AI(Anthropic出品)用于智能提取
- Deepgram用于语音转文字
- 使用AWS S3进行存储(可选)
建筑学
User Audio → Next.js Frontend → Claude AI Agent
↓
MCP Tools Chain:
1. transcribe_audio
2. extract_tasks
3. save_note
4. create_calendar_event克劳德通过根据输入自动串联MCP工具来协调工作流程。
已实现的MCP工具
1. transcribe_audio
- 目的使用Deepgram API转录音频
- 输入Base64音频数据或URL
- 输出转录文本、时长、置信度评分
2. extract_tasks
- 目的分析转录文本并提取结构化数据
- 输入转录文本
- 输出任务、日历事件和笔记
3. save_note
- 目的将处理过的笔记保存到S3或本地文件系统
- 输入所有提取的数据
- 输出笔记ID和存储URL
4. create_calendar_event
- 目的生成Google日历事件链接
- 输入活动详情(标题、日期、时间)
- 输出日历链接,方便添加
设置说明
1. 安装依赖项
pnpm install2. 配置环境变量
创建 .env.local 文件:
# Required
DEEPGRAM_API_KEY=your_deepgram_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
# Optional (for S3 storage)
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=us-east-1
AWS_S3_BUCKET=audio-notes-bucket获取API密钥:
- Deepgram:https://console.deepgram.com/
- Anthropic:https://console.anthropic.com/
3. 运行开发服务器
pnpm dev测试MCP服务器
使用随附的测试客户端测试您的MCP工具:
node scripts/test-client.mjs http://localhost:3000这将连接到您的本地MCP服务器,并列出可用的工具。
部署
部署到 AWS Amplify
- 连接存储库
- 在AWS Amplify中创建新应用 - 连接到您的Git仓库
- 配置构建设置
- 构建命令: pnpm install && pnpm build - 输出目录: .next
- 添加环境变量
- 添加来自(指定位置/文件)的所有环境变量 .env.local - 确保在适当的地方将其标记为机密
- 部署
- Amplify 将自动构建和部署 - SSL证书自动生成
部署到Vercel(备选方案)
vercel deploy在Vercel仪表板中添加环境变量。
致Vercel的备注:
- 启用 流体计算
- 调整
maxDuration在app/mcp/route.ts如果使用Pro/Enterprise(专业版/企业版)
项目结构
mcp-for-next.js/
├── app/
│ ├── mcp/
│ │ └── route.ts # MCP tools implementation
│ ├── page.tsx # Homepage
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles
├── scripts/
│ └── test-client.mjs # MCP test client
├── .env.example # Environment variables template
└── MCP_TOOLS_DESIGN.md # Detailed tool design doc示例工作流程
用户输入(语音):
“提醒我在周五前跟进莎拉关于第四季度预算的事宜,并安排团队在下周二下午2点进行同步会议。”
克劳德的工具链:
transcribe_audio()→ 返回成绩单extract_tasks()→ 提取物:
- 任务:“与Sarah跟进第四季度预算事宜”(截止日期:周五) - 活动:“团队同步会议”(日期:下周二,下午2点)
save_note()→ 保存到存储中create_calendar_event()→ 生成日历链接
结果: 结构化、可操作的数据,即刻可用!
开发说明
- 存储回退如果未配置AWS凭证,笔记将保存到本地
data/notes/目录 - 错误处理每个工具都能优雅地处理缺失的API密钥,并返回有用的错误信息
- 详尽的日志记录启用在
app/mcp/route.ts用于调试
使用了(或构建于)
- Next.js - React 框架
- MCP处理器 Vercel的MCP适配器
- Deepgram SDK(软件开发工具包) - 语音转文字
- Anthropic SDK(注:Anthropic是一家专注于开发人工智能技术的公司,SDK代表软件开发工具包) - 克劳德AI
- AWS SDK(亚马逊网络服务软件开发工具包) - S3存储
- Tailwind CSS - 搭配/造型
许可证
麻省理工学院(MIT)
