会议自动化MCP服务器
会议录音/文本→STT战士→Asana任务→Notion会议记录自动处理 通用MCP服务器.
可在Claude、GPT、Gemini等任何LLM客户端上使用。
사용자: "회의 자동화해줘"
↓
1. VITO API → 전사 (또는 텍스트 직접 입력)
2. LLM → 요약 + 액션아이템 추출
3. Asana API → 태스크 생성
4. Notion API → 회의록 저장
↓
LLM: "완료! 태스크 N개, Notion 저장됨"安装
git clone https://github.com/Ramhori/meeting-automation-mcp.git
cd meeting-automation-mcp
pip install -r requirements.txt设置环境变量
.env.example复制 .env 创建文件并输入实际值。
cp .env.example .env| 变量 | 必需 | 说明 |
|---|---|---|
VITO_CLIENT_ID | 选择 | VITO STT API客户端ID(如果没有,只能输入文本) |
VITO_CLIENT_SECRET | 选择 | VITO STT API秘密 |
ASANA_TOKEN | 必需 | Asana Personal Access Token |
NOTION_TOKEN | 필수 | Notion内部集成令牌 |
NOTION_DATABASE_ID | 必需 | 要保存会议记录的Notion数据库ID |
DEFAULT_AUTHOR | 选择 | 默认作者姓名 |
LOG_LEVEL | 选择 | 日志级别(默认为INFO) |
MCP客户端集成
克劳德桌面版
claude_desktop_config.json添加到:
{
"mcpServers": {
"meeting-automation": {
"command": "python",
"args": ["C:\\경로\\meeting-automation-mcp\\server.py"]
}
}
}克劳德代码
~/.claude/settings.json 或项目的 .mcp.json添加到:
{
"mcpServers": {
"meeting-automation": {
"command": "python",
"args": ["C:\\경로\\meeting-automation-mcp\\server.py"]
}
}
}光标
Settings→在MCP Servers中添加相同的command/args。
工具列表(11个)
设置
| 工具 | 说明 |
|---|---|
check_meeting_setup 检查VITO/Asana/Notion连接状态。首次使用时调用 |
STT(战士)
| 工具 | 说明 |
|---|---|
process_meeting 处理音频文件(VITO)或文本输入。优先级:text>text_file_path>audio_path |
Asana(任务CRUD)
| 工具 | 说明 |
|---|---|
create_meeting_task | 动作道具→Asana任务创建 |
update_meeting_task | 修改现有任务(名称、联系人、截止日期等) |
get_meeting_tasks | 查看项目中的任务列表 |
delete_meeting_task | 删除任务 |
Notion(会议记录CRUD)
| 工具 | 说明 |
|---|---|
save_meeting_notes | 保存会议记录→Notion DB(自动映射13个属性) |
update_meeting_notes | 修改现有会议记录 |
get_meeting_notes | 查看会议记录列表 |
delete_meeting_notes | 存档(删除)会议记录 |
Pipeline(干杯)
| 工具 | 说明 |
|---|---|
run_full_pipeline | 战士→Asana→Notion批处理(未经确认一次性) |
动作模式
模式使用方式目标 |------|----------|------| | 分阶段 | LLM单独调用该工具,中途验证用户| Claude、GPT-4等| | 干杯 | run_full_pipeline 一个批处理自动化脚本
使用示例
通过文本处理会议记录(按步骤)
1. process_meeting(text="회의 내용...") → 전사 텍스트 반환
2. LLM이 요약 + 액션아이템 추출 → 사용자에게 보여줌
3. 사용자 OK → create_meeting_task × N회
4. 사용자 OK → save_meeting_notes复制音频文件(需要VITO密钥)
1. check_meeting_setup() → 연결 상태 확인
2. process_meeting(audio_path="회의녹음.m4a") → 전사
3. 이하 동일干杯管道
run_full_pipeline(
text="회의 내용...",
project_id="12345",
action_items_json='[{"name":"API 개발","assignee":"kim@co.kr","due_on":"2026-03-20"}]',
meeting_title="3월 정기회의",
meeting_date="2026-03-17"
)映射Notion DB属性
数据库属性类型工具参数 |---------|------|--------------| 会议名称title| title | 会议日期 date_str | 会议地点text| location | 主管部门text| host_dept | 出席部门text| attend_dept | 出席者text| attendees | 会议议程text| agenda | 会议内容text| summary | |决定| text| decisions | |其他| text| etc | 创建日期自动(今天的日期) |作者| text| author (기본:默认作者)| |URL|URL| url |
错误代码
| 代码 | 说明 | 响应 |
|---|---|---|
VITO_NOT_CONFIGURED | 未设置VITO API密钥 | 将密钥添加到.env或使用文本输入 |
AUTH_EXPIRED | API身份验证令牌过期 | 在.env中更新令牌 |
AUTH_FAILED 验证失败确认API密钥 | ||
FILE_NOT_FOUND | 没有文件 | 检查文件路径 |
UNSUPPORTED_FORMAT | 不支持音频格式 | 仅支持wav、mp3、m4a、flac、aac |
FILE_TOO_LARGE | 文件超过1GB | 文件分割 |
STT_TIMEOUT | 转写超过10分钟 | 重试或使用短文件 |
RATE_LIMIT 超过API请求限制自动重试(服务器处理) | ||
PERMISSION_DENIED | 无权访问 | 检查Notion Integration设置 |
NO_DATABASE_ID | 未设置DB ID | 将NOTION_DATABASE_ID添加到.env |
NO_INPUT | 没有输入值 | 提供text、text_file_path、audio_path之一 |
项目结构
meeting-automation-mcp/
├── server.py ← FastMCP 엔트리포인트 (도구 등록 + lifespan)
├── config.py ← 설정 관리 (.env 기반)
├── models.py ← 공통 타입 (ServiceResult, TranscriptResult)
├── utils.py ← 공유 유틸리티 (with_retry)
├── services/
│ ├── vito.py ← VITO STT API (전사 + JWT 토큰 관리)
│ ├── asana.py ← Asana REST API (태스크 CRUD)
│ └── notion.py ← Notion API (회의록 CRUD)
├── .env.example ← 환경변수 템플릿
├── requirements.txt
└── README.md许可证
MIT许可证
制作者
OK金融集团IT企划组金正浩
