
Tencent Meeting Mcp
- 8 installs
- 33 repo stars
- Updated April 26, 2026
- bighardperson/computer-science-skills-collection
tencent-meeting-mcp is a Claude skill that wraps the Tencent Meeting MCP service to schedule, modify, cancel and query online meetings plus read their recordings and transcripts.
About
This skill drives the Tencent Meeting MCP service so an agent can schedule, update, cancel and look up online meetings by meeting_id or 9-digit meeting code. It also reads participants, invitees, waiting-room members, recording lists, download addresses, transcripts and AI smart minutes. A developer uses it when a workflow needs to manage Tencent video meetings or pull meeting recordings and transcripts. It matters because it enforces timezone-safe timestamp handling and required trace-ID surfacing for the Tencent Meeting API.
- Wraps the Tencent Meeting (腾讯会议) MCP service to schedule, update, cancel and query meetings
- Reads participants, invitees, waiting-room members and recording/transcript details
- Includes convert_timestamp for Asia/Shanghai timezone-safe meeting time handling
Tencent Meeting Mcp by the numbers
- 8 all-time installs (skills.sh)
- Ranked #2,242 of 3,280 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Jul 30, 2026 (Skillselion catalog sync)
tencent-meeting-mcp capabilities & compatibility
Requires a TENCENT_MEETING_TOKEN; a Tencent Meeting account is needed
- Capabilities
- meeting scheduling · transcript retrieval · recording download
- Works with
- teams
- Use cases
- transcription · project management
- Runs
- Remote server
- Pricing
- Bring your own API key
What tencent-meeting-mcp says it does
腾讯会议 MCP 服务
在用户要求**预约、创建、安排**一场腾讯会议时,使用 `schedule_meeting`
在用户要求获取**智能纪要、AI纪要、会议总结**时,使用 `get_smart_minutes`
npx skills add https://github.com/bighardperson/computer-science-skills-collection --skill tencent-meeting-mcpAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 8 |
|---|---|
| repo stars | ★ 33 |
| Last updated | April 26, 2026 |
| Repository | bighardperson/computer-science-skills-collection ↗ |
What it does
Manage Tencent Meeting online meetings and pull their recordings, transcripts and AI minutes from an agent.
Who is it for?
Agents that manage Tencent Meeting scheduling and need meeting recordings, transcripts or AI minutes
Skip if: Tencent Docs, WeChat approvals, PSTN calls, or other conferencing platforms like Zoom, Teams, Feishu or DingTalk
When should I use this skill?
The user asks to schedule, modify, cancel or query a Tencent Meeting, view participants, or get a meeting recording, transcript or smart minutes
By the numbers
- 9-digit meeting code lookup via get_meeting_by_code
- default timezone Asia/Shanghai (UTC+8)
Files
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 setup.sh验证配置
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_meetingupdate_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_meetingcancel_meeting — 取消会议
强制:取消前让用户进行二次确认:向用户展示要取消的会议信息,用户确认后再执行取消。
如果用户输入 meeting_code,先通过 get_meeting_by_code 查询 meeting_id 及相关 meeting_info。
参数:
meeting_id(必填) - 会议IDsub_meeting_id(可选) - 周期性会议子会议ID,取消周期性会议的某个子会议时传入meeting_type(可选) - 如果需要取消整场周期性会议,传1,其他情况下不传
调用示例请参考:references/api_references.md - cancel_meetingget_meeting — 查询会议详情
- 返回主持人和参会者时,如果没有特殊要求,用户id和用户昵称中只返回用户昵称
参数: meeting_id(必填)
调用示例请参考:references/api_references.md - get_meetingget_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_participantsget_meeting_invitees — 获取受邀成员列表
- 返回邀请人时,如果没有特殊要求,用户id和用户昵称中只返回用户昵称
参数: meeting_id(必填), page_size(默认20), page_number(默认1)
调用示例请参考:references/api_references.md - get_meeting_inviteesget_waiting_room — 查询等候室成员记录
参数: meeting_id(必填), page_size(默认20), page(默认1)
调用示例请参考:references/api_references.md - get_waiting_roomget_user_meetings — 查询用户会议列表
只能查询即将开始、正在进行中的会议
如果用户需要查询今天的会议, 需要组合 get_user_meetings 和 get_user_ended_meetings(查询今天已结束的会议) 2 个 接口的返回结果
根据返回值中的remaining、next_pos、next_cursory进行翻页查询。
参数:
pos(可选) - 查询起始位置,默认为0。分页获取用户会议列表的查询起始时间值,unix 秒级时间戳cursory(可选) - 分页游标,默认为100is_show_all_sub_meetings(可选) - 是否展示全部子会议,0-不展示,1-展示,默认为0
调用示例请参考:references/api_references.md - get_user_meetingsget_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_listget_record_addresses — 获取录制下载地址
参数: meeting_record_id(必填), page_number(默认1)
调用示例请参考:references/api_references.md - get_record_addressesget_transcripts_details — 查询转写详情
参数: record_file_id(必填), meeting_id(可选, 若用户提供的是 9 位**会议号(meeting_code)而非 meeting_id,先通过 get_meeting_by_code 查询 meeting_id)
调用示例请参考:references/api_references.md - get_transcripts_detailsget_transcripts_paragraphs — 查询转写段落
参数:
record_file_id(必填) - 录制文件IDmeeting_id(可选) - 会议ID
调用示例请参考:references/api_references.md - get_transcripts_paragraphssearch_transcripts — 搜索转写内容
参数:
record_file_id(必填) - 录制文件IDtext(必填) - 搜索的文本,如果是中文需要 urlencodemeeting_id(可选) - 会议ID
调用示例请参考:references/api_references.md - search_transcriptsget_smart_minutes — 获取智能纪要
参数:
record_file_id(必填) - 录制文件IDlang(可选) - 翻译语言选择: default(原文,不翻译) / zh(简体中文) / en(英文) / ja(日语),默认 defaultpwd(可选) - 录制文件访问密码
调用示例请参考:references/api_references.md - get_smart_minutes---
版本更新
check_skill_version — 检查版本更新
重要:版本更新完成后,请重新开始一个新的对话/会话,以确保新版本的规则完全生效。在同一会话中继续使用可能仍受旧规则影响。
触发场景:
- 用户询问是否有新版本时
- 用户遇到已知问题可能在新版本中修复时
特点:
- 只提示更新,不强制更新
- 自动检测用户当前版本与最新版本
- 用户可选择更新或跳过,不会强制更新
参数: 无
调用示例:
mcporter call tencent-meeting-mcp check_skill_version --args '{}'---
调用方式
# 示例:获取基准时间(用户使用相对时间描述时必须先调用,不传参数)
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"}'腾讯会议 MCP 工具完整参考
本文件包含所有工具的详细参数说明、调用示例与返回值说明。
---
会议管理
1. schedule_meeting — 创建/预订会议
功能:创建一个新的腾讯会议。
参数:
| 参数 | 类型 | 必填 | 默认值 | 取值范围/说明 |
|---|---|---|---|---|
subject | string | ✅ | - | 会议主题 |
start_time | string | ✅ | - | 会议开始时间,秒级时间戳 |
end_time | string | ✅ | - | 会议结束时间,秒级时间戳 |
password | string | ❌ | - | 会议密码(4~6位数字) |
time_zone | string | ❌ | - | 时区,遵循 Oracle-TimeZone 标准,例如:Asia/Shanghai |
meeting_type | number | ❌ | 0 | 0:普通会议;1:周期性会议 |
only_user_join_type | number | ❌ | - | 1:所有成员可入会;2:仅受邀成员可入会;3:仅企业内部成员可入会 |
auto_in_waiting_room | boolean | ❌ | false | true:开启等候室;false:不开启等候室 |
recurring_rule | object | ❌ | - | 周期性会议配置,当 meeting_type=1 时使用(见下方子字段) |
recurring_rule.recurring_type | number | ❌ | - | 周期类型:0-每天、1-周一至周五、2-每周、3-每两周、4-每月 |
recurring_rule.until_type | number | ❌ | - | 结束类型:0-按日期结束、1-按次数结束 |
recurring_rule.until_count | number | ❌ | - | 重复次数(1-50次),当 until_type=1 时必填 |
recurring_rule.until_date | number | ❌ | - | 结束日期时间戳(秒级),当 until_type=0 时必填 |
recurring_rule.customized_recurring_type | number | ❌ | - | 自定义周期类型(保留字段) |
recurring_rule.customized_recurring_step | number | ❌ | - | 自定义周期步长(保留字段) |
recurring_rule.customized_recurring_days | number | ❌ | - | 自定义周期天数(保留字段) |
调用示例:
# 普通会议
mcporter call tencent-meeting-mcp schedule_meeting --args '{"subject": "产品周会", "start_time": "1773280800", "end_time": "1773284400"}'
# 周期性会议(每周开会,共重复5次)
mcporter call tencent-meeting-mcp schedule_meeting --args '{
"subject": "每周例会",
"start_time": "1773280800",
"end_time": "1773284400",
"meeting_type": 1,
"recurring_rule": {
"recurring_type": 2,
"until_type": 1,
"until_count": 5
}
}'
# 周期性会议(每两周开会,共重复50次)
mcporter call tencent-meeting-mcp schedule_meeting --args '{
"subject": "每双周例会",
"start_time": "1773280800",
"end_time": "1773284400",
"meeting_type": 1,
"recurring_rule": {
"recurring_type": 3,
"until_type": 1,
"until_count": 50
}
}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_number | int64 | 会议数量 |
meeting_info_list | array | 会议列表 |
meeting_info_list[].subject | string | 会议主题 |
meeting_info_list[].meeting_code | string | 会议 App 的呼入号码 |
meeting_info_list[].password | string | 会议密码 |
meeting_info_list[].start_time | string | 会议开始时间戳(秒) |
meeting_info_list[].end_time | string | 会议结束时间戳(秒) |
meeting_info_list[].join_url | string | 加入会议 URL |
meeting_info_list[].participants | array | 邀请的参会人列表 |
meeting_info_list[].participants[].userid | string | 参会人用户 ID |
meeting_info_list[].participants[].nick_name | string | 参会人匿名昵称 |
meeting_info_list[].participants[].is_anonymous | bool | 是否匿名入会 |
---
2. update_meeting — 修改会议
功能:修改已创建的会议信息(主题、时间、密码、时区、会议类型、入会限制、等候室、周期性规则等)。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_id | string | ✅ | 会议ID |
subject | string | ❌ | 新会议主题 |
start_time | string | ❌ | 新开始时间,秒级时间戳 |
end_time | string | ❌ | 新结束时间,秒级时间戳 |
password | string | ❌ | 会议密码(4~6位数字),可不填。如果将字段值改为空字符串"",则表示取消会议密码 |
time_zone | string | ❌ | 时区,遵循 Oracle-TimeZone 标准,例如:Asia/Shanghai |
meeting_type | number | ❌ | 会议类型,默认值为0。0:普通会议 1:周期性会议 |
only_user_join_type | number | ❌ | 成员入会限制。1:所有成员可入会 2:仅受邀成员可入会 3:仅企业内部成员可入会 |
auto_in_waiting_room | boolean | ❌ | 是否开启等候室,默认值为 false。true:开启 false:不开启 |
recurring_rule | object | ❌ | 周期性会议配置,当 meeting_type=1 时使用(见下方子字段) |
recurring_rule.recurring_type | number | ❌ | 周期类型:0-每天 1-周一至周五 2-每周 3-每两周 4-每月 5-自定义 |
recurring_rule.until_type | number | ❌ | 结束类型:0-按日期结束 1-按次数结束 |
recurring_rule.until_count | number | ❌ | 重复次数(1-50次),当 until_type=1 时必填 |
recurring_rule.until_date | number | ❌ | 结束日期时间戳(秒级),当 until_type=0 时必填 |
recurring_rule.customized_recurring_type | number | ❌ | 自定义周期类型:0-按天 1-按周 2-按月(以周为粒度) 3-按月(以日期为粒度) |
recurring_rule.customized_recurring_step | number | ❌ | 自定义周期步长,例如:每5天重复一次 |
recurring_rule.customized_recurring_days | number | ❌ | 自定义周期天数,根据 customized_recurring_type 和 customized_recurring_step 的不同,该字段可取值与表达含义不同 |
recurring_rule.sub_meeting_id | string | ❌ | 子会议 ID,表示修改该子会议时间,不可与周期性会议规则同时修改 |
调用示例:
# 修改非周期性会议
mcporter call tencent-meeting-mcp update_meeting --args '{"meeting_id": "xxx", "subject": "新主题", "start_time": "1773284400", "end_time": "1773288000"}'
# 修改周期性会议其中一场子会议
mcporter call tencent-meeting-mcp update_meeting --args '{"meeting_id": "xxx", "start_time": "1773842400", "end_time": "1773846000", "meeting_type": 1, "recurring_rule": {"sub_meeting_id": "yyy"}}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_number | int64 | 会议数量 |
meeting_info_list | array | 会议列表 |
meeting_info_list[].meeting_id | string | 会议唯一 ID |
meeting_info_list[].meeting_code | string | 会议号码 |
meeting_info_list[].host_key | string | 主持人密钥 |
meeting_info_list[].enable_live | bool | 是否开启直播 |
meeting_info_list[].live_config | object | 直播配置(内部只返回直播观看地址) (含子字段,见下方各行) |
meeting_info_list[].live_config.live_addr | string | 直播观看地址 |
meeting_info_list[].settings | object | 会议设置 (含子字段,见下方各行) |
meeting_info_list[].settings.change_nickname | int64 | 是否允许用户自己改名(1:允许 2:不允许) |
meeting_info_list[].settings.only_user_join_type | int64 | 成员入会限制(1:所有成员 2:仅受邀成员 3:仅企业内部成员) |
---
3. cancel_meeting — 取消会议
功能:取消已创建的会议。支持取消普通会议或周期性会议的某个子会议。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_id | string | ✅ | 会议ID |
sub_meeting_id | string | ❌ | 周期性会议子会议ID,取消周期性会议的某个子会议时传入 |
meeting_type | number | ❌ | 如果需要取消整场周期性会议, 传1, 其他情况下不传 |
调用示例:
# 取消普通会议
mcporter call tencent-meeting-mcp cancel_meeting --args '{"meeting_id": "xxx"}'
# 取消周期性会议的某个子会议
mcporter call tencent-meeting-mcp cancel_meeting --args '{"meeting_id": "xxx", "sub_meeting_id": "yyy"}'返回值:
取消成功返回 HTTP 200 空响应(无 body 字段)。请求失败时返回错误信息。
---
4. get_meeting — 查询会议详情
功能:根据会议ID查询会议的详细信息。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_id | string | ✅ | 会议ID |
调用示例:
mcporter call tencent-meeting-mcp get_meeting --args '{"meeting_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_number | int64 | 会议数量 |
meeting_info_list | array | 会议列表 |
meeting_info_list[].meeting_id | string | 会议唯一 ID |
meeting_info_list[].meeting_code | string | 会议号码 |
meeting_info_list[].subject | string | 会议主题 |
meeting_info_list[].start_time | string | 会议开始时间戳(秒) |
meeting_info_list[].end_time | string | 会议结束时间戳(秒) |
meeting_info_list[].status | string | 会议状态(MEETING_STATE_INIT/MEETING_STATE_STARTED/MEETING_STATE_ENDED 等) |
meeting_info_list[].join_url | string | 加入会议 URL |
meeting_info_list[].password | string | 会议密码 |
meeting_info_list[].need_password | bool | 是否需要密码 |
meeting_info_list[].host_key | string | 主持人密钥 |
meeting_info_list[].enable_live | bool | 是否开启直播 |
meeting_info_list[].enable_host_key | bool | 是否开启主持人密钥 |
meeting_info_list[].enable_enroll | bool | 是否开启报名 |
meeting_info_list[].enable_doc_upload_permission | bool | 是否允许成员上传文档 |
meeting_info_list[].allow_enterprise_intranet_only | bool | 是否仅允许企业内网(混合云企业返回) |
meeting_info_list[].has_vote | bool | 是否有投票 |
meeting_info_list[].sync_to_wework | bool | 是否同步到企业微信 |
meeting_info_list[].meeting_type | int64 | 会议类型(0:一次性 1:周期性 2:微信专属 等) |
meeting_info_list[].type | int64 | 会议模式(0:预约 1:快速) |
meeting_info_list[].location | string | 会议地点 |
meeting_info_list[].time_zone | string | 时区 |
meeting_info_list[].media_set_type | int64 | 0:公网会议 1:专网会议(混合云企业返回) |
meeting_info_list[].current_sub_meeting_id | string | 当前子会议 ID(进行中/即将开始) |
meeting_info_list[].remain_sub_meetings | int64 | 剩余子会议场数 |
meeting_info_list[].has_more_sub_meeting | int64 | 0:无更多 1:有更多子会议特例 |
meeting_info_list[].hosts | array | 主持人列表 |
meeting_info_list[].hosts[].userid | string | 主持人用户 ID |
meeting_info_list[].hosts[].operator_id | string | 操作者 ID |
meeting_info_list[].hosts[].operator_id_type | int64 | 操作者 ID 类型 |
meeting_info_list[].current_hosts | array | 当前主持人列表 |
meeting_info_list[].current_hosts[].userid | string | 当前主持人用户 ID |
meeting_info_list[].current_hosts[].operator_id | string | 操作者 ID |
meeting_info_list[].current_hosts[].operator_id_type | int64 | 操作者 ID 类型(1:userid 2:openid) |
meeting_info_list[].current_co_hosts | array | 当前联席主持人列表 |
meeting_info_list[].current_co_hosts[].userid | string | 联席主持人用户 ID |
meeting_info_list[].current_co_hosts[].operator_id | string | 操作者 ID |
meeting_info_list[].current_co_hosts[].operator_id_type | int64 | 操作者 ID 类型(1:userid 2:openid) |
meeting_info_list[].participants | array | 受邀参会人列表 |
meeting_info_list[].participants[].userid | string | 受邀参会人用户 ID |
meeting_info_list[].participants[].operator_id | string | 操作者 ID |
meeting_info_list[].participants[].operator_id_type | int64 | 操作者 ID 类型(1:userid 2:openid) |
meeting_info_list[].guests | array | 外部嘉宾列表 |
meeting_info_list[].guests[].guest_name | string | 嘉宾名称 |
meeting_info_list[].guests[].area | string | 区域码 |
meeting_info_list[].guests[].phone_number | string | 手机号 |
meeting_info_list[].sub_meetings | array | 周期性子会议列表 |
meeting_info_list[].sub_meetings[].sub_meeting_id | string | 子会议 ID |
meeting_info_list[].sub_meetings[].start_time | string | 子会议开始时间 |
meeting_info_list[].sub_meetings[].end_time | string | 子会议结束时间 |
meeting_info_list[].sub_meetings[].status | int64 | 0:存在 1:已删除 |
meeting_info_list[].recurring_rule | object | 周期性会议规则 (含子字段,见下方各行) |
meeting_info_list[].recurring_rule.recurring_type | int64 | 频率(0:每天 1:周一至周五 2:每周 3:每两周 4:每月) |
meeting_info_list[].recurring_rule.until_type | int64 | 结束类型(0:按日期 1:按次数) |
meeting_info_list[].recurring_rule.until_count | int64 | 限定次数(1-50) |
meeting_info_list[].recurring_rule.until_date | int64 | 结束日期时间戳 |
meeting_info_list[].recurring_rule.customized_recurring_type | int64 | 自定义周期类型 |
meeting_info_list[].recurring_rule.customized_recurring_step | int64 | 自定义周期步长 |
meeting_info_list[].recurring_rule.customized_recurring_days | int64 | 自定义周期天数 |
meeting_info_list[].settings | object | 会议设置 (含子字段,见下方各行) |
meeting_info_list[].settings.allow_in_before_host | bool | 允许成员在主持人进会前加入 |
meeting_info_list[].settings.allow_multi_device | bool | 允许多端入会 |
meeting_info_list[].settings.allow_screen_shared_watermark | bool | 屏幕共享水印 |
meeting_info_list[].settings.allow_unmute_self | bool | 静音自解除 |
meeting_info_list[].settings.auto_asr | bool | 自动转写 |
meeting_info_list[].settings.auto_in_waiting_room | bool | 开启等候室 |
meeting_info_list[].settings.auto_record_type | string | 自动录制类型(none:禁用 local:本地录制 cloud:云录制) |
meeting_info_list[].settings.enable_host_pause_auto_record | bool | 允许主持人暂停/停止云录制 |
meeting_info_list[].settings.mute_enable_join | bool | 加入静音 |
meeting_info_list[].settings.mute_enable_type_join | int64 | 加入静音类型 |
meeting_info_list[].settings.only_allow_enterprise_user_join | bool | 仅企业内部成员可入会 |
meeting_info_list[].settings.only_user_join_type | int64 | 成员入会限制(1:所有成员 2:仅受邀成员 3:仅企业内部成员) |
meeting_info_list[].settings.open_asr_view | int64 | 主持人入会是否自动打开转写侧边栏(auto_asr 为 true 时生效) |
meeting_info_list[].settings.participant_join_auto_record | bool | 成员入会自动录制 |
meeting_info_list[].settings.water_mark_type | int64 | 水印类型 |
meeting_info_list[].live_config | object | 直播配置 (含子字段,见下方各行) |
meeting_info_list[].live_config.enable_live_im | bool | 开启直播互动 |
meeting_info_list[].live_config.enable_live_replay | bool | 开启直播回放 |
meeting_info_list[].live_config.live_addr | string | 直播观看地址 |
meeting_info_list[].live_config.live_password | string | 直播密码 |
meeting_info_list[].live_config.live_subject | string | 直播主题 |
meeting_info_list[].live_config.live_summary | string | 直播简介 |
meeting_info_list[].live_config.live_watermark | object | 直播水印对象 (含子字段,见下方各行) |
meeting_info_list[].live_config.live_watermark.watermark_opt | int64 | 水印选项(0:默认水印 1:无水印) |
---
5. get_meeting_by_code — 通过会议Code查询
功能:通过9位会议号查询会议信息。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_code | string | ✅ | 9位会议号 |
调用示例:
mcporter call tencent-meeting-mcp get_meeting_by_code --args '{"meeting_code": "904854736"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_number | int64 | 会议数量 |
remaining | int64 | 是否还剩下会议(非0表示需继续查询) |
next_pos | int64 | 下次查询的 pos 参数 |
next_cursory | int64 | 下次查询的 cursory 参数 |
meeting_info_list | array | 会议列表 |
meeting_info_list[].meeting_id | string | 会议唯一 ID |
meeting_info_list[].meeting_code | string | 会议号码 |
meeting_info_list[].subject | string | 会议主题 |
meeting_info_list[].start_time | string | 开始时间 |
meeting_info_list[].end_time | string | 结束时间 |
meeting_info_list[].status | string | 会议状态(MEETING_STATE_INIT/MEETING_STATE_STARTED/MEETING_STATE_ENDED/MEETING_STATE_CANCELLED/MEETING_STATE_NULL/MEETING_STATE_RECYCLED 等) |
meeting_info_list[].join_url | string | 加入会议 URL |
meeting_info_list[].password | string | 会议密码 |
meeting_info_list[].need_password | bool | 是否需要密码 |
meeting_info_list[].meeting_type | int64 | 会议类型(0:一次性 1:周期性 2:微信专属 5:个人会议号 6:网络研讨会) |
meeting_info_list[].type | int64 | 会议模式 0:预约 1:快速 |
meeting_info_list[].location | string | 会议地点 |
meeting_info_list[].time_zone | string | 时区 |
meeting_info_list[].media_set_type | int64 | 0:公网会议 1:专网会议(混合云企业返回) |
meeting_info_list[].current_sub_meeting_id | string | 当前子会议 ID(进行中/即将开始) |
meeting_info_list[].remain_sub_meetings | int64 | 剩余子会议场数 |
meeting_info_list[].has_more_sub_meeting | int64 | 0:无更多 1:有更多子会议特例 |
meeting_info_list[].enable_live | bool | 是否开启直播 |
meeting_info_list[].enable_host_key | bool | 是否开启主持人密钥 |
meeting_info_list[].enable_enroll | bool | 是否开启报名 |
meeting_info_list[].enable_doc_upload_permission | bool | 是否允许成员上传文档 |
meeting_info_list[].has_vote | bool | 是否有投票 |
meeting_info_list[].sync_to_wework | bool | 是否同步到企业微信 |
meeting_info_list[].host_key | string | 主持人密钥 |
meeting_info_list[].join_meeting_role | string | 查询者角色(creator/hoster/invitee) |
meeting_info_list[].hosts | array | 主持人列表 |
meeting_info_list[].hosts[].userid | string | 主持人用户 ID |
meeting_info_list[].current_hosts | array | 当前主持人列表 |
meeting_info_list[].current_hosts[].userid | string | 当前主持人用户 ID |
meeting_info_list[].current_co_hosts | array | 当前联席主持人列表 |
meeting_info_list[].current_co_hosts[].userid | string | 联席主持人用户 ID |
meeting_info_list[].participants | array | 受邀参会人列表 |
meeting_info_list[].participants[].userid | string | 受邀参会人用户 ID |
meeting_info_list[].guests | array | 外部嘉宾列表 |
meeting_info_list[].guests[].guest_name | string | 嘉宾名称 |
meeting_info_list[].guests[].area | string | 区域码 |
meeting_info_list[].guests[].phone_number | string | 手机号 |
meeting_info_list[].sub_meetings | array | 周期性子会议列表 |
meeting_info_list[].sub_meetings[].sub_meeting_id | string | 子会议 ID |
meeting_info_list[].sub_meetings[].start_time | string | 子会议开始时间 |
meeting_info_list[].sub_meetings[].end_time | string | 子会议结束时间 |
meeting_info_list[].sub_meetings[].status | int64 | 子会议状态(0:存在 1:已删除) |
meeting_info_list[].recurring_rule | object | 周期性会议规则 (含子字段,见下方各行) |
meeting_info_list[].recurring_rule.recurring_type | int64 | 频率(0:每天 1:周一至周五 2:每周 3:每两周 4:每月) |
meeting_info_list[].recurring_rule.until_type | int64 | 结束类型(0:按日期 1:按次数) |
meeting_info_list[].recurring_rule.until_count | int64 | 限定次数(1-50) |
meeting_info_list[].recurring_rule.until_date | int64 | 结束日期时间戳 |
meeting_info_list[].recurring_rule.customized_recurring_type | int64 | 自定义周期类型 |
meeting_info_list[].recurring_rule.customized_recurring_step | int64 | 自定义周期步长 |
meeting_info_list[].recurring_rule.customized_recurring_days | int64 | 自定义周期天数 |
meeting_info_list[].settings | object | 会议设置 (含子字段,见下方各行) |
meeting_info_list[].settings.allow_in_before_host | bool | 允许成员在主持人进会前加入 |
meeting_info_list[].settings.allow_multi_device | bool | 允许多端入会 |
meeting_info_list[].settings.allow_screen_shared_watermark | bool | 屏幕共享水印 |
meeting_info_list[].settings.allow_unmute_self | bool | 静音自解除 |
meeting_info_list[].settings.auto_asr | bool | 自动转写 |
meeting_info_list[].settings.auto_in_waiting_room | bool | 开启等候室 |
meeting_info_list[].settings.auto_record_type | string | 自动录制类型(none:禁用 local:本地录制 cloud:云录制) |
meeting_info_list[].settings.change_nickname | int64 | 是否允许用户改名(1:允许 2:不允许) |
meeting_info_list[].settings.enable_host_pause_auto_record | bool | 允许主持人暂停/停止云录制 |
meeting_info_list[].settings.mute_enable_join | bool | 加入静音 |
meeting_info_list[].settings.mute_enable_type_join | int64 | 加入静音类型 |
meeting_info_list[].settings.only_allow_enterprise_user_join | bool | 仅企业内部成员可入会 |
meeting_info_list[].settings.only_user_join_type | int64 | 成员入会限制(1:所有成员 2:仅受邀成员 3:仅企业内部成员) |
meeting_info_list[].settings.participant_join_auto_record | bool | 成员入会自动录制 |
meeting_info_list[].settings.water_mark_type | int64 | 水印类型 |
meeting_info_list[].live_config | object | 直播配置 (含子字段,见下方各行) |
meeting_info_list[].live_config.enable_live_im | bool | 开启直播互动 |
meeting_info_list[].live_config.enable_live_password | bool | 是否开启直播密码 |
meeting_info_list[].live_config.enable_live_replay | bool | 开启直播回放 |
meeting_info_list[].live_config.live_addr | string | 直播观看地址 |
meeting_info_list[].live_config.live_password | string | 直播密码 |
meeting_info_list[].live_config.live_subject | string | 直播主题 |
meeting_info_list[].live_config.live_summary | string | 直播简介 |
meeting_info_list[].live_config.live_watermark | object | 直播水印对象 (含子字段,见下方各行) |
meeting_info_list[].live_config.live_watermark.watermark_opt | int64 | 水印选项(0:默认水印 1:无水印) |
---
成员管理
6. get_meeting_participants — 获取参会成员明细
功能:查询会议的实际参会成员信息。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_id | string | ✅ | 会议ID |
sub_meeting_id | string | ❌ | 周期性会议子会议 ID。说明:可通过查询用户的会议列表、查询会议接口获取返回的子会议 ID,即 current_sub_meeting_id;如果是周期性会议,此参数必传。 |
pos | string | ❌ | 分页获取参会成员列表的查询起始位置值。当参会成员较多时,建议使用此参数进行分页查询,避免查询超时。此参数为非必选参数,默认值为0,从头开始查询。设置每页返回的数量,请参考参数"size"的说明。查询返回输出参数"has_remaining"为 true,表示该会议人数较多,还有一定数量的参会成员需要继续查询。返回参数"next_pos"的值即为下一次查询的 pos 的值。多次调用该查询接口直到输出参数"has_remaining"值为 false。 |
size | string | ❌ | 拉取参会成员条数,目前每页支持最大100条。 |
start_time | string | ❌ | 参会时间过滤起始时间(单位秒)。说明:时间区间不允许超过31天,如果为空默认当前时间前推31天;start_time 和 end_time 都没传时最大查询时间跨度90天;对于周期性会议查询暂时不生效,请使用分页参数查询。 |
end_time | string | ❌ | 参会时间过滤终止时间(单位秒)。说明:时间区间不允许超过31天,如果为空默认取当前时间;start_time 和 end_time 都没传时最大查询时间跨度90天;对于周期性会议查询暂时不生效,请使用分页参数查询。 |
调用示例:
mcporter call tencent-meeting-mcp get_meeting_participants --args '{"meeting_id": "xxx", "size": "20", "pos": "0"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_id | string | 会议唯一 ID |
meeting_code | string | 会议号码 |
subject | string | 会议主题 |
schedule_start_time | string | 预定开始时间戳(秒) |
schedule_end_time | string | 预定结束时间戳(秒) |
total_count | int64 | 当前参会总人次 |
has_remaining | bool | 是否还有未拉取的数据(上限5w条) |
next_pos | int64 | 下次查询的 pos 值(has_remaining 为 true 时使用) |
participants | array | 参会人员对象数组 |
participants[].userid | string | 参会者用户 ID |
participants[].open_id | string | OAuth2.0 用户 openId |
participants[].ms_open_id | string | 当场会议用户临时 ID(可用于会控) |
participants[].user_name | string | 入会用户名(base64编码) |
participants[].is_enterprise_user | bool | 是否企业用户 |
participants[].join_time | string | 加入会议时间戳(秒) |
participants[].left_time | string | 离开会议时间戳(秒) |
participants[].user_role | int64 | 用户角色(0:普通 1:创建者 2:主持人 3:创建者+主持人 4:游客 6:联席主持人 等) |
---
7. get_meeting_invitees — 获取受邀成员列表
功能:查询会议邀请的成员列表。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_id | string | ✅ | 会议ID |
page_size | number | ❌ | 每页数量,默认20 |
page_number | number | ❌ | 页码,从1开始 |
调用示例:
mcporter call tencent-meeting-mcp get_meeting_invitees --args '{"meeting_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
has_remaining | bool | 是否还存在受邀成员需要继续查询 |
next_pos | int64 | 下次查询时 pos 参数值(has_remaining 为 true 时使用) |
invitees | array | 受邀成员列表 |
invitees[].userid | string | 用户唯一 ID |
invitees[].nick_name | string | 用户昵称 |
---
8. get_waiting_room — 查询等候室成员记录
功能:查询会议等候室的成员记录。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_id | string | ✅ | 会议ID |
page_size | number | ❌ | 每页数量,默认20 |
page | number | ❌ | 页码,从1开始 |
调用示例:
mcporter call tencent-meeting-mcp get_waiting_room --args '{"meeting_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_id | string | 会议唯一 ID |
meeting_code | string | 会议 CODE |
subject | string | 会议主题 |
schedule_start_time | int64 | 预定开始时间(毫秒) |
schedule_end_time | int64 | 预定结束时间(毫秒) |
total_page | int64 | 总页数 |
current_page | int64 | 当前页码 |
current_size | int64 | 当前页数据条数 |
participants | array | 等候室人员对象数组 |
participants[].userid | string | 成员用户 ID |
participants[].open_id | string | OAuth2.0 用户 openId |
participants[].ms_open_id | string | 当场会议用户临时 ID |
participants[].user_name | string | 入会用户名(base64编码) |
participants[].join_time | int64 | 加入时间(毫秒) |
participants[].left_time | int64 | 离开时间(毫秒) |
---
9. get_user_meetings — 查询用户会议列表
功能:查询当前用户的会议列表。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pos | number | ❌ | 查询起始位置,默认为0。分页获取用户会议列表的查询起始时间值,unix 秒级时间戳 |
cursory | number | ❌ | 分页游标,默认为100 |
is_show_all_sub_meetings | number | ❌ | 是否展示全部子会议,0-不展示,1-展示,默认为0 |
调用示例:
mcporter call tencent-meeting-mcp get_user_meetings --args '{"pos": 0, "cursory": 20, "is_show_all_sub_meetings": 0}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_number | int64 | 会议数量 |
next_cursory | int64 | 分页获取用户会议列表,查询的会议的最后一次修改时间值,UNIX 毫秒级时间戳,分页游标。 因目前一次查询返回会议数量最多为20,当用户会议较多时,如果会议总数量超过20,则需要再次查询。此参数为非必选参数,默认值为0,表示第一次查询利用会议开始时间北京时间当日零点进行查询。 查询返回输出参数“remaining”不为0时,表示还有会议需要继续查询。返回参数“next_cursory”的值即为下一次查询的 cursory 的值。 多次调用该查询接口直到输出参数“remaining”值为0。 当只使用 pos 作为分页条件时,可能会出现查询不到第二页,数据排序出现重复数据等情况与 pos 配合使用。 |
next_pos | int64 | 下次查询时请求里需要携带的 pos 参数。 |
remaining | int64 | 是否还剩下会议;因目前一次查询返回会议数量最多为20,如果会议总数量超过20则此字段被置为非0,表示需要再次查询,且下次查询的“pos”参数需从本次响应的“next_pos”字段取值 |
meeting_info_list | array | 会议信息列表 |
meeting_info_list[].meeting_id | string | 会议 ID |
meeting_info_list[].meeting_code | string | 会议 App 的呼入号码 |
meeting_info_list[].subject | string | 会议主题 |
meeting_info_list[].meeting_type | int64 | 会议类型(0:一次性 1:周期性 2:微信专属 5:个人会议号 6:网络研讨会) |
meeting_info_list[].start_time | int64 | 开始时间戳(秒) |
meeting_info_list[].end_time | int64 | 结束时间戳(秒) |
meeting_info_list[].sub_meeting_id | string | 子会议 ID |
---
10. get_user_ended_meetings — 查询用户已结束会议列表
功能:查询当前用户在指定时间范围内已结束的会议列表。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
start_time | string | ✅ | 查询开始时间,秒级时间戳 |
end_time | string | ✅ | 查询结束时间,秒级时间戳 |
page_size | number | ❌ | 每页数量,默认20 |
page_number | number | ❌ | 页码,从1开始 |
调用示例:
mcporter call tencent-meeting-mcp get_user_ended_meetings --args '{"start_time": "1773280800", "end_time": "1773367200"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
total_count | int64 | 数据总条数 |
total_page | int64 | 数据总页数 |
current_page | int64 | 当前页 |
current_size | int64 | 当前实际页大小 |
meeting_info_list | array | 会议信息列表 |
meeting_info_list[].meeting_id | string | 会议 ID |
meeting_info_list[].meeting_code | string | 会议 App 的呼入号码 |
meeting_info_list[].subject | string | 会议主题 |
meeting_info_list[].meeting_type | int64 | 会议类型(0:一次性 1:周期性 2:微信专属 5:个人会议号 6:网络研讨会) |
meeting_info_list[].start_time | int64 | 开始时间戳(秒) |
meeting_info_list[].end_time | int64 | 结束时间戳(秒) |
meeting_info_list[].sub_meeting_id | string | 子会议 ID |
---
录制与转写
---
11. get_record_addresses — 获取录制下载地址
功能:获取录制文件的下载链接。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
meeting_record_id | string | ✅ | 会议录制ID |
page_number | number | ❌ | 页码,从1开始 |
调用示例:
mcporter call tencent-meeting-mcp get_record_addresses --args '{"meeting_record_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
meeting_id | string | 会议唯一 ID |
meeting_code | string | 会议 code |
meeting_record_id | string | 会议录制 ID |
subject | string | 会议主题 |
total_count | int64 | 录制总数 |
total_page | int64 | 总页数 |
current_page | int64 | 当前页 |
current_size | int64 | 当前 size |
record_files | array | 录制文件列表 |
record_files[].record_file_id | string | 录制文件 ID |
record_files[].view_address | string | 播放地址 |
record_files[].meeting_summary | array | 会议纪要文件列表 |
record_files[].meeting_summary[].download_address | string | 纪要下载地址 |
record_files[].meeting_summary[].file_type | string | 文件类型(txt/pdf/docs) |
---
12. get_transcripts_details — 查询转写详情
功能:获取录制文件的完整转写内容。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
record_file_id | string | ✅ | 录制文件ID |
meeting_id | string | ❌ | 会议ID(可选,传入可加速定位) |
pid | string | ❌ | 查询的起始段落 ID。获取 pid 后(含)的段落,默认从0开始 |
limit | string | ❌ | 查询的段落数,默认查询全量数据 |
调用示例:
mcporter call tencent-meeting-mcp get_transcripts_details --args '{"record_file_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
more | bool | 是否还有更多内容 |
minutes | object | 会议纪要对象 (含子字段,见下方各行) |
minutes.audio_detect | int64 | 声纹识别状态(0:未完成 1:已完成) |
minutes.keywords | array\<string\> | 关键词列表 |
minutes.paragraphs | array | 段落对象列表 |
minutes.paragraphs[].pid | string | 段落 ID |
minutes.paragraphs[].start_time | int64 | 段落开始时间(毫秒) |
minutes.paragraphs[].end_time | int64 | 段落结束时间(毫秒) |
minutes.paragraphs[].speaker_info | object | 发言人信息 (含子字段,见下方各行) |
minutes.paragraphs[].speaker_info.userid | string | 企业用户 userid |
minutes.paragraphs[].speaker_info.ms_open_id | string | 会议临时 ID |
minutes.paragraphs[].speaker_info.username | string | 昵称 |
minutes.paragraphs[].sentences | array | 句子列表 |
minutes.paragraphs[].sentences[].sid | string | 句子 ID |
minutes.paragraphs[].sentences[].start_time | int64 | 句子开始时间(毫秒) |
minutes.paragraphs[].sentences[].end_time | int64 | 句子结束时间(毫秒) |
minutes.paragraphs[].sentences[].words | array | 词对象列表 |
minutes.paragraphs[].sentences[].words[].wid | string | 词 ID |
minutes.paragraphs[].sentences[].words[].text | string | 文本内容 |
minutes.paragraphs[].sentences[].words[].start_time | int64 | 词开始时间(毫秒) |
minutes.paragraphs[].sentences[].words[].end_time | int64 | 词结束时间(毫秒) |
---
13. get_transcripts_paragraphs — 查询转写段落
功能:分页获取录制文件的转写段落信息。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
record_file_id | string | ✅ | 录制文件ID |
meeting_id | string | ❌ | 会议ID |
调用示例:
mcporter call tencent-meeting-mcp get_transcripts_paragraphs --args '{"record_file_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
total | int64 | 段落总数 |
audio_detect | int64 | 声纹识别状态(0:未完成 1:已完成) |
pids | array | 段落对象列表 |
pids[].pid | string | 段落 ID |
pids[].start_time | int64 | 段落开始时间(毫秒) |
pids[].end_time | int64 | 段落结束时间(毫秒) |
说明:该接口返回段落 ID 列表,配合 get_transcripts_details 接口通过 pid 获取具体文本内容。---
14. search_transcripts — 搜索转写内容
功能:在录制转写内容中搜索特定关键词。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
record_file_id | string | ✅ | 录制文件ID |
text | string | ✅ | 搜索的文本, 如果是中文, 需要urlencode一下 |
meeting_id | string | ❌ | 会议ID |
调用示例:
mcporter call tencent-meeting-mcp search_transcripts --args '{"record_file_id": "xxx", "text": "产品需求"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
hits | array | 搜索结果列表 |
hits[].pid | string | 段落 ID |
hits[].sid | string | 句子 ID |
hits[].offset | int64 | text 相对词的偏移量 |
hits[].length | int64 | 匹配长度 |
timelines | array | 搜索结果时间戳对象列表 |
timelines[].pid | string | 段落 ID |
timelines[].sid | string | 句子 ID |
timelines[].start_time | int64 | 词开始时间(毫秒) |
---
15. get_smart_minutes — 获取智能纪要
功能:获取会议录制的 AI 智能纪要总结。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
record_file_id | string | ✅ | 录制文件ID |
lang | string | ❌ | 翻译语言:default(原文,不翻译) / zh(简体中文) / en(英文) / ja(日语),默认 default |
pwd | string | ❌ | 录制文件访问密码(录制文件有密码时需传入) |
调用示例:
mcporter call tencent-meeting-mcp get_smart_minutes --args '{"record_file_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
ai_summary | string | 智能总结内容 |
---
返回值:
返回智能纪要的访问地址信息。
---
16. get_records_list — 查询录制列表
功能:根据时间范围和会议ID查询用户的录制列表。
参数:
| 参数 | 类型 | 必填 | 默认值 | 取值范围/说明 |
|---|---|---|---|---|
start_time | string | ✅ | - | 查询开始时间,秒级时间戳 |
end_time | string | ✅ | - | 查询结束时间,秒级时间戳 |
page_number | number | ❌ | 1 | 页码,从1开始 |
meeting_id | string | ❌ | - | 会议ID,不为空时优先根据会议ID查询 |
meeting_code | string | ❌ | - | 会议号,不为空时优先根据会议号查询 |
调用示例:
# 按时间范围查询
mcporter call tencent-meeting-mcp get_records_list --args '{"start_time": "1773280800", "end_time": "1773367200", "page_number": 1}'
# 按会议ID查询
mcporter call tencent-meeting-mcp get_records_list --args '{"start_time": "1773280800", "end_time": "1773367200", "meeting_id": "xxx"}'返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
total_count | int64 | 录制总数 |
total_page | int64 | 总页数 |
current_page | int64 | 当前页码 |
current_size | int64 | 当前页数据条数 |
records | array | 录制列表 |
records[].record_id | string | 录制ID |
records[].meeting_id | string | 会议ID |
records[].meeting_code | string | 会议号 |
records[].subject | string | 会议主题 |
records[].start_time | string | 录制开始时间(秒级时间戳) |
records[].end_time | string | 录制结束时间(秒级时间戳) |
records[].file_size | int64 | 文件大小(字节) |
records[].status | string | 录制状态 |
records[].download_url | string | 下载地址 |
#!/bin/bash
# Setup script for 腾讯会议 MCP Skill
set -e
# 版本号定义
SKILL_VERSION="v1.0.5"
echo "🚀 设置腾讯会议 MCP Skill..."
echo "📦 当前版本: $SKILL_VERSION"
echo ""
# 检查 mcporter
if ! command -v mcporter &> /dev/null; then
echo "⚠️ 未找到 mcporter,正在安装..."
npm install -g mcporter
echo "✅ mcporter 安装完成"
fi
# 新增:检查 TENCENT_MEETING_TOKEN 环境变量
echo "🔍 检查腾讯会议 Token 环境变量..."
if [ -z "$TENCENT_MEETING_TOKEN" ]; then
echo "❌ 错误:未检测到 TENCENT_MEETING_TOKEN 环境变量!"
echo "请先执行以下命令设置环境变量(替换为真实 Token):"
echo " export TENCENT_MEETING_TOKEN=\"your_actual_token_here\""
echo "或在执行脚本时直接传入:"
echo " TENCENT_MEETING_TOKEN=\"your_actual_token_here\" bash this_script.sh"
exit 1 # 退出脚本,避免后续无效操作
else
echo "✅ TENCENT_MEETING_TOKEN 环境变量已配置"
fi
echo ""
# 添加 MCP 配置
echo "🔧 配置 mcporter..."
# 从环境变量中读取用户填写的 Token
mcporter config add tencent-meeting-mcp https://mcp.meeting.tencent.com/mcp/wemeet-open/v1 \
--header "X-Tencent-Meeting-Token=$TENCENT_MEETING_TOKEN" \
--header "X-Skill-Version=$SKILL_VERSION" \
--transport http \
--scope project
# 检查 mcporter config add 命令的返回值
if [ $? -ne 0 ]; then
echo "❌ mcporter 配置添加失败!"
echo "可能的原因:"
echo " - 网络连接问题"
echo " - mcporter 版本不兼容"
echo " - 传入的配置参数有误"
echo ""
echo "请检查上述问题后重试。"
exit 1 # 退出脚本
else
echo "✅ 配置完成!"
fi
echo ""
# 验证配置
echo "🧪 验证配置..."
LIST_OUTPUT=$(mcporter list 2>&1)
# 检查条件:必须包含"tencent-meeting-mcp",并且不能包含"auth required"
if echo "$LIST_OUTPUT" | grep -q "tencent-meeting-mcp" && ! echo "$LIST_OUTPUT" | grep -q "0 healthy"; then
echo "✅ 配置验证成功!"
echo ""
echo "$LIST_OUTPUT" | grep -A 1 "tencent-meeting-mcp" || true
else
echo "⚠️ 配置验证失败!"
echo "$LIST_OUTPUT"
echo "请检查以下可能的原因:"
echo " 1. 网络无法访问 MCP 服务 URL"
echo " 2. Token 无效或已过期"
echo " 3. mcporter 安装不完整"
echo ""
echo "调试命令:"
echo " mcporter list | grep tencent-meeting-mcp"
echo "预期展示:tencent-meeting-mcp (xx tools, 0.3s)"
exit 1
fi
echo ""
echo "─────────────────────────────────────"
echo "🎉 设置完成!"Related skills
FAQ
What does the tencent-meeting-mcp skill do?
It wraps the Tencent Meeting MCP service so an agent can schedule, update, cancel and query meetings and read participants, recordings, transcripts and AI smart minutes.
Does it need a token?
Yes. It requires the TENCENT_MEETING_TOKEN environment variable, obtained by logging in at meeting.tencent.com/ai-skill; without it all tool calls fail auth.