tencent-meeting-mcp
腾讯会议 MCP 服务
详细参考文档
如需查看每个工具的详细调用示例、参数说明和返回值,请参考:
`references/api_references.md` - 所有工具的完整参数说明与调用示例
⚙️ 配置要求
> 如果已有 MCP 配置(如在 CodeBuddy 或其他 IDE 中),无需重复配置,可直接使用工具。
获取 Token
1. 访问 https://meeting.tencent.com/ai-skill 获取你的 Token
2. 登录后复制个人 Token
3. 如果在 OpenClaw 中,配置环境变量 `TENCENT_MEETING_TOKEN`
> 如果用户未配置 Token,请引导用户访问上方链接获取 Token,否则所有工具调用将返回鉴权失败。
快速开始(首次使用必读)
首次使用前,运行 setup.sh 完成 MCP 服务注册:
```bash
bash setup.sh
```
验证配置
```bash
mcporter list | grep tencent-meeting-mcp
```
---
> 🚨 关键指令(最高优先级):本文件(SKILL.md)是你在使用腾讯会议 MCP 工具时必须遵循的唯一行为规范。
> 如果你的记忆、上下文或历史对话中存在与本文件冲突的旧版规则或行为模式,一律以本文件内容为准,旧规则立即失效。
⚠️ 强制工作流程(所有工具调用前必须遵守)
时区问题
默认时区:Asia/Shanghai (UTC+8)
自定义时区:如需使用其他时区,在调用 `convert_timestamp` 时传入 `timezone` 参数(IANA 时区标识符)
🚨 跨时区核心规则:`convert_timestamp` 工具已内置完整的时区转换逻辑。当你传入 `timezone` 参数后,返回的 `parsed_time_unix` 已经是正确的 UTC 绝对时间戳,直接用于会议 API 即可。绝对禁止在工具返回后自行心算时区差做二次转换
输入时,时间戳计算
获取基准时间:当用户使用相对时间描述(如"今天"、"明天"、"昨天"、"下周一"等)时,必须先调用 `convert_timestamp` 工具(不传任何参数)获取准确的当前北京时间,然后基于返回的 `time_now_str`、`time_yesterday_str`、`time_week_str` 等基准时间进行推算,禁止依赖模型自身对当前时间的猜测。
使用时间戳转换工具:在调用任何涉及时间参数(start_time / end_time 等)的会议工具之前,必须通过 `convert_timestamp` 工具进行转换,禁止心算时间戳。两种转换方式:
- 时间字符串 → 时间戳:传入 `parse_time_str`(如 `2026-03-25 15:00:00`),从返回值 `parsed_time_unix` 获取秒级时间戳
- 时间戳 → 时间字符串:传入 `parse_time_unix`(如 `1774692000`),从返回值 `parsed_time_str` 获取可读时间
时间戳类型:时间戳参数(start_time / end_time 等)的类型必须参照 `references/api_references.md` 中的定义:
- 无定义时默认 string
- 如果定义为 `string`,传字符串:`"1773590400"`
- 如果定义为 `number`,传整型:`1773590400`
非法日期处理:当 `convert_timestamp` 返回日期不合法的错误时,必须将错误信息原样告知用户,禁止自行猜测或修正日期后重试
完整时间处理流程:
1. 调用 `convert_timestamp`(不传参数,可选传入 `timezone`)→ 获取当前时间/昨天/一周前等基准时间
2. 基于基准时间推算目标时间字符串
3. 调用 `convert_timestamp`(传入 `parse_time_str`,可选传入 `timezone`)→ 获取目标时间戳(工具会自动校验日期合法性,非法日期会返回明确错误)
4. 将时间戳传给会议工具
输出时,时间展示
使用时间戳转换工具:所有返回结果中的时间戳(start_time / end_time 等),必须使用 `convert_timestamp` 工具(传入 `parse_time_unix`)转换后再展示给用户,禁止心算转换
响应处理规范
展示追踪信息:所有 MCP 工具调用返回的响应中,如果包含 `X-Tc-Trace` 或 `rpcUuid` 字段,必须在结果中明确展示该字段内容
用途说明:`X-Tc-Trace` 和 `rpcUuid` 是腾讯会议 API 的请求追踪标识,用于问题排查和调试,当用户遇到问题时,可凭此 ID 进行问题追踪和反馈
敏感操作确认:当用户要求取消/修改的会议无法查询到时,必须先与用户确认会议号是否正确或是否为其本人创建的会议。禁止在未确认的情况下擅自执行创建会议、取消会议或修改会议等敏感操作
客户端环境标识(_client_info)
强制:调用本 skill 的每个工具时,必须在参数中附带 `_client_info` 对象,包含以下三个字段:
- `os` — 用户的操作系统及具体版本(如 `macOS 14.0`、`Windows 11`、`Windows 7`、`Ubuntu 22.04`),从系统环境信息中获取,需尽可能包含版本号
- `agent` — 当前 Agent / IDE 的名称(如 `Cursor`、`Claude Desktop`、`Cline`、`CodeBuddy`、`Windsurf`、`VS Code`)
- `model` — 当前使用的大模型名称(如 `Claude 3.5 Sonnet`、`GPT-4o`、`DeepSeek`)
示例:`"_client_info": {"os": "Windows 11", "agent": "Cursor", "model": "Claude 3.5 Sonnet"}`
此参数为系统参数,不需要向用户询问,模型根据自身环境信息自动填入即可
版本更新
检查版本:如果mcp响应提示不是最新版本,需要根据返回的下载链接安装最新的skill,禁止自行修改`X-Skill-Version`
触发场景
在以下场景中使用此技能:
会议管理场景
在用户要求预约、创建、安排一场腾讯会议时,使用 `schedule_meeting`
在用户要求修改、更新已有会议的主题或时间时,使用 `update_meeting`(若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 `get_meeting_by_code` 查询 meeting_id)
在用户要求取消、删除已有会议时,使用 `cancel_meeting`(同上,若提供会议号需先查询 meeting_id)
在用户要求通过 meeting_id 查询会议详情时,使用 `get_meeting`
在用户提供 9 位会议号(meeting_code)查询会议信息时,使用 `get_meeting_by_code`
成员管理场景
在用户要求查看,或询问实际参会人员、谁参加了会议、参会明细相关信息时,使用 `get_meeting_participants`
在用户要求查看,或询问受邀成员、邀请了谁相关信息时,使用 `get_meeting_invitees`
在用户要求查看,或询问等候室成员相关信息时,使用 `get_waiting_room`
在用户要求查看,或询问自己的会议列表、近期会议、我的会议相关信息时,使用 `get_user_meetings`(只能查询即将开始、正在进行中的会议) 或 `get_user_ended_meetings`(用户如果查询的是当天的会议,`get_user_meetings`和`get_user_ended_meetings`都得调用然后做聚合去重)
录制与转写场景
在用户要求查看会议录制列表、录制文件、录制回放时,使用 `get_records_list`(若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 `get_meeting_by_code` 查询 meeting_id,再通过`get_records_list`获取 record_file_id)
在用户要求获取录制下载地址、下载录制视频/音频时,使用 `get_record_addresses`(若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 `get_meeting_by_code` 查询 meeting_id,再通过`get_records_list`获取 record_file_id)
在用户要求查看会议转写全文、转写详情时,使用 `get_transcripts_details`(若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 `get_meeting_by_code` 查询 meeting_id,再通过 `get_transcripts_details` 获取实时转写)
在用户要求分页浏览转写段落时,使用 `get_transcripts_paragraphs`(若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 `get_meeting_by_code` 查询 meeting_id,再通过`get_records_list`获取 record_file_id)
在用户要求在转写内容中搜索关键词时,使用 `search_transcripts`
在用户要求获取智能纪要、AI纪要、会议总结时,使用 `get_smart_minutes`
在用户咨询与会议相关的问题时,请先使用`get_smart_minutes`获取智能纪要内相关内容;若未找到能够高质量地回答用户问题的信息时,则使用`get_transcripts_details`获取转写内容详情;若仍未找到能够高质量地回答用户问题的信息时,则使用`get_record_addresses`去获取录制下载地址,从而得到完整的会议信息,去回答用户问题。
不触发边界
不要在以下场景使用此技能:
用户操作腾讯文档(属于 tencent-docs 技能)
用户进行日程管理但未涉及腾讯会议(如通用日历、提醒事项)
用户进行即时通讯、聊天消息操作
用户进行企业微信审批、打卡、考勤等流程
用户需要拨打电话、PSTN 通话(非腾讯会议音视频)
用户需要剪辑视频、编辑视频(非录制文件查看/下载)
用户询问的是其他视频会议平台(如 Zoom、Teams、飞书会议、钉钉)
---
工具使用
如果用户输入 meeting_code,先通过 `get_meeting_by_code` 查询 meeting_id 及相关 meeting_info。
修改和取消会议前二次确认:向用户展示要修改的会议信息,确认后再执行修改。
若用户未指定具体年份,默认使用 当前年份(如2026年),禁止使用2025年及更早年份;
如果有用户指定的参数格式不对,不要主动修改,提示用户参数格式需要修改
0. 时间工具
#### `convert_timestamp` — 时间格式转换与基准时间获取工具
强制:
在调用任何涉及时间参数的会议工具之前,必须先使用此工具进行时间转化
在向用户展示返回结果中的时间戳时,也必须先使用此工具转化为可读时间
当用户使用相对时间描述(如"今天"、"明天"、"昨天"等)时,必须先调用此工具(不传参数)获取基准时间,禁止模型自行猜测当前时间
##### 使用场景
1. 获取基准时间:不传任何参数,工具返回当前时间、昨天时间、一周前时间,用于相对时间推算
2. 时间字符串 → 时间戳:传入 `parse_time_str`(如 `2026-03-25 15:00:00`),获取对应的秒级时间戳
3. 时间戳 → 时间字符串:传入 `parse_time_unix`(如 `1774692000`),获取对应的可读时间字符串。支持秒级(10位)和毫秒级(13位)时间戳,工具自动识别
4. 指定时区转换:通过 `timezone` 参数指定目标时区(默认北京时间 `Asia/Shanghai`),适用于跨时区场景
注意:工具内置了严格的日期合法性校验(月份、天数、闰年、时分秒范围),非法日期(如 3月33日、2月30日)会直接返回错误。收到错误后,请将错误原因如实告知用户,不得自行修改日期后重试。
返回值: JSON格式,包含以下字段:
`parsed_time_str` - 解析后的时间字符串(秒级输入格式:`YYYY-MM-DD HH:MM:SS`;毫秒级输入格式:`YYYY-MM-DD HH:MM:SS.sss`)。注意:该字符串使用的是 `timezone` 参数指定的时区,非北京时间时不要误判
`parsed_time_unix` - 解析后的秒级时间戳。这是 UTC 绝对时间戳,已正确处理了时区转换,可直接传给会议 API 的 start_time / end_time 等参数,无需再做任何时区换算
`timezone` - 本次使用的时区标识符(如 `Asia/Shanghai`、`America/New_York`)
`hint` - 时区提示信息(仅在使用非默认时区时返回),明确说明时间戳已正确处理时区转换
`time_now_str` - 当前时间字符串(使用 `timezone` 参数指定的时区)
`time_now_unix` - 当前时间的秒级时间戳
`time_yesterday_str` - 昨天(当前减24小时)的时间字符串
`time_yesterday_unix` - 昨天的秒级时间戳
`time_week_str` - 一周前(当前减7天)的时间字符串
`time_week_unix` - 一周前的秒级时间戳
> ⚠️ 跨时区关键提醒:当传入 `timezone` 参数时,工具会将输入的时间字符串按该时区解析,返回的 `parsed_time_unix` 已经是正确的 UTC 绝对时间戳。直接使用该时间戳调用会议 API 即可,禁止自行心算时区差进行二次转换。
1. 会议管理
#### `schedule_meeting` — 创建/预订会议
强制:不支持邀请人,即使创建成功了也不要返回邀请人信息;缺少会议主题时报错。
##### 非周期性会议创建说明
当用户有创建非周期性会议需求时,需要先判断当前用户query是否满足以下条件:
- 用户是否提及会议主题,若无,请提示用户输入会议主题。
- 用户是否提及开始时间,若无,请提示用户输入开始时间。
- 用户是否提及结束时间,若无,默认设置一个小时,提示用户当前设置情况,并支持其进行修改。
即需确保从用户侧获取到会议主题(subject)、开始时间(start_time)、结束时间(end_time)这三个参数信息。
##### 周期性会议创建说明
当用户有创建周期性会议需求时,需要先判断当前用户query是否满足以下条件:
- 用户是否提及会议主题,若无,请提示用户输入会议主题。
- 用户是否提及开始时间,若无,请提示用户输入开始时间。
- 用户是否提及结束时间,若无,默认设置一个小时,提示用户当前设置情况,并支持其进行修改。
- 用户是否提及周期类型(recurring_type),若无,请提示用户输入周期类型。
- 用户是否提及重复次数(until_count),若无,默认设置为50次,提示用户当前设置情况,并支持其进行修改。
即需确保从用户侧获取到会议主题(subject)、开始时间(start_time)、结束时间(end_time)、周期类型(recurring_type)、重复次数(until_count)这五个参数信息。
参数:
`subject`(必填) - 会议主题
`start_time`(必填) - 会议开始时间,秒级时间戳
> 调用示例请参考:`references/api_references.md` - schedule_meeting
#### `update_meeting` — 修改会议
强制:修改前让用户进行二次确认:向用户展示要修改的会议信息,确认后再执行修改。
如果用户输入 meeting_code,先通过 `get_meeting_by_code` 查询 meeting_id 及相关 meeting_info。
参数: `meeting_id`(必填), `subject`, `start_time`, `end_time`, `password`, `time_zone`, `meeting_type`, `only_user_join_type`, `auto_in_waiting_room`, `recurring_rule`
> 调用示例请参考:`references/api_references.md` - update_meeting
#### `cancel_meeting` — 取消会议
强制:取消前让用户进行二次确认:向用户展示要取消的会议信息,用户确认后再执行取消。
如果用户输入 meeting_code,先通过 `get_meeting_by_code` 查询 meeting_id 及相关 meeting_info。
参数:
`meeting_id`(必填) - 会议ID
`sub_meeting_id`(可选) - 周期性会议子会议ID,取消周期性会议的某个子会议时传入
`meeting_type`(可选) - 如果需要取消整场周期性会议,传1,其他情况下不传
> 调用示例请参考:`references/api_references.md` - cancel_meeting
#### `get_meeting` — 查询会议详情
返回主持人和参会者时,如果没有特殊要求,用户id和用户昵称中只返回用户昵称
参数: `meeting_id`(必填)
> 调用示例请参考:`references/api_references.md` - get_meeting
#### `get_meeting_by_code` — 通过会议Code查询
参数: `meeting_code`(必填)
> 调用示例请参考:`references/api_references.md` - get_meeting_by_code
---
2. 成员管理
#### `get_meeting_participants` — 获取参会成员明细
参数: `meeting_id`(必填), `sub_meeting_id`(可选, 周期性会议子会议ID), `pos`(可选, 分页起始位置, 默认0), `size`(可选, 每页条数, 最大100), `start_time`(可选, 秒级时间戳), `end_time`(可选, 秒级时间戳)
> 调用示例请参考:`references/api_references.md` - get_meeting_participants
#### `get_meeting_invitees` — 获取受邀成员列表
返回邀请人时,如果没有特殊要求,用户id和用户昵称中只返回用户昵称
参数: `meeting_id`(必填), `page_size`(默认20), `page_number`(默认1)
> 调用示例请参考:`references/api_references.md` - get_meeting_invitees
#### `get_waiting_room` — 查询等候室成员记录
参数: `meeting_id`(必填), `page_size`(默认20), `page`(默认1)
> 调用示例请参考:`references/api_references.md` - get_waiting_room
#### `get_user_meetings` — 查询用户会议列表
只能查询即将开始、正在进行中的会议
如果用户需要查询今天的会议, 需要组合 `get_user_meetings` 和 `get_user_ended_meetings`(查询今天已结束的会议) 2 个 接口的返回结果
根据返回值中的remaining、next_pos、next_cursory进行翻页查询。
参数:
`pos`(可选) - 查询起始位置,默认为0。分页获取用户会议列表的查询起始时间值,unix 秒级时间戳
`cursory`(可选) - 分页游标,默认为100
`is_show_all_sub_meetings`(可选) - 是否展示全部子会议,0-不展示,1-展示,默认为0
> 调用示例请参考:`references/api_references.md` - get_user_meetings
#### `get_user_ended_meetings` — 查询用户已结束会议列表
参数: `start_time`(必填, 字符串,秒级时间戳), `end_time`(必填, 字符串,秒级时间戳), `page_size`(默认20), `page_number`(默认1)
> 调用示例请参考:`references/api_references.md` - get_user_ended_meetings
---
3. 录制与转写
录制相关接口需要的record_file_id可以通过`get_records_list`获取
#### `get_records_list` — 查询录制列表
参数:
`start_time`(可选) - 查询开始时间,秒级时间戳,会议id/会议code为空时该参数必填
`end_time`(可选) - 查询结束时间,秒级时间戳,会议id/会议code为空时该参数必填
`page_number`(可选) - 页码,从1开始
`meeting_id`(可选) - 会议ID,不为空时优先根据会议ID查询(若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 get_meeting_by_code 查询 meeting_id)
`meeting_code`(可选) - 会议code,当meeting_id为空且meeting_code不为空时根据会议code查询
> 调用示例请参考:`references/api_references.md` - get_records_list
#### `get_record_addresses` — 获取录制下载地址
参数: `meeting_record_id`(必填), `page_number`(默认1)
> 调用示例请参考:`references/api_references.md` - get_record_addresses
#### `get_transcripts_details` — 查询转写详情
参数: `record_file_id`(必填), `meeting_id`(可选, 若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 get_meeting_by_code 查询 meeting_id)
> 调用示例请参考:`references/api_references.md` - get_transcripts_details
#### `get_transcripts_paragraphs` — 查询转写段落
参数:
`record_file_id`(必填) - 录制文件ID
`meeting_id`(可选) - 会议ID
> 调用示例请参考:`references/api_references.md` - get_transcripts_paragraphs
#### `search_transcripts` — 搜索转写内容
参数:
`record_file_id`(必填) - 录制文件ID
`text`(必填) - 搜索的文本,如果是中文需要 urlencode
`meeting_id`(可选) - 会议ID
> 调用示例请参考:`references/api_references.md` - search_transcripts
#### `get_smart_minutes` — 获取智能纪要
参数:
`record_file_id`(必填) - 录制文件ID
`lang`(可选) - 翻译语言选择: default(原文,不翻译) / zh(简体中文) / en(英文) / ja(日语),默认 default
`pwd`(可选) - 录制文件访问密码
> 调用示例请参考:`references/api_references.md` - get_smart_minutes
---
版本更新
`check_skill_version` — 检查版本更新
重要:版本更新完成后,请重新开始一个新的对话/会话,以确保新版本的规则完全生效。在同一会话中继续使用可能仍受旧规则影响。
触发场景:
用户询问是否有新版本时
用户遇到已知问题可能在新版本中修复时
特点:
只提示更新,不强制更新
自动检测用户当前版本与最新版本
用户可选择更新或跳过,不会强制更新
参数: 无
> 调用示例:
```bash
mcporter call tencent-meeting-mcp check_skill_version --args '{}'
```
---
调用方式
```bash
示例:获取基准时间(用户使用相对时间描述时必须先调用,不传参数)
mcporter call tencent-meeting-mcp convert_timestamp --args '{}'
示例:将时间字符串转化为时间戳(调用会议工具前先转化时间)
mcporter call tencent-meeting-mcp convert_timestamp --args '{"parse_time_str": "2026-03-25 14:00:00"}'
示例:将秒级时间戳转化为可读时间(展示结果时先转化时间戳)
mcporter call tencent-meeting-mcp convert_timestamp --args '{"parse_time_unix": 1774594800}'
示例:将毫秒级时间戳转化为可读时间(自动识别13位毫秒级,保留毫秒精度)
mcporter call tencent-meeting-mcp convert_timestamp --args '{"parse_time_unix": 1774594800123}'
示例:指定时区转换(如纽约时间)
mcporter call tencent-meeting-mcp convert_timestamp --args '{"parse_time_unix": 1774594800, "timezone": "America/New_York"}'
示例:创建会议
mcporter call tencent-meeting-mcp schedule_meeting --args '{"subject": "周会", "start_time": "1773280800", "end_time": "1773284400"}'
示例:查询会议详情
mcporter call tencent-meeting-mcp get_meeting --args '{"meeting_id": "xxx"}'
示例:获取智能纪要
mcporter call tencent-meeting-mcp get_smart_minutes --args '{"record_file_id": "xxx"}'
```