会议自动化服务器

一个通用的MCP服务器,用于自动处理会议录音/文本的STT转录、Asana任务创建和Notion会议记录保存。

  • by Ramhori
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ramhori/meeting-automation-mcp

使用说明

会议自动化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企划组金正浩