@tencentcloud/sdk-mcp 1.7.4 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +57 -55
  3. package/knowledge/chunker.js +1 -0
  4. package/knowledge/path-meta.js +12 -1
  5. package/knowledge/search/search-core.js +22 -4
  6. package/knowledge/search/search-knowledge.js +1 -1
  7. package/package.json +1 -1
  8. package/resource/index/manifest.json +1 -1
  9. package/resource/integration/callkit/preset/android/integration.md +0 -4
  10. package/resource/integration/callkit/preset/flutter/integration.md +4 -8
  11. package/resource/integration/callkit/preset/ios/integration.md +2 -6
  12. package/resource/integration/callkit/preset/react/integration.md +2 -2
  13. package/resource/integration/callkit/preset/vue/integration.md +9 -9
  14. package/resource/integration/chat/preset/android/integration.md +2 -2
  15. package/resource/integration/chat/preset/flutter/integration.md +2 -2
  16. package/resource/integration/chat/preset/ios/integration.md +10 -10
  17. package/resource/integration/chat/preset/react/integration.md +0 -5
  18. package/resource/integration/chat/preset/uni-app/integration.md +0 -4
  19. package/resource/integration/chat/preset/vue/integration.md +0 -5
  20. package/resource/integration/livekit/preset/live/android/live-host-integration.md +0 -4
  21. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +0 -4
  22. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -3
  23. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +0 -4
  24. package/resource/integration/roomkit/preset/vue/integration.md +152 -439
  25. package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +8 -8
  26. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +2 -2
  27. package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -5
  28. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +7 -7
  29. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +10 -10
  30. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +9 -9
  31. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +7 -8
  32. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +2 -2
  33. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +2 -2
  34. package/resource/knowledge/callkit/faq/android.md +4 -4
  35. package/resource/knowledge/callkit/faq/common.md +4 -4
  36. package/resource/knowledge/callkit/preset/harmonyos/integration.md +0 -4
  37. package/resource/knowledge/callkit/preset/uni-app/integration.md +10 -10
  38. package/resource/knowledge/chat/preset/android-view/integration.md +2 -6
  39. package/resource/knowledge/chat/preset/ios-uikit/integration.md +43 -40
  40. package/resource/knowledge/chat/preset/react/h5/integration.md +0 -5
  41. package/resource/knowledge/chat/preset/vue/features/message-input.md +4 -4
  42. package/resource/knowledge/chat/preset/vue/h5/integration.md +0 -5
  43. package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +3 -3
  44. package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -3
  45. package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +3 -3
  46. package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -3
  47. package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +3 -3
  48. package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -3
  49. package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +3 -3
  50. package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +3 -3
  51. package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +2 -2
  52. package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +2 -2
  53. package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +2 -2
  54. package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +2 -2
  55. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +12 -12
  56. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +4 -4
  57. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +9 -9
  58. package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +2 -2
  59. package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -2
  60. package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +5 -5
  61. package/resource/knowledge/push/config/donut.md +3 -3
  62. package/resource/knowledge/push/config/harmonyos.md +12 -12
  63. package/resource/knowledge/push/config/ios.md +2 -2
  64. package/resource/knowledge/push/integration/android.md +91 -1112
  65. package/resource/knowledge/push/integration/donut.md +8 -8
  66. package/resource/knowledge/push/integration/ios.md +9 -35
  67. package/resource/knowledge/push/integration/unity.md +3 -3
  68. package/resource/knowledge/push/integration/unreal-engine.md +7 -7
  69. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -3
  70. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +9 -9
  71. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +3 -3
  72. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -3
  73. package/resource/knowledge/roomkit/core-sdk/vue/recording.md +3 -3
  74. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +3 -3
  75. package/resource/knowledge/roomkit/preset/ios/integration.md +3 -3
  76. package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +52 -10
  77. package/server.js +42 -34
  78. package/tools/common/get_usersig.js +1 -1
  79. package/tools/common/present_framework_choice.js +5 -5
  80. package/tools/definitions/finalize_answer_def.js +17 -16
  81. package/tools/definitions/get_native_call_uikit_integration_def.js +25 -16
  82. package/tools/definitions/get_native_callkit_core_integration_def.js +37 -26
  83. package/tools/definitions/get_native_chat_uikit_integration_def.js +22 -13
  84. package/tools/definitions/get_native_live_uikit_integration_def.js +30 -21
  85. package/tools/definitions/get_native_livekit_core_integration_def.js +25 -16
  86. package/tools/definitions/get_usersig_def.js +20 -13
  87. package/tools/definitions/get_web_call_uikit_integration_def.js +21 -12
  88. package/tools/definitions/get_web_chat_uikit_integration_def.js +22 -13
  89. package/tools/definitions/get_web_live_uikit_integration_def.js +21 -12
  90. package/tools/definitions/get_web_room_core_integration_def.js +29 -20
  91. package/tools/definitions/get_web_room_uikit_integration_def.js +21 -12
  92. package/tools/definitions/integration-boundary.js +9 -5
  93. package/tools/definitions/present_framework_choice_def.js +21 -21
  94. package/tools/definitions/search_trtc_knowledge_def.js +48 -26
  95. package/tools/definitions/submit_feedback_def.js +18 -14
  96. package/utils/preflight-route.js +203 -185
  97. package/utils/report-cls-client.js +1 -1
  98. package/utils/report-es-client.js +1 -1
@@ -60,18 +60,18 @@
60
60
  1. 配置证书和描述文件。
61
61
 
62
62
  请参见 [微信小程序多端框架配置文档](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/handbook/certificate/ios.html) 或 [腾讯云推送厂商配置文档](https://cloud.tencent.com/document/product/269/100624) 以生成 iOS 应用运行时所需的证书和 Provisioning Profile,这些文件将在后续配置中使用。您需要准备以下文件:
63
- - **开发证书.p12**
63
+ - **开发证书.p12**
64
64
 
65
- - **主 App 描述文件.mobileprovision**
65
+ - **主 App 描述文件.mobileprovision**
66
66
 
67
67
  2. Apple Developer 平台 Bundle ID 配置。
68
68
 
69
69
  请参见 [Apple Developer 平台 Bundle ID 配置指引](https://dev.weixin.qq.com/docs/miniapp/handbook/web/set-bundleid.html),配置时请勾选以下能力:
70
- - **Push Notification**
70
+ - **Push Notification**
71
71
 
72
- - **App Group (按需配置:字段配置可参见** [生成 App GroupID](https://cloud.tencent.com/document/product/269/100624#778049b7-7ce0-4953-95fd-da523cca0bd4)**)**
72
+ - **App Group (按需配置:字段配置可参见** [生成 App GroupID](https://cloud.tencent.com/document/product/269/100624#778049b7-7ce0-4953-95fd-da523cca0bd4)**)**
73
73
 
74
- - Donut 建议的权限:Access WiFi Information、Associated Domains、Hotspot、Wireless Accessory Configuration;如果使用苹果登录,还需开启 Sign In with Apple(更多其他权限开发者按需开启,并非越多越好哈)
74
+ - Donut 建议的权限:Access WiFi Information、Associated Domains、Hotspot、Wireless Accessory Configuration;如果使用苹果登录,还需开启 Sign In with Apple(更多其他权限开发者按需开启,并非越多越好哈)
75
75
 
76
76
  3. 在 Donut 控制台里绑定移动应用的 Bundle ID。
77
77
 
@@ -106,11 +106,11 @@
106
106
  >
107
107
 
108
108
  您需要准备以下文件:
109
- - **开发证书.p12 (之前步骤已经准备完毕)**
109
+ - **开发证书.p12 (之前步骤已经准备完毕)**
110
110
 
111
- - **主 App 描述文件.mobileprovision (之前步骤已经准备完毕)**
111
+ - **主 App 描述文件.mobileprovision (之前步骤已经准备完毕)**
112
112
 
113
- - **Service Extension 的描述文件.mobileprovision(本次功能需要新增的描述文件)**
113
+ - **Service Extension 的描述文件.mobileprovision(本次功能需要新增的描述文件)**
114
114
 
115
115
  当您准备好以上文件后,可以按照描述填入相关信息:
116
116
 
@@ -2,30 +2,16 @@
2
2
 
3
3
  ## 前提条件
4
4
 
5
- 请确认已 开通 Push 服务 并完成 iOS 厂商配置,获取到了下列信息:
5
+ 请确认已 开通 Push 服务 并完成 iOS 厂商配置。
6
6
 
7
- |资源|获取位置|用途|
8
- |---------|---------|---------|
9
- |`SDKAppID`|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览**|调用 `registerPush`。创建 Push 应用后,腾讯云控制台会自动创建相同 `SDKAppID` 的 Chat 应用。|
10
- |Push Key|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览** > **客户端密钥**|独立 Push 场景下,作为 `registerPush` 的 `appKey` 参数。|
11
- |Chat Key|腾讯云控制台 > 即时通信 IM > **消息服务 Chat** > **概览** > **密钥**|Chat 登录使用。不要把 Chat Key 当作 `registerPush` 的 `appKey` 传入。|
12
- |证书 ID|腾讯云控制台上传 APNs 证书后生成|证书 ID 即 `businessID`,在 AppDelegate 中返回给 TIMPush。|
13
- |App Group ID|Apple Developer Center / **Xcode Capabilities**|仅在需要推送触达统计时使用。|
14
- |Push 服务开通状态|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览**|创建 Push 应用不等于已开通 Push 服务,请确认 Push 服务已开通。|
15
- |TIMPush iOS `VERSION`|[更新日志](https://cloud.tencent.com/document/product/269/114289)|`VERSION` 是 Podfile 中 TIMPush 依赖的版本号占位符,例如 `8.9.7537`等,请以实际接入版本为准。|
16
-
17
- 本文示例中的 `VERSION`、`SDKAppID`、`AppKey`、`businessID`、App Group ID 均为占位符,请勿在代码仓库中提交真实密钥。
18
-
19
- ## AI 集成
7
+ ## 方式1:AI 集成
20
8
 
21
9
  通过 npx 安装 [@tencent-rtc/trtc-push-skill](https://www.npmjs.com/package/@tencent-rtc/trtc-push-skill/v/1.0.1#%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 到本地 AI IDE 中,辅助完成 TIMPush 离线推送集成。安装后,您可以直接向 AI 输入“集成 iOS 离线推送”等需求,AI 将根据项目类型引导您完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。详情可参考 AI Coding。
22
10
 
23
- ## 手动集成
11
+ ## 方式2:手动集成
24
12
 
25
13
  ### 步骤1:集成 TIMPush SDK
26
14
 
27
- 如果您想手动集成,请按顺序完成下文配置。
28
-
29
15
  #### 在主 App target 中集成 TIMPush
30
16
 
31
17
  TIMPush 通过 CocoaPods 集成。请在 `Podfile` 中为主 App target 添加 TIMPush 依赖。Podfile 示例:
@@ -54,7 +40,7 @@ end
54
40
  pod install
55
41
  ```
56
42
 
57
- 如果无法安装 TIMPush 最新版本,可先执行 `pod repo update` 更新本地 CocoaPods 仓库列表后再 `pod install`。仓库更新可能耗时较长且影响依赖解析结果,建议在确认版本后执行。
43
+ 如果无法安装 TIMPush 最新版本,可先执行 `pod repo update` 更新本地 CocoaPods 仓库列表后再 `pod install`。
58
44
 
59
45
  > **注意:**
60
46
  > 无论 Swift 还是 Objective-C 项目,都请集成 TXIMSDK_Plus_iOS_XCFramework。
@@ -117,8 +103,6 @@ import TIMPush
117
103
  }
118
104
  ```
119
105
 
120
- **验证**:在 Apple Developer Center 和 Xcode 中确认主 App 与 Notification Service Extension 已绑定到同一个 App Group ID,且 AppDelegate 返回的 `group.<#YOUR_APP_GROUP_ID#>` 与之一致。
121
-
122
106
  ### 步骤2:注册推送服务
123
107
 
124
108
  #### 调用 registerPush
@@ -271,13 +255,7 @@ func loginIMAndRegisterPush() {
271
255
  > 如果您的业务仅使用即时通信 IM 聊天能力,请勿在 IM 登录前先调用 `registerPush`。否则 SDK 可能会按独立推送场景注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,可能会产生额外费用。
272
256
  >
273
257
 
274
- **验证**:
275
-
276
- 1. `registerPush` 的 `onSuccess` 回调被触发。
277
-
278
- 2. 登录腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **推送排查**,按当前场景输入 `registrationID` 或 `userID`,确认 token 已上传。
279
-
280
- 3. 如触发 `onError`,可按 错误码 查询 `code` 含义。
258
+ **验证**:`registerPush` 的 `onSuccess` 回调被触发。如触发 `onError`,可按 错误码 查询 `code` 含义。
281
259
 
282
260
  #### 自定义 registrationID(可选)
283
261
 
@@ -337,7 +315,7 @@ func loginIMAndRegisterPush() {
337
315
 
338
316
  #### 在 Extension 中处理通知
339
317
 
340
- 请将 `group.<#YOUR_APP_GROUP_ID#>` 替换为您在 Apple Developer Center 和 Xcode 中配置的 App Group ID。主 App 和 Extension 必须使用同一个 App Group ID。以下 Swift 写法基于 OC 接口自动桥接,参数命名可能随 SDK 版本调整,请以 SDK 头文件 `TIMPushManager.h` 为准。
318
+ 请将 `group.<#YOUR_APP_GROUP_ID#>` 替换为您在 Apple Developer Center 和 Xcode 中配置的 App Group ID。主 App 和 Extension 必须使用同一个 App Group ID。
341
319
 
342
320
  【Swift】
343
321
  ``` swift
@@ -484,7 +462,7 @@ V2TIMMessage *message = [[V2TIMManager sharedInstance] createTextMessage:@"Hello
484
462
 
485
463
  在腾讯云控制台选择「打开应用内指定页面」。操作路径:腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **推送设置** > **厂商配置** > **iOS** > **对应 APNs 证书** > **编辑** > 点击后续动作 > 打开应用内指定页面。
486
464
 
487
- #### **发送推送时携带** `ext`
465
+ #### **发送推送时携带**跳转参数
488
466
 
489
467
  发送离线推送时,通过 `ext` 字段携带跳转所需的业务信息(如目标页面、会话 ID 等)。`ext` 是一个字符串,结构由业务自定义,推荐使用 JSON 格式便于客户端解析。下文示例统一使用如下结构演示:
490
468
  ``` json
@@ -568,11 +546,9 @@ V2TIMMessage *message = [[V2TIMManager sharedInstance] createTextMessage:@"Hello
568
546
  }];
569
547
  ```
570
548
 
571
- #### **客户端注册监听并解析** `ext`
549
+ #### **客户端注册监听并解析**跳转参数
572
550
 
573
- 请在 AppDelegate 中遵循 TIMPushListener 协议,在 `didFinishLaunchingWithOptions` 中调用 addPushListener 注册监听器,并在 onNotificationClicked 中解析 `ext` 后跳转到业务页面。
574
-
575
- 以下示例只演示解析 `ext` 的核心逻辑,跳转部分用 `TODO` 占位,请按自身业务补充。如果您接入了 TUIKit 并使用 `OfflinePushExtInfo` 组装的 `ext`,可改为 `OfflinePushExtInfo.create(withExtString:)` 解析后再跳转。
551
+ 请在 AppDelegate 中遵循 TIMPushListener 协议,在 `didFinishLaunchingWithOptions` 中调用 addPushListener 注册监听器,并在 onNotificationClicked 中解析 `ext` 后跳转到业务页面。如果您接入了 TUIKit 并使用 `OfflinePushExtInfo` 组装的 `ext`,可改为 `OfflinePushExtInfo.create(withExtString:)` 解析后再跳转。
576
552
 
577
553
  【Swift】
578
554
  ``` swift
@@ -663,7 +639,5 @@ class AppDelegate: UIResponder, UIApplicationDelegate, TIMPushListener {
663
639
  @end
664
640
  ```
665
641
 
666
- **验证**:点击通知后 `onNotificationClicked` 被调用,且 `ext` 内容与发送时设置的一致。如果回调未触发,请检查:控制台点击动作是否选择了**打开应用内指定页面**、监听器是否在 `didFinishLaunchingWithOptions` 中注册、发送消息时是否设置了 `ext`。
667
-
668
642
  ## 接入排查
669
643
 
@@ -112,7 +112,7 @@ android {
112
112
  > 以下荣耀的适配仅 7.7.5283 及以上版本需要配置。
113
113
  >
114
114
 
115
- 1. 下载配置文件添加到工程根目录 **Assets/Plugins/Android/JsonConfigs** 目录下,**该目录需要手动创建**。
115
+ 1. 下载配置文件添加到工程根目录 **Assets/Plugins/Android/JsonConfigs** 目录下,**该目录需要手动创建**。
116
116
 
117
117
  【华为】
118
118
 
@@ -128,7 +128,7 @@ android {
128
128
 
129
129
  配置文件的放置位置如下所示:
130
130
 
131
- 2. 在 **Assets/Plugins/Android/baseProjectTemplate.gradle** 文件中 **buildscript** > **dependencies** 下添加以下配置(如果是需要新增 `buildscript` 建议放在文件最上面):
131
+ 2. 在 **Assets/Plugins/Android/baseProjectTemplate.gradle** 文件中 **buildscript** > **dependencies** 下添加以下配置(如果是需要新增 `buildscript` 建议放在文件最上面):
132
132
 
133
133
  【Gradle 7.1 及以上版本】
134
134
 
@@ -233,7 +233,7 @@ allprojects {
233
233
  }
234
234
  }
235
235
  ```
236
- 3. 在 **Assets/Plugins/Android/launcherTemplate.gradle** 文件中添加下方配置:
236
+ 3. 在 **Assets/Plugins/Android/launcherTemplate.gradle** 文件中添加下方配置:
237
237
 
238
238
  ``` java
239
239
  apply plugin: 'com.google.gms.google-services'
@@ -20,16 +20,16 @@
20
20
 
21
21
  3. 开启远程推送能力。完成证书 ID 配置之后,您需要开启应用的 Push Notifications 能力:
22
22
 
23
- - 如果您的 UE 引擎是从源代码自行编译构建的,您可以通过 “项目设置 > iOS 中勾选 Enable Remote Notifications Support” 来开启对应能力;
23
+ - 如果您的 UE 引擎是从源代码自行编译构建的,您可以通过 “项目设置 > iOS 中勾选 Enable Remote Notifications Support” 来开启对应能力;
24
24
 
25
- - 如果您的 UE 引擎是从 Epic Game 下载的,您可以通过打开 “`<proj_dir>/Config/DefaultEngine.ini`” ,在脚本的 `IOSRuntimeSettings` 中添加:
25
+ - 如果您的 UE 引擎是从 Epic Game 下载的,您可以通过打开 “`<proj_dir>/Config/DefaultEngine.ini`” ,在脚本的 `IOSRuntimeSettings` 中添加:
26
26
 
27
27
  ``` plaintext
28
28
  // Some code
29
29
  [/Script/IOSRuntimeSettings.IOSRuntimeSettings]
30
30
  bEnableRemoteNotificationsSupport=True
31
31
  ```
32
- - 或者,您也可以选择在项目根目录中使用 Xcode 打开 UE 生成的 YourProject.xcworkspace,在 Project > Target 中,点击 Signing & Capabilities 选项,点击左上角 Capability,搜索添加 Push Notifications 能力到您的项目中
32
+ - 或者,您也可以选择在项目根目录中使用 Xcode 打开 UE 生成的 YourProject.xcworkspace,在 Project > Target 中,点击 Signing & Capabilities 选项,点击左上角 Capability,搜索添加 Push Notifications 能力到您的项目中
33
33
 
34
34
  【Android】
35
35
 
@@ -262,13 +262,13 @@ PushManager::GetInstance()->RegisterPush(您的 sdkAppId, "您的 appKey", callb
262
262
 
263
263
  - 如果您需要统计 iOS 设备触达数据,
264
264
 
265
- 1. 在上文的推送参数配置章节中,将“YourGroupID”修改为自己的 App Group ID。
265
+ 1. 在上文的推送参数配置章节中,将“YourGroupID”修改为自己的 App Group ID。
266
266
 
267
- 2. 参考 iOS 配置消息触达统计 完成 App Group ID、Notification Service Extension 和 mutable-content 配置。
267
+ 2. 参考 iOS 配置消息触达统计 完成 App Group ID、Notification Service Extension 和 mutable-content 配置。
268
268
 
269
- 3. 将项目根目录的 Plugins-TIMPush-Source-ThirdParty-TIMPushLibrary-iOS 路径中的两个 framework 压缩包解压缩,并在 Xcode 项目中将内部的 .framework 文件夹添加到您的 pushservice target 之中。
269
+ 3. 将项目根目录的 Plugins-TIMPush-Source-ThirdParty-TIMPushLibrary-iOS 路径中的两个 framework 压缩包解压缩,并在 Xcode 项目中将内部的 .framework 文件夹添加到您的 pushservice target 之中。
270
270
 
271
- 4. 在 Notification Service Extension 的 -didReceiveNotificationRequest:withContentHandler: 方法中调用推送抵达率统计函数:
271
+ 4. 在 Notification Service Extension 的 -didReceiveNotificationRequest:withContentHandler: 方法中调用推送抵达率统计函数:
272
272
 
273
273
  ``` objectivec
274
274
  @implementation NotificationService
@@ -346,11 +346,11 @@ private fun subscribeCurrentRoomState() {
346
346
 
347
347
  - **更新机制与频率控制:**
348
348
 
349
- - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
349
+ - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
350
350
 
351
- - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
351
+ - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
352
352
 
353
- - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
353
+ - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
354
354
 
355
355
  **这对开发者意味着什么?**
356
356
 
@@ -31,11 +31,11 @@
31
31
  #### **1. 预定房间**
32
32
 
33
33
  ##### 实现方式:
34
- 1. **配置预定房间初始化参数:**初始化`ScheduleRoomOptions`预定房间配置项设置房间命名,房间密码、开始时间、结束时间、参与者、房间信息等。
34
+ 1. **配置预定房间初始化参数:**初始化`ScheduleRoomOptions`预定房间配置项设置房间命名,房间密码、开始时间、结束时间、参与者、房间信息等。
35
35
 
36
- 2. **房间权限预设:**设置房间内全场成员权限,例如全体静音,全体禁画等。
36
+ 2. **房间权限预设:**设置房间内全场成员权限,例如全体静音,全体禁画等。
37
37
 
38
- 3. **预定房间:**调用`RoomStore`的`scheduleRoom`接口执行核心操作。
38
+ 3. **预定房间:**调用`RoomStore`的`scheduleRoom`接口执行核心操作。
39
39
 
40
40
  ##### 示例代码:
41
41
  ``` java
@@ -320,17 +320,17 @@ private fun subscribeParticipantState() {
320
320
  如果您在预定房间后未收到即将开始的事件通知,请按照以下两个核心要点进行检查:
321
321
  1. **检查提醒参数配置** (`reminderSecondsBeforeStart`)
322
322
 
323
- - 触发机制:`onScheduledRoomStartingSoon` 事件的触发高度依赖于预定配置类 `ScheduleRoomOptions` 中的 `reminderSecondsBeforeStart` 属性。
323
+ - 触发机制:`onScheduledRoomStartingSoon` 事件的触发高度依赖于预定配置类 `ScheduleRoomOptions` 中的 `reminderSecondsBeforeStart` 属性。
324
324
 
325
- - 默认行为:该属性的默认值为 0,代表“不开启提醒”。
325
+ - 默认行为:该属性的默认值为 0,代表“不开启提醒”。
326
326
 
327
- - 解决建议:请确保在预定房间时明确设置该参数。该参数单位为**秒**,表示在房间开始前多少秒推送事件通知。
327
+ - 解决建议:请确保在预定房间时明确设置该参数。该参数单位为**秒**,表示在房间开始前多少秒推送事件通知。
328
328
 
329
329
  2. **验证预定时间逻辑**
330
330
 
331
- - 计算公式:系统触发提醒的前提是:预定开始时间 (`scheduleStartTime`) - 当前时间 > 提醒偏移量 (`reminderSecondsBeforeStart`)。
331
+ - 计算公式:系统触发提醒的前提是:预定开始时间 (`scheduleStartTime`) - 当前时间 > 提醒偏移量 (`reminderSecondsBeforeStart`)。
332
332
 
333
- - 场景说明:如果您的房间开始时间设置得过近(例如 5 分钟后开始),而提醒时间设置得过大(例如设置 10 分钟前提醒),系统将无法捕捉到触发时机,从而导致事件丢失。
333
+ - 场景说明:如果您的房间开始时间设置得过近(例如 5 分钟后开始),而提醒时间设置得过大(例如设置 10 分钟前提醒),系统将无法捕捉到触发时机,从而导致事件丢失。
334
334
 
335
- - 解决建议:请确保预定的开始时间距离当前时刻,大于您所设置的提醒秒数。
335
+ - 解决建议:请确保预定的开始时间距离当前时刻,大于您所设置的提醒秒数。
336
336
 
@@ -312,11 +312,11 @@ ValueListenableBuilder(
312
312
 
313
313
  - **更新机制与频率控制:**
314
314
 
315
- - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
315
+ - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
316
316
 
317
- - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
317
+ - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
318
318
 
319
- - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
319
+ - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
320
320
 
321
321
  **这对开发者意味着什么?**
322
322
 
@@ -307,11 +307,11 @@ private func subscribeRoomState() {
307
307
 
308
308
  - **更新机制与频率控制:**
309
309
 
310
- - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
310
+ - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
311
311
 
312
- - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
312
+ - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
313
313
 
314
- - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
314
+ - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
315
315
 
316
316
  **这对开发者意味着什么?**
317
317
 
@@ -12,11 +12,11 @@
12
12
 
13
13
  - 已完成云端录制套餐开通及存储配置:
14
14
 
15
- - 购买含云录制能力的视频会议 SDK 套餐。
15
+ - 购买含云录制能力的视频会议 SDK 套餐。
16
16
 
17
- - 开通录制文件存储服务:录制文件支持存储至 [云点播(VOD)](https://console.cloud.tencent.com/vod) 或 [对象存储(COS)](https://console.cloud.tencent.com/cos),请在对应控制台完成开通并记录存储信息。
17
+ - 开通录制文件存储服务:录制文件支持存储至 [云点播(VOD)](https://console.cloud.tencent.com/vod) 或 [对象存储(COS)](https://console.cloud.tencent.com/cos),请在对应控制台完成开通并记录存储信息。
18
18
 
19
- - [提交工单](https://console.cloud.tencent.com/workorder/category),选择**实时音视频**产品,申请为您的 SDKAppID 配置云端录制存储信息。
19
+ - [提交工单](https://console.cloud.tencent.com/workorder/category),选择**实时音视频**产品,申请为您的 SDKAppID 配置云端录制存储信息。
20
20
 
21
21
  ## 录制效果
22
22
 
@@ -18,11 +18,11 @@
18
18
 
19
19
  - **资源依赖:** 虚拟背景功能依赖 AI 模型文件,为保证浏览器可以正常加载和运行这些文件,您需要完成以下步骤。
20
20
 
21
- - 将 `node_modules/trtc-sdk-v5/assets` 目录发布至 CDN 或者静态资源服务器中,详情可见 [SDK 文档](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-36-advanced-virtual-background.html)。
21
+ - 将 `node_modules/trtc-sdk-v5/assets` 目录发布至 CDN 或者静态资源服务器中,详情可见 [SDK 文档](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-36-advanced-virtual-background.html)。
22
22
 
23
- - 若选择 方案一:使用 UI 组件快速集成,在使用 [VirtualBackgroundPanel](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/VirtualBackgroundPanel) 组件时,需要通过 props 传入 `assetsPath` 静态资源地址。
23
+ - 若选择 方案一:使用 UI 组件快速集成,在使用 [VirtualBackgroundPanel](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/VirtualBackgroundPanel) 组件时,需要通过 props 传入 `assetsPath` 静态资源地址。
24
24
 
25
- - 若选择 方案二:使用底层 API 自定义集成,在使用 [initVirtualBackground](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#initVirtualBackground) 接口时,需要传入 `assetsPath` 静态资源地址。
25
+ - 若选择 方案二:使用底层 API 自定义集成,在使用 [initVirtualBackground](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#initVirtualBackground) 接口时,需要传入 `assetsPath` 静态资源地址。
26
26
 
27
27
  ## 实现虚拟背景功能
28
28
 
@@ -18,7 +18,7 @@ TUIRoomKit 是腾讯云提供的一站式多人音视频房间解决方案,集
18
18
 
19
19
  - **CocoaPods 环境**:已安装 CocoaPods 环境。如果您尚未安装,请参见 [CocoaPods 官网安装](https://guides.cocoapods.org/using/getting-started.html),或按以下步骤操作:
20
20
 
21
- - **使用 gem 安装 CocoaPods**:在终端中执行 `sudo gem install cocoapods` 命令进行安装。
21
+ - **使用 gem 安装 CocoaPods**:在终端中执行 `sudo gem install cocoapods` 命令进行安装。
22
22
 
23
23
  > **提示:**
24
24
  >
@@ -30,7 +30,7 @@ TUIRoomKit 是腾讯云提供的一站式多人音视频房间解决方案,集
30
30
  ### 步骤1:集成 TUIRoomKit 组件
31
31
  1. **添加 Pod 依赖:**
32
32
 
33
- - **若项目已有 Podfile 文件。**
33
+ - **若项目已有 Podfile 文件。**
34
34
 
35
35
  在您项目的 `Podfile` 文件中添加 `pod 'TUIRoomKit'` 依赖。例如:
36
36
 
@@ -42,7 +42,7 @@ TUIRoomKit 是腾讯云提供的一站式多人音视频房间解决方案,集
42
42
 
43
43
  end
44
44
  ```
45
- - **若项目没有 Podfile 文件。**
45
+ - **若项目没有 Podfile 文件。**
46
46
 
47
47
  在终端中通过 `cd` 命令切换到您的 `.xcodeproj` 目录下,然后执行 `pod init` 命令创建 `Podfile` 文件,创建完成后,在您的 `Podfile` 文件中添加 `pod 'TUIRoomKit'` 依赖。例如:
48
48
 
@@ -65,7 +65,7 @@ xcopy /E /I /Y "uni_modules\tuikit-atomic-x\quickstart_room\static\*" "static\"
65
65
  cp -r uni_modules/tuikit-atomic-x/quickstart_room/static/* static/ && cp -r uni_modules/tuikit-atomic-x/quickstart_room/pages/* pages/
66
66
  ```
67
67
 
68
- 2. **配置页面路由:**替换 `pages.json` 内容,注册所需页面路由:
68
+ 2. **配置页面路由:**替换 `pages.json` 内容,注册所需页面路由:
69
69
 
70
70
  ``` json
71
71
  {
@@ -100,6 +100,18 @@ cp -r uni_modules/tuikit-atomic-x/quickstart_room/static/* static/ && cp -r uni_
100
100
  "navigationStyle": "custom"
101
101
  }
102
102
  },
103
+ {
104
+ "path": "pages/scenes/room/schedule/index",
105
+ "style": {
106
+ "navigationStyle": "custom"
107
+ }
108
+ },
109
+ {
110
+ "path": "pages/scenes/room/scheduleDetail/index",
111
+ "style": {
112
+ "navigationStyle": "custom"
113
+ }
114
+ },
103
115
  {
104
116
  "path": "pages/scenes/room/main/index",
105
117
  "style": {
@@ -107,6 +119,19 @@ cp -r uni_modules/tuikit-atomic-x/quickstart_room/static/* static/ && cp -r uni_
107
119
  "disableScroll": true,
108
120
  "disableSwipeBack": true
109
121
  }
122
+ },
123
+ {
124
+ "path": "pages/scenes/room/roomInvite/index",
125
+ "style": {
126
+ "navigationStyle": "custom",
127
+ "disableScroll": true,
128
+ "disableSwipeBack": true,
129
+ "backgroundColor": "#000000",
130
+ "app-plus": {
131
+ "titleNView": false,
132
+ "animationType": "slide-in-bottom"
133
+ }
134
+ }
110
135
  }
111
136
  ],
112
137
  "globalStyle": {
@@ -117,6 +142,20 @@ cp -r uni_modules/tuikit-atomic-x/quickstart_room/static/* static/ && cp -r uni_
117
142
  }
118
143
  }
119
144
  ```
145
+ 3. **初始化来电邀请服务**:在 `App.vue` 的 `onLaunch` 里初始化 `initRoomCallService`。
146
+
147
+ ``` typescript
148
+ // App.vue
149
+ <script lang="ts">
150
+ import { initRoomCallService } from '@/uni_modules/tuikit-atomic-x/server/roomCallService';
151
+
152
+ export default {
153
+ onLaunch: function () {
154
+ initRoomCallService();
155
+ },
156
+ };
157
+ </script>
158
+ ```
120
159
 
121
160
  ## 运行和测试
122
161
 
@@ -162,7 +201,7 @@ login({
162
201
  secretKey: secretKey
163
202
  }).userSig,
164
203
  success: () => {
165
- uni.reLaunch({ url: '/pages/scenes/chat/conversationList/conversationList' })
204
+ uni.reLaunch({ url: '/pages/scenes/room/index' })
166
205
  },
167
206
  fail: (code: number, msg: string) => {
168
207
  uni.showToast({ title: msg || '登录失败', icon: 'none' })
@@ -174,10 +213,6 @@ login({
174
213
 
175
214
  点击**运行** > **运行到手机或模拟器** > **运行到 Android/iOS 基座**,使用制作好的**自定义基座**运行到手机。
176
215
 
177
- ## AI 助手:知识咨询与代码集成
178
-
179
- 您在接入视频会议 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 Room 组件和 AtomicXCore SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
180
-
181
216
  ## 高级功能
182
217
 
183
218
  ### 屏幕共享
@@ -211,9 +246,9 @@ login({
211
246
 
212
247
  |参数|说明|
213
248
  |---------|---------|
214
- |identifier|步骤1中 Apple 开发者后台创建的 Extension 的 Bundle ID。|
249
+ |identifier|步骤1 中 Apple 开发者后台创建的 Extension 的 Bundle ID。|
215
250
  |profile|`nativeResources/ios` 下的 .mobileprovision 的文件名。|
216
- |entitlements.com.apple.security.application-groups|步骤1中 Apple 开发者后台创建的 App Group ID。|
251
+ |entitlements.com.apple.security.application-groups|步骤1 中 Apple 开发者后台创建的 App Group ID。|
217
252
 
218
253
  ``` java
219
254
  {
@@ -231,7 +266,7 @@ login({
231
266
 
232
267
  |**参数**|**说明**|
233
268
  |---------|---------|
234
- |com.apple.security.application-groups|步骤1中 Apple 开发者后台创建的 App Group ID。|
269
+ |com.apple.security.application-groups|步骤1 中 Apple 开发者后台创建的 App Group ID。|
235
270
 
236
271
  ``` xml
237
272
  <?xml version="1.0" encoding="UTF-8"?>
@@ -249,7 +284,7 @@ login({
249
284
 
250
285
  |**参数**|**说明**|
251
286
  |---------|---------|
252
- |TUIRoomAppGroup|步骤1中 Apple 开发者后台创建的 App Group ID。|
287
+ |TUIRoomAppGroup|步骤1 中 Apple 开发者后台创建的 App Group ID。|
253
288
 
254
289
  ``` xml
255
290
  <?xml version="1.0" encoding="UTF-8"?>
@@ -265,6 +300,13 @@ login({
265
300
 
266
301
  点击**运行** > **运行到手机或模拟器** > **制作 iOS 自定义调试基座。**
267
302
 
303
+ ### 预定会议和会中邀请
304
+
305
+ TUIRoomKit 内置的邀请参会和预定会议选人组件,底层默认依赖腾讯云 IM 的用户关系链(好友列表)。如果您希望在这些组件中展示您企业内部的组织架构或好友列表,请先通过服务端 REST API 将您的业务联系人同步至腾讯云 IM 系统中:
306
+ 1. 使用 [账号管理 > 导入多个账号](https://cloud.tencent.com/document/product/269/4919) REST API 接口批量导入用户账号。
307
+
308
+ 2. 使用 [好友管理 > 导入好友](https://cloud.tencent.com/document/product/269/8301) REST API 接口批量导入用户关系链。
309
+
268
310
  ## 常见问题
269
311
 
270
312
  #### **该 TUIKit 插件是否支持编译到 H5 或微信小程序?**
package/server.js CHANGED
@@ -1,47 +1,55 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { registryTools } from './tools/index.js';
3
3
  const SERVER_INSTRUCTIONS = `
4
- You are using Tencent RTC MCP Server for SDK documentation retrieval.
5
-
6
- - search_trtc_knowledge: Primary tool for searching Tencent RTC / Chat(IM) / Push(TIMPush) product documentation.
7
- Covers: Chat UIKit, CallKit, LiveKit, RoomKit, TRTC Native SDK, WebRTC/rtcEngine, TIMPush.
8
- Use this tool FIRST for all technical documentation / FAQ / error code / integration guide lookups.
9
- Do NOT use web_search for questions that can be answered via this knowledge base.
10
-
11
- **Product routing(调用 search_trtc_knowledge 前 MUST 推断 product 数组)**:
12
- - TIMPush / 推送 / 厂商通道 / FCM / APNs / 华为 / 小米 / OPPO / vivo → product=["push"](独立产品,禁止误归 chat)
13
- - 会话 / TUIKit / ChatKit / IM 组件 / 主题定制 → ["chat"]
14
- - CallKit / 通话 → ["call"];直播 / 语聊房 / LiveKit → ["live"];RoomKit / 会议 → ["room"]
15
- - TRTC Web SDK / rtcengine / WebRTC 插件 → ["rtcengine"]
16
- - TRTCCloud / Native SDK(客户端)→ ["native_trtc_sdk"]
17
- - 推送 + IM 同时涉及 → 可传 ["push","chat"]
18
- - 无法从 prompt 唯一判断 product → 先向用户确认,不要无 product 硬搜,也不要 web_search
19
-
20
- **Frameworks**:返回 needs_framework 时 MUST 先 present_framework_choice;详见 search_trtc_knowledge 工具 description 决策表。
21
- **When in doubt**:仍优先调用 search_trtc_knowledge(带最佳猜测 product);status=empty 或 low_confidence 时再澄清或重搜。
22
-
23
- **queryID 传递规则(硬规则,违反会导致 CLS 数据断裂)**:
24
- - 首次调用 search_trtc_knowledge:无需传 queryID(默认空串),响应 JSON 中会有 server 生成的 queryID 字段
25
- - 后续每一次 search_trtc_knowledge / finalize_answer / submit_feedback 调用:**MUST** 携带首次响应中的 queryID
26
- - 不传 queryID = 视为全新咨询(CLS 数据无法串联)
27
- - 多 sub-question 迭代搜索时,每次都要带相同的 queryID
28
-
29
- Workflow:
30
- 1. Call search_trtc_knowledge. Reuse the same queryID for all retries/searches in this consultation.
31
- 2. Draft the complete answer from fragments. Include References from meta.references/doc_urls when available.
4
+ You are using Tencent RTC MCP Server for official SDK and product documentation retrieval.
5
+
6
+ Primary routing policy:
7
+ - For Tencent RTC technical Q&A, troubleshooting, API/component lookup, and integration documentation lookup, call search_trtc_knowledge first.
8
+ - Do NOT use web_search when this knowledge base can answer the question.
9
+ - get_*_integration tools are for explicit codegen/integration implementation only (for example: user asks to generate or modify runnable integration code).
10
+
11
+ Scope for search_trtc_knowledge:
12
+ - Chat (IM), Call, Live, Room, Push (TIMPush), Web TRTC (rtcengine), Native TRTC SDK.
13
+ - Applies to FAQ, error codes, APIs, SDK usage, component usage, integration references, and troubleshooting.
14
+
15
+ Product routing (infer product array before calling search_trtc_knowledge whenever possible):
16
+ - TIMPush / 推送 / 厂商通道 / FCM / APNs / 华为 / 小米 / OPPO / vivo -> ["push"]
17
+ - 会话 / TUIKit / ChatKit / IM 组件 / 主题定制 -> ["chat"]
18
+ - CallKit / 通话 -> ["call"]; 直播 / 语聊房 / LiveKit -> ["live"]; RoomKit / 会议 -> ["room"]
19
+ - TRTC Web SDK / rtcengine / WebRTC 插件 -> ["rtcengine"]
20
+ - TRTCCloud / Native SDK / 客户端 -> ["native_trtc_sdk"]
21
+ - If both push and IM are involved -> ["push", "chat"]
22
+ - If product cannot be inferred confidently, ask a brief clarification. Do not jump to web_search.
23
+
24
+ Framework policy:
25
+ - If search_trtc_knowledge returns needs_framework, call present_framework_choice first, then search again.
26
+ - See search_trtc_knowledge description for detailed framework decision rules.
27
+
28
+ queryID propagation rules (hard requirement):
29
+ - First search_trtc_knowledge call: queryID can be empty; server response includes generated queryID.
30
+ - Every subsequent search_trtc_knowledge / finalize_answer / submit_feedback call: MUST include that same queryID.
31
+ - Missing queryID is treated as a new consultation and breaks CLS linkage.
32
+ - For multi-subquestion iterative search, always reuse the same queryID.
33
+
34
+ Consultation workflow (search_trtc_knowledge flow only):
35
+ 1. Call search_trtc_knowledge and reuse the same queryID for all retries/searches in this consultation.
36
+ 2. Draft the final answer from fragments. Include references from meta.references/doc_urls when available.
32
37
  3. MUST call finalize_answer with the same prompt, answer, and queryID before replying.
33
- 4. Reply with that answer + finalize_answer follow-up text.
34
- 5. After finalize_answer follow-up, check the next user reply before any normal response. If it means Yes/已解决/thanks/OK, MUST call submit_feedback(resolved="1") before replying. If it means No/未解决/still not working, MUST call submit_feedback(resolved="0") before replying. Never say feedback was submitted unless submit_feedback was called.
38
+ 4. Reply with that answer plus finalize_answer follow-up text.
39
+ 5. After follow-up, inspect the next user reply before any normal response. If it means Yes/已解决/thanks/OK, MUST call submit_feedback(resolved="1") before replying. If it means No/未解决/still not working, MUST call submit_feedback(resolved="0") before replying. Never claim feedback is submitted unless submit_feedback was actually called.
40
+
41
+ Codegen workflow note:
42
+ - For get_*_integration codegen flow, do NOT call finalize_answer or submit_feedback.
35
43
 
36
44
  User-visible output rule (MUST):
37
- - Internal routing/tool decisions are NEVER user-facing text.
38
- - Before calling any tool, do NOT output preface like “应调用…/先调用…/让我先搜索…/属于咨询类问题…/而非 codegen…”.
39
- - If a tool call is needed, call it directly; then provide user-facing results only.
45
+ - Internal routing or tool-decision details are NEVER user-facing text.
46
+ - Before any tool call, do NOT output prefaces like “应调用… / 先调用… / 让我先搜索… / 属于咨询类问题… / 而非 codegen…”.
47
+ - If a tool call is needed, call it directly and then provide only user-facing results.
40
48
  `.trim();
41
49
  export function createServer() {
42
50
  const server = new McpServer({
43
51
  name: "Tencent RTC MCP Server",
44
- version: "1.7.4",
52
+ version: "1.7.6",
45
53
  }, {
46
54
  instructions: SERVER_INSTRUCTIONS,
47
55
  });
@@ -21,7 +21,7 @@ const registryGetUserSigTool = (mcpServer) => {
21
21
  text: JSON.stringify({
22
22
  error: 'CONFIG_MISSING',
23
23
  message: 'Failed to generate userSig. Reason: SDKAppID or secretKey was not configured via MCP environment variables.',
24
- guide: 'Please guide the user to configure SDKAppID and secretKey according to the tool description (Constraints 2, 3, and 4), specifically by obtaining them from the IM or TRTC Console.'
24
+ guide: 'Please guide the user to configure SDKAppID and secretKey in MCP environment variables, usually obtained from the IM or TRTC Console.'
25
25
  }),
26
26
  }
27
27
  ]
@@ -38,14 +38,14 @@ function buildSelectionText(product, selectionText) {
38
38
  const options = config.options.map((option) => `- '${option}'`).join('\n');
39
39
  return `${selectionText}
40
40
 
41
- 请先让用户选择以下平台或框架:
41
+ Please ask user to choose one platform/framework from the list below:
42
42
 
43
- ${config.title}:
43
+ ${config.title}:
44
44
  ${options}
45
45
 
46
- 请等待用户回复具体平台后(**硬规则,不可跳过**):
47
- - **咨询 / 查文档 / API / 组件 / feature** → MUST 调用 \`search_trtc_knowledge\`,传入 **product + frameworks**
48
- - **要写代码集成进项目** → MUST 调用对应的 \`get_*_integration\` 工具`;
46
+ After user selects a concrete platform (hard rule, do not skip):
47
+ - **Q&A / documentation lookup / API / component / feature** -> MUST call \`search_trtc_knowledge\` with **product + frameworks**
48
+ - **Explicit codegen or project integration implementation** -> MUST call corresponding \`get_*_integration\` tool`;
49
49
  }
50
50
  const registryPresentFrameworkChoiceTool = (mcpServer) => {
51
51
  const { name, description, selectionText, parameter_descriptions } = PRESENT_FRAMEWORK_CHOICE_DEFINITION;