@tencent-rtc/mcp 1.6.3 → 1.6.5

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 (250) hide show
  1. package/index.js +0 -4
  2. package/knowledge/chunker.js +83 -54
  3. package/knowledge/path-meta.js +179 -26
  4. package/knowledge/search/exact-lookup.js +153 -0
  5. package/knowledge/search/filter-pool.js +73 -19
  6. package/knowledge/search/product-scope-intent.js +2 -2
  7. package/knowledge/search/requires-framework.js +2 -2
  8. package/knowledge/search/search-knowledge.js +235 -58
  9. package/package.json +1 -1
  10. package/resource/index/manifest.json +1 -1
  11. package/resource/integration/callkit/preset/android/integration.md +2 -4
  12. package/resource/integration/callkit/preset/flutter/integration.md +4 -5
  13. package/resource/integration/callkit/preset/ios/integration.md +1 -4
  14. package/resource/integration/callkit/preset/react/integration.md +13 -20
  15. package/resource/integration/callkit/preset/vue/integration.md +14 -21
  16. package/resource/integration/chat/preset/android/integration.md +6 -9
  17. package/resource/integration/chat/preset/flutter/integration.md +9 -12
  18. package/resource/integration/chat/preset/ios/integration.md +2 -4
  19. package/resource/integration/chat/preset/react/integration.md +0 -10
  20. package/resource/integration/livekit/preset/live/android/live-audience-integration.md +129 -0
  21. package/resource/integration/livekit/preset/live/android/live-host-integration.md +219 -0
  22. package/resource/integration/livekit/preset/live/android/live-list-integration.md +261 -0
  23. package/resource/integration/livekit/preset/live/android/prepare-integration.md +254 -0
  24. package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +202 -0
  25. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +369 -0
  26. package/resource/integration/livekit/preset/live/ios/live-list-integration.md +229 -0
  27. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +204 -0
  28. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +0 -3
  29. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -5
  30. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -6
  31. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +5 -10
  32. package/resource/integration/roomkit/preset/vue/integration.md +0 -4
  33. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
  34. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +24 -0
  35. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
  36. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +7 -8
  37. package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -7
  38. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +3 -5
  39. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +2 -6
  40. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +2 -6
  41. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +4 -9
  42. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -4
  43. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +8 -11
  44. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +17 -23
  45. package/resource/knowledge/callkit/core-sdk/web/call-engine.md +33 -0
  46. package/resource/knowledge/callkit/core-sdk/web/call-event.md +327 -0
  47. package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +33 -0
  48. package/resource/knowledge/callkit/faq/android.md +0 -2
  49. package/resource/knowledge/callkit/faq/error-code.md +0 -2
  50. package/resource/knowledge/callkit/faq/flutter.md +2 -2
  51. package/resource/knowledge/callkit/faq/ios.md +3 -5
  52. package/resource/knowledge/callkit/faq/web.md +2 -3
  53. package/resource/knowledge/callkit/preset/android/api.md +2 -5
  54. package/resource/knowledge/callkit/preset/ios/api.md +0 -2
  55. package/resource/knowledge/callkit/preset/react/api.md +445 -0
  56. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +445 -0
  57. package/resource/knowledge/callkit/preset/vue/api.md +465 -0
  58. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +465 -0
  59. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
  60. package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
  61. package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -1
  62. package/resource/knowledge/chat/preset/android/features/language.md +0 -1
  63. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
  64. package/resource/knowledge/chat/preset/android/features/message-list.md +2 -3
  65. package/resource/knowledge/chat/preset/android/features/search.md +0 -1
  66. package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
  67. package/resource/knowledge/chat/preset/android-view/integration.md +3 -11
  68. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
  69. package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -2
  70. package/resource/knowledge/chat/preset/flutter/features/search.md +5 -6
  71. package/resource/knowledge/chat/preset/flutter/features/theme.md +2 -2
  72. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
  73. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -2
  74. package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -2
  75. package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
  76. package/resource/knowledge/chat/preset/ios-uikit/integration.md +13 -15
  77. package/resource/knowledge/chat/preset/react/features/conversation-list.md +5 -5
  78. package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
  79. package/resource/knowledge/chat/preset/react/features/search.md +0 -1
  80. package/resource/knowledge/chat/preset/react/features/theme.md +0 -1
  81. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +7 -14
  82. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +5 -8
  83. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +15 -18
  84. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +1 -2
  85. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +15 -20
  86. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +10 -13
  87. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +2 -4
  88. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +4 -6
  89. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +2 -4
  90. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +2 -4
  91. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +1 -2
  92. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +8 -10
  93. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +5 -7
  94. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +7 -14
  95. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +6 -9
  96. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +1 -2
  97. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +15 -18
  98. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +15 -20
  99. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +10 -13
  100. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +2 -4
  101. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +4 -6
  102. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +2 -4
  103. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +2 -4
  104. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +1 -2
  105. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +8 -10
  106. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +3 -5
  107. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +7 -14
  108. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +5 -8
  109. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +1 -2
  110. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +6 -9
  111. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +5 -10
  112. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +3 -6
  113. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +2 -4
  114. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +4 -6
  115. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +2 -4
  116. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +2 -4
  117. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +1 -2
  118. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +4 -6
  119. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +3 -5
  120. package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +24 -24
  121. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +1 -2
  122. package/resource/knowledge/livekit/core-sdk/{live/android/live-gift.md → features/android/gift.md} +2 -3
  123. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-room-list.md → features/android/live-list.md} +2 -4
  124. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
  125. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +2 -2
  126. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-gift.md → features/flutter/gift.md} +2 -3
  127. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
  128. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -2
  129. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
  130. package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +2 -2
  131. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-gift.md → features/ios/gift.md} +2 -3
  132. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-room-list.md → features/ios/live-list.md} +2 -4
  133. package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  134. package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +5 -7
  135. package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +3 -6
  136. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +1 -1
  137. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +0 -2
  138. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -4
  139. package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  140. package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +2 -4
  141. package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +2 -5
  142. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +3 -5
  143. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +3 -6
  144. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +1 -2
  145. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +6 -9
  146. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +2 -2
  147. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +4 -6
  148. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +1 -4
  149. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -2
  150. package/resource/knowledge/push/api-reference/android.md +123 -0
  151. package/resource/knowledge/push/api-reference/flutter.md +176 -0
  152. package/resource/knowledge/push/api-reference/harmonyos.md +138 -0
  153. package/resource/knowledge/push/api-reference/ios.md +176 -0
  154. package/resource/knowledge/push/api-reference/react-native.md +147 -0
  155. package/resource/knowledge/push/api-reference/uni-app.md +147 -0
  156. package/resource/knowledge/push/api-reference/unity.md +119 -0
  157. package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
  158. package/resource/knowledge/push/config/android.md +4 -7
  159. package/resource/knowledge/push/config/harmonyos.md +0 -3
  160. package/resource/knowledge/push/config/ios.md +12 -20
  161. package/resource/knowledge/push/config/react-native.md +18 -26
  162. package/resource/knowledge/push/config/unity.md +20 -28
  163. package/resource/knowledge/push/config/unreal-engine.md +21 -29
  164. package/resource/knowledge/push/integration/android.md +6 -8
  165. package/resource/knowledge/push/integration/flutter.md +6 -9
  166. package/resource/knowledge/push/integration/harmonyos.md +1 -0
  167. package/resource/knowledge/push/integration/ios.md +7 -9
  168. package/resource/knowledge/push/integration/react-native.md +9 -13
  169. package/resource/knowledge/push/integration/uni-app.md +7 -7
  170. package/resource/knowledge/push/integration/unity.md +10 -13
  171. package/resource/knowledge/push/integration/unreal-engine.md +6 -9
  172. package/resource/knowledge/push/overview/prepare.md +2 -2
  173. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +3 -3
  174. package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
  175. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -1
  176. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +2 -2
  177. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +6 -6
  178. package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +79 -0
  179. package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
  180. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
  181. package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +79 -0
  182. package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
  183. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -1
  184. package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +79 -0
  185. package/resource/knowledge/roomkit/preset/android/integration.md +5 -7
  186. package/resource/knowledge/roomkit/preset/flutter/integration.md +2 -7
  187. package/resource/knowledge/roomkit/preset/ios/integration.md +3 -9
  188. package/resource/knowledge/roomkit/preset/react/integration.md +12 -16
  189. package/resource/knowledge/trtc/android/TRTCCloud.md +154 -238
  190. package/resource/knowledge/trtc/android/TRTCCloudDef.md +133 -134
  191. package/resource/knowledge/trtc/android/TRTCCloudListener.md +86 -120
  192. package/resource/knowledge/trtc/android/TRTCStatistics.md +10 -10
  193. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +10 -30
  194. package/resource/knowledge/trtc/android/TXBeautyManager.md +25 -25
  195. package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
  196. package/resource/knowledge/trtc/android/TXLiteAVCode.md +12 -12
  197. package/resource/knowledge/trtc/c++/ITRTCCloud.md +166 -261
  198. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +12 -12
  199. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +10 -30
  200. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +9 -11
  201. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +96 -130
  202. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +122 -123
  203. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +12 -12
  204. package/resource/knowledge/trtc/ios/TRTCCloud.md +168 -255
  205. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +124 -125
  206. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +89 -124
  207. package/resource/knowledge/trtc/ios/TRTCStatistics.md +10 -10
  208. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +9 -28
  209. package/resource/knowledge/trtc/ios/TXBeautyManager.md +25 -25
  210. package/resource/knowledge/trtc/ios/TXDeviceManager.md +9 -11
  211. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +12 -12
  212. package/server-config.js +7 -4
  213. package/server.js +21 -21
  214. package/tools/common/finalize_answer.js +1 -1
  215. package/tools/common/present_framework_choice.js +2 -2
  216. package/tools/common/search_trtc_knowledge.js +3 -3
  217. package/tools/common/submit_feedback.js +1 -1
  218. package/tools/definitions/get_native_live_uikit_integration_def.js +61 -0
  219. package/tools/definitions/get_native_livekit_core_integration_def.js +3 -3
  220. package/tools/definitions/present_framework_choice_def.js +2 -2
  221. package/tools/definitions/search_trtc_knowledge_def.js +5 -5
  222. package/tools/index.js +2 -0
  223. package/tools/live/get_native_live_uikit_integration.js +69 -0
  224. package/tools/live/get_native_livekit_core_integration.js +6 -6
  225. package/utils/is-valid-sdkappid.js +4 -0
  226. package/utils/report-cls-client.js +1 -1
  227. package/utils/report-es-client.js +1 -1
  228. package/resource/knowledge/callkit/preset/web/api.md +0 -83
  229. package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -226
  230. package/resource/knowledge/livekit/core-sdk/live/android/live-live-list.md +0 -438
  231. package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -490
  232. package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
  233. package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -264
  234. package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -216
  235. package/resource/knowledge/livekit/core-sdk/live/ios/live-gift.md +0 -407
  236. package/resource/knowledge/livekit/core-sdk/live/ios/live-live-list.md +0 -349
  237. package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -269
  238. package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -456
  239. package/resource/knowledge/livekit/core-sdk/voice/android/voice-gift.md +0 -455
  240. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -260
  241. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -598
  242. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +0 -424
  243. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-barrage.md +0 -408
  244. /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
  245. /package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +0 -0
  246. /package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +0 -0
  247. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
  248. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
  249. /package/resource/knowledge/livekit/core-sdk/{live/ios/live-barrage.md → features/ios/barrage.md} +0 -0
  250. /package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -0
package/server.js CHANGED
@@ -3,40 +3,40 @@ import { registryTools } from './tools/index.js';
3
3
  const SERVER_INSTRUCTIONS = `
4
4
  You are using Tencent RTC MCP Server for SDK documentation retrieval.
5
5
 
6
- - search_trtc_knowledge: Primary tool for Tencent RTC / Chat(IM) / Push(TIMPush) documentation lookup.
7
- Covers: Chat UIKit, CallKit, LiveKit, RoomKit, TRTC Native SDK, WebRTC / rtcEngine, TIMPush.
8
- Use this tool first for documentation lookup, FAQ, error code, API reference, feature discovery, and troubleshooting.
9
- Do not use web_search for questions that can be answered by this knowledge base.
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
10
 
11
- **Product routing (before calling search_trtc_knowledge, infer the product array first):**
12
- - TIMPush / push / notification / offline push / vendor channel / FCM / APNs / Huawei / Xiaomi / OPPO / vivo -> product=["push"] (standalone product; do not misroute to chat)
13
- - conversation / TUIKit / ChatKit / IM component / theme customization -> ["chat"]
14
- - CallKit / calling -> ["call"]; LiveKit / live streaming / voice room -> ["live"]; RoomKit / meeting -> ["room"]
15
- - TRTC Web SDK / rtcengine / WebRTC plugin -> ["rtcengine"]
16
- - TRTCCloud / native client SDK -> ["native_trtc_sdk"]
17
- - If both push and IM are involved, product can be ["push","chat"]
18
- - If the product cannot be inferred uniquely, ask the user first. Do not hard-search without product and do not use web_search.
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
19
 
20
- **Framework**: If search_trtc_knowledge returns needs_framework, you must call present_framework_choice first and then retry. Follow the decision table in the search_trtc_knowledge tool description.
21
- **When in doubt**: Still prefer search_trtc_knowledge with the best product guess; clarify or retry when status is empty or low_confidence.
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
22
 
23
- **queryID rule (hard requirement, required for CLS continuity):**
24
- - First search_trtc_knowledge call: do not pass queryID (or pass an empty string). The response will contain a server-generated queryID.
25
- - Every later search_trtc_knowledge / finalize_answer / submit_feedback call in the same consultation must pass that same queryID.
26
- - Omitting queryID starts a new consultation chain and breaks CLS continuity.
27
- - If the user asks follow-up sub-questions, keep using the same queryID.
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
28
 
29
29
  Workflow:
30
30
  1. Call search_trtc_knowledge. Reuse the same queryID for all retries/searches in this consultation.
31
31
  2. Draft the final answer from fragments. Include References from meta.references/doc_urls when available.
32
32
  3. MUST call finalize_answer with the same prompt + queryID before replying.
33
33
  4. Reply with: 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/solved/thanks/OK, MUST call submit_feedback(resolved="1") before replying. If it means No/not solved/still not working, MUST call submit_feedback(resolved="0") before replying. Never say feedback was submitted unless submit_feedback was called.
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.
35
35
  `.trim();
36
36
  export function createServer() {
37
37
  const server = new McpServer({
38
38
  name: "Tencent RTC MCP Server",
39
- version: "1.6.1",
39
+ version: "1.6.5",
40
40
  }, {
41
41
  instructions: SERVER_INSTRUCTIONS,
42
42
  });
@@ -9,7 +9,7 @@ const registryFinalizeAnswerTool = (mcpServer) => {
9
9
  prompt: z.string().describe(parameter_descriptions.prompt),
10
10
  answer: z.string().describe(parameter_descriptions.answer),
11
11
  product: z.array(z.enum(['chat', 'call', 'live', 'room', 'push', 'rtcengine', 'native_trtc_sdk'])).min(1).max(4).optional().describe(parameter_descriptions.product),
12
- framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
12
+ framework: z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
13
13
  queryID: z.string().describe(parameter_descriptions.queryID),
14
14
  },
15
15
  }, (params) => {
@@ -7,7 +7,7 @@ const PRODUCT_OPTIONS_MAP = {
7
7
  },
8
8
  call: {
9
9
  title: 'Supported Call / CallKit platforms or frameworks',
10
- options: ['react', 'vue', 'flutter', 'android', 'ios', 'uni-app'],
10
+ options: ['web', 'miniprogram', 'react', 'vue', 'flutter', 'android', 'ios', 'uni-app'],
11
11
  },
12
12
  live: {
13
13
  title: 'Supported Live / LiveKit platforms or frameworks',
@@ -44,7 +44,7 @@ ${config.title}:
44
44
  ${options}
45
45
 
46
46
  After the user replies (hard rule — do not skip):
47
- - **Consultation / docs / API / component / feature lookup** → MUST call \`search_trtc_knowledge\` with **product + framework**
47
+ - **Consultation / docs / API / component / feature lookup** → MUST call \`search_trtc_knowledge\` with **product + frameworks**
48
48
  - **Write integration code into a project** → MUST call the matching \`get_*_integration\` tool`;
49
49
  }
50
50
  const registryPresentFrameworkChoiceTool = (mcpServer) => {
@@ -10,7 +10,7 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
10
10
  inputSchema: {
11
11
  prompt: z.string().describe(parameter_descriptions.prompt),
12
12
  product: z.array(z.enum(['chat', 'call', 'live', 'room', 'push', 'rtcengine', 'native_trtc_sdk'])).min(1).max(4).optional().describe(parameter_descriptions.product),
13
- framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
13
+ frameworks: z.array(z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut'])).min(1).optional().describe(parameter_descriptions.frameworks),
14
14
  queryID: z.string().describe(parameter_descriptions.queryID),
15
15
  ide: z.string().describe(parameter_descriptions.ide),
16
16
  types: z.array(z.enum([
@@ -26,14 +26,14 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
26
26
  method: 'search_trtc_knowledge',
27
27
  queryID: qid,
28
28
  prompt: params.prompt,
29
- framework: params.framework ?? '',
29
+ framework: params.frameworks?.join(',') ?? '',
30
30
  product: params.product ? params.product.join(',') : '',
31
31
  ide: params.ide,
32
32
  });
33
33
  const response = searchKnowledge({
34
34
  prompt: params.prompt,
35
35
  product: params.product,
36
- framework: params.framework,
36
+ frameworks: params.frameworks,
37
37
  types: params.types,
38
38
  scenario: params.scenario,
39
39
  limit: params.limit,
@@ -7,7 +7,7 @@ const registrySubmitFeedbackTool = (mcpServer) => {
7
7
  description,
8
8
  inputSchema: {
9
9
  prompt: z.string().describe(parameter_descriptions.prompt),
10
- framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
10
+ framework: z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
11
11
  queryID: z.string().describe(parameter_descriptions.queryID),
12
12
  resolved: z.enum(['0', '1']).describe(parameter_descriptions.resolved),
13
13
  },
@@ -0,0 +1,61 @@
1
+ import { INTEGRATION_BOUNDARY_SUFFIX } from './integration-boundary.js';
2
+ const TOOL_DESCRIPTION = `
3
+ Purpose:
4
+ Return Native video live streaming integration docs based on TUILiveKit's preset UI components, for AI to complete out-of-the-box mobile (Android / iOS) video live streaming integration and code generation. Covers the live list page (audience entry), host streaming page, and audience watching page — all preset components with complete interactive UI and business logic (e.g. AnchorPrepareView, live list waterfall view, etc.).
5
+
6
+ Typical use cases (shared trigger words, may also match the 'get_native_livekit_core_integration' Core tool):
7
+ integrate LiveKit, TUILiveKit, video live streaming, live broadcast, host streaming, audience watching, live list, host page, watch page, live room list, Android, iOS
8
+ When a shared trigger word is matched, **proactively ask the user first**: "Would you like to quickly integrate with the default live streaming UI (TUILiveKit preset), or build a custom UI on top of Core SDK / AtomicXCore?" Call this tool only after the user chooses "default/preset"; call 'get_native_livekit_core_integration' if they choose "custom/Core".
9
+
10
+ Typical use cases (preset-only trigger words, match this tool exclusively, call directly without asking):
11
+ TUILiveKit, Native TUILiveKit, Native Live UIKit, preset, preset integration, preset UI, preset host page, preset watch page, preset live list, default live streaming UI, out-of-the-box live streaming UI, ready-made streaming page, already have a live streaming UI, TUILiveKit Android, TUILiveKit iOS, AnchorPrepareView
12
+
13
+ Input:
14
+ - framework: android | ios
15
+ - goals: feature module list (multi-select; results are organized in the order live_list → host_streaming → audience_streaming)
16
+ - prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
17
+
18
+ Returns:
19
+ - content: [{ type: 'text', text: documentation body (common environment setup / dependency integration for all platforms, plus integration steps and code for the selected feature pages) }]
20
+
21
+ Boundaries:
22
+ - This tool is for **video live streaming (live)** scenarios only. Voice room (voice / audio room / seat) is **out of scope** — for that use 'get_native_livekit_core_integration' instead, or inform the user preset UI is not yet supported for voice room
23
+ - framework only supports android | ios (TUILiveKit video live streaming preset UI has no flutter / uni-app docs yet — for that use 'get_native_livekit_core_integration' instead, or inform the user it is not supported)
24
+ - If the user has not specified a platform, call 'present_framework_choice' first
25
+ - If the user has explicitly indicated Core-specific trigger words such as "custom UI", "Core SDK", "AtomicXCore", "LiveCoreView", or "build my own live page", call 'get_native_livekit_core_integration' directly instead of this tool
26
+ - Covers full page integration for host streaming / audience watching / live list only. Not responsible for co-guest, PK, gifts, barrage, beauty, or audio effects extensions (use 'search_trtc_knowledge' for those)
27
+ ${INTEGRATION_BOUNDARY_SUFFIX}
28
+ `;
29
+ const PARAMETER_DESCRIPTIONS = {
30
+ framework: 'Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios.',
31
+ goals: 'Feature list (multi-select). Allowed values: live_list (live list page, audience entry) | host_streaming (host streaming page) | audience_streaming (audience watching page). A complete mobile live streaming app usually needs live_list + host_streaming + audience_streaming.',
32
+ prompt: "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.",
33
+ };
34
+ export const GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION = {
35
+ name: 'get_native_live_uikit_integration',
36
+ description: TOOL_DESCRIPTION,
37
+ parameter_descriptions: PARAMETER_DESCRIPTIONS,
38
+ };
39
+ // UI text shown to the AI (headings / sections / not-found hints).
40
+ // The tool implementation (get_native_live_uikit_integration.ts) stays byte-identical between
41
+ // zh/en and is auto-synced by sync-tools.js; this UI_TEXT block is the only per-locale text
42
+ // that must be maintained separately for en.
43
+ export const GET_NATIVE_LIVE_UIKIT_INTEGRATION_UI_TEXT = {
44
+ goalTitles: {
45
+ live_list: 'Live List Page (TUILiveKit Preset UI)',
46
+ host_streaming: 'Host Streaming Page (TUILiveKit Preset UI)',
47
+ audience_streaming: 'Audience Watching Page (TUILiveKit Preset UI)',
48
+ },
49
+ headerTitle: '# TUILiveKit Video Live Streaming (Native Preset UI) Integration Guide',
50
+ platformLabel: 'Platform',
51
+ selectedFeaturesLabel: 'Selected Features',
52
+ labelSeparator: ': ',
53
+ listSeparator: ', ',
54
+ headerNotes: [
55
+ 'The environment setup and dependency integration steps common to all platforms are given below first, followed by the integration code for each selected feature page.',
56
+ 'Strictly follow the class names, package names, and import paths in the documentation when generating code. Do not fabricate APIs.',
57
+ ],
58
+ prepareSectionTitle: (framework) => `Environment Setup and Code Integration (${framework} prerequisites)`,
59
+ prepareSectionFallback: '## Environment Setup and Code Integration\n\n> No preparation documentation found for this platform.',
60
+ goalNotFound: (framework) => `No integration documentation found for this feature on the ${framework} platform. Please confirm whether the goal and platform are supported, or use search_trtc_knowledge instead.`,
61
+ };
@@ -4,11 +4,11 @@ Purpose:
4
4
  Return Native LiveKit Core base-integration docs based on AtomicXCore SDK for publishing, viewing, and room-list flows in live streaming or voice room apps.
5
5
 
6
6
  Typical use cases:
7
- Native LiveKit Core, AtomicXCore, no-UI SDK, core SDK, live streaming, voice room, publish, watch, room list, Android, iOS, Flutter, uni-app, live, voice, set up the base live flow, set up the base voice room flow
7
+ Native LiveKit Core, AtomicXCore, no-UI SDK, core SDK, live streaming, voice room, publish, watch, room list, Android, iOS, Flutter, live, voice, set up the base live flow, set up the base voice room flow
8
8
 
9
9
  Input:
10
10
  - scenario: live | voice
11
- - framework: android | ios | flutter | uni-app
11
+ - framework: android | ios | flutter
12
12
  - goals: feature module list
13
13
  - prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
14
14
 
@@ -23,7 +23,7 @@ ${INTEGRATION_BOUNDARY_SUFFIX}
23
23
  `;
24
24
  const PARAMETER_DESCRIPTIONS = {
25
25
  scenario: 'Scenario type. Allowed values: live | voice. Use integration for publishing, viewing, or room list. Use search_trtc_knowledge for co-guest, PK, member list, beauty, audio effects, barrage, or gifts.',
26
- framework: 'Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios | flutter | uni-app.',
26
+ framework: 'Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios | flutter.',
27
27
  goals: 'Feature list. Allowed values: host_streaming (host publish) | audience_streaming (audience watch) | live_list (room list).',
28
28
  prompt: "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.",
29
29
  };
@@ -3,7 +3,7 @@ Purpose:
3
3
  Guide the user to pick a supported platform or framework when the request does not clearly specify one, before continuing with search_trtc_knowledge or an integration tool.
4
4
 
5
5
  Typical use cases:
6
- platform choice, framework choice, pick a platform first, pick a framework first, platform not specified, framework not specified, integration guide, setup docs, quick start, API lookup, component lookup, feature lookup, how to configure, Chat UIKit integration, Call UIKit integration, Live UIKit integration, Room UIKit integration, CallKit API, LiveKit API, WebRTC SDK integration, Native TRTC SDK integration, react, vue, uni-app, flutter, android, ios, webrtc
6
+ platform choice, framework choice, pick a platform first, pick a framework first, platform not specified, framework not specified, integration guide, setup docs, quick start, API lookup, component lookup, feature lookup, how to configure, Chat UIKit integration, Call UIKit integration, Live UIKit integration, Room UIKit integration, CallKit API, LiveKit API, WebRTC SDK integration, Native TRTC SDK integration, react, vue, web, miniprogram, uni-app, flutter, android, ios, webrtc
7
7
 
8
8
  Trigger examples:
9
9
  - Get the Chat UIKit integration guide (React/Vue not specified)
@@ -19,7 +19,7 @@ Returns:
19
19
 
20
20
  Boundaries:
21
21
  - This tool only collects the platform or framework choice. It does not return documentation content.
22
- - **Consultation chain (hard rule)**: API / component / feature / client troubleshooting / integration lookup without a platform -> MUST call this tool first, then search_trtc_knowledge with **product + framework**; do not skip.
22
+ - **Consultation chain (hard rule)**: API / component / feature / client troubleshooting / integration lookup without a platform -> MUST call this tool first, then search_trtc_knowledge with **product + frameworks**; do not skip.
23
23
  - **Codegen chain (hard rule)**: user wants integration code in a project but platform is unclear -> MUST call this tool first, then the matching get_*_integration tool.
24
24
  - Cross-platform general questions (billing, server REST, UserSig principles) unrelated to a single client -> search_trtc_knowledge directly without this tool (product still MUST be inferred from the prompt).
25
25
  `;
@@ -5,9 +5,9 @@ For Tencent RTC documentation lookup (Chat / Call / Live / Room / Push / Web TRT
5
5
  push: TIMPush / push / vendor channel / FCM / Huawei / Xiaomi / OPPO (not chat) | chat: conversation / TUIKit / IM / theme
6
6
  call: CallKit | live: LiveKit | room: RoomKit / meeting | rtcengine: Web TRTC | native_trtc_sdk: TRTCCloud | cross-domain: ["push","chat"]
7
7
 
8
- **framework** (same decision order as requires-framework.ts):
8
+ **frameworks** (same decision order as requires-framework.ts):
9
9
  If provided -> search. If response is needs_framework -> call present_framework_choice, then retry.
10
- chat + error code / ERR_ -> ask platform first | native_trtc_sdk -> MUST be android / ios / c++ | rtcengine -> implicit web
10
+ chat + error code / ERR_ -> ask platform first | native_trtc_sdk -> MUST include one of android / ios / c++ | rtcengine -> implicit web
11
11
  push: vendor name alone is not a platform (framework optional); enablement / console / vendor config may omit framework; if android / ios / flutter etc. appear -> MUST pass framework
12
12
  billing / REST / Webhook / UserSig -> framework optional | if types only contain server_api / webhook / product -> framework optional
13
13
  console / product capability config (multi-device login, login policy, message storage, console settings) -> types=["product"], not feature; even if Agent passes feature, runtime treats as cross-platform product config
@@ -19,14 +19,14 @@ if types include api / component / feature / plugin / sdk / integration -> frame
19
19
 
20
20
  **L0/L1**: For local fragments, answer only from the returned text. For chat/urls/ results, fetch the official URL before stating facts. Never invent content.
21
21
 
22
- **Returns**: status, confidence, fragments(doc_urls), meta.references/exact_hits, top_score/second_score, queryID, message. Cite references/doc_urls only; never cite local fragment.source paths.
22
+ **Returns**: status, confidence, fragments(doc_urls), meta.references/exact_hits, top_score/second_score, queryID, message, meta.answer_contract. The answer MUST strictly follow answer_contract (conclusion first, user-actionable, make unconfirmed points explicit); do not spell out the evidence chain in the body, and never output system jargon such as "matched fragments / search results / confidence", but keep a "References" section at the end listing references/doc_urls.
23
23
 
24
24
  **Post-answer workflow**: After the final answer is drafted, MUST call \`finalize_answer\` with the same prompt + queryID before replying. Append its follow-up text. On explicit follow-up feedback, call \`submit_feedback\`.
25
25
  `;
26
26
  const PARAMETER_DESCRIPTIONS = {
27
27
  prompt: "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.",
28
- product: 'Product array: chat | call | live | room | push | rtcengine | native_trtc_sdk. If inferable, MUST pass it. Push takes priority for TIMPush / push topics and must not be misrouted to chat. If uncertain, ask the user first.',
29
- framework: 'Platform: react | vue | web | android | ios | flutter | c++ | uni-app | harmonyos | react-native | unity | unreal-engine | donut. Follow the decision table in the tool description. harmonyos / react-native / unity / unreal-engine / donut are only valid for push.',
28
+ product: 'Product array: chat | call | live | room | push | rtcengine | native_trtc_sdk. If inferable, MUST pass it. Push takes priority for TIMPush / push topics and must not be misrouted to chat. Common live keywords: LiveKit / live streaming / voice room / TUILiveKit / AtomicXCore / host streaming / watch live. If uncertain, ask the user first.',
29
+ frameworks: 'Platform array: react | vue | web | miniprogram | android | ios | flutter | c++ | uni-app | harmonyos | react-native | unity | unreal-engine | donut. Multiple platforms can be passed for cross-platform lookup. For CallKit, TUICallKit is best searched separately by react/vue, while TUICallEngine/TUICallEvent still map to web; use miniprogram for Mini Program. harmonyos / react-native / unity / unreal-engine / donut are only valid for push.',
30
30
  types: 'Usually omit. Allowed values: integration | component | feature | api | plugin | sdk | faq | error_code | product | server_api | webhook. component and feature are equivalent (match both). Discovery/listing questions ("what components are available") MUST omit types. Console/billing/product-capability config -> product (not feature). Do not proactively over-narrow.',
31
31
  scenario: 'live | voice. Only valid for the live product.',
32
32
  queryID: "First call: ''. Follow-up calls in the same consultation MUST pass through the original queryID returned by the server.",
package/tools/index.js CHANGED
@@ -14,6 +14,7 @@ import { registryGetNativeCallKitCoreIntegrationTool } from './call/get_native_c
14
14
  // live
15
15
  import { registryGetWebLiveUIKitIntegrationTool } from './live/get_web_live_uikit_integration.js';
16
16
  import { registryGetNativeLiveKitCoreIntegrationTool } from './live/get_native_livekit_core_integration.js';
17
+ import { registryGetNativeLiveUIKitIntegrationTool } from './live/get_native_live_uikit_integration.js';
17
18
  // room
18
19
  import { registryGetWebRoomUIKitIntegrationTool } from './room/get_web_room_uikit_integration.js';
19
20
  import { registryGetWebRoomCoreIntegrationTool } from './room/get_web_room_core_integration.js';
@@ -33,6 +34,7 @@ function registryTools(mcpServer) {
33
34
  // live
34
35
  registryGetWebLiveUIKitIntegrationTool(mcpServer);
35
36
  registryGetNativeLiveKitCoreIntegrationTool(mcpServer);
37
+ registryGetNativeLiveUIKitIntegrationTool(mcpServer);
36
38
  // room
37
39
  registryGetWebRoomUIKitIntegrationTool(mcpServer);
38
40
  registryGetWebRoomCoreIntegrationTool(mcpServer);
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ import { GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION, GET_NATIVE_LIVE_UIKIT_INTEGRATION_UI_TEXT as UI_TEXT, } from '../definitions/get_native_live_uikit_integration_def.js';
3
+ import { getIntegrationContent } from '../../utils/get-doc-content.js';
4
+ import { reportCLSClient } from '../../utils/report-cls-client.js';
5
+ // goal → 直播列表/开播/观看对应的 preset 文档文件名(均在 livekit/preset/live/{framework}/ 下)
6
+ // 展示文案(title)统一从 UI_TEXT.goalTitles 取,做到 zh/en 按 locale 差异化。
7
+ const GOAL_FILE = {
8
+ host_streaming: 'live-host-integration.md',
9
+ audience_streaming: 'live-audience-integration.md',
10
+ live_list: 'live-list-integration.md',
11
+ };
12
+ // 观众进直播间需要先有列表入口;固定的推荐阅读顺序,保证多 goal 时输出结构稳定
13
+ const GOAL_ORDER = ['live_list', 'host_streaming', 'audience_streaming'];
14
+ const DOC_NOT_FOUND = 'Not found relevant documents';
15
+ function getResultText(params) {
16
+ const { framework = '', goals = [], prompt = '' } = params;
17
+ // 去重 + 稳定排序,避免同一 goal 传多次导致重复正文
18
+ const uniqueGoals = GOAL_ORDER.filter((goal) => goals.includes(goal));
19
+ reportCLSClient({
20
+ method: 'get_native_live_uikit_integration',
21
+ prompt,
22
+ framework,
23
+ info: `live:${uniqueGoals.join(',')}`,
24
+ });
25
+ const prepareContent = getIntegrationContent(['livekit', 'preset', 'live', framework, 'prepare-integration.md']);
26
+ const sections = uniqueGoals.map((goal) => {
27
+ const title = UI_TEXT.goalTitles[goal];
28
+ const file = GOAL_FILE[goal];
29
+ const content = getIntegrationContent(['livekit', 'preset', 'live', framework, file]);
30
+ if (!content || content === DOC_NOT_FOUND) {
31
+ return `## ${title}\n\n> ${UI_TEXT.goalNotFound(framework)}`;
32
+ }
33
+ return `## ${title}\n\n${content}`;
34
+ });
35
+ const header = [
36
+ UI_TEXT.headerTitle,
37
+ `- ${UI_TEXT.platformLabel}${UI_TEXT.labelSeparator}${framework}`,
38
+ `- ${UI_TEXT.selectedFeaturesLabel}${UI_TEXT.labelSeparator}${uniqueGoals.map((g) => UI_TEXT.goalTitles[g]).join(UI_TEXT.listSeparator)}`,
39
+ ...UI_TEXT.headerNotes.map((note) => `- ${note}`),
40
+ ].join('\n');
41
+ const prepareSection = (!prepareContent || prepareContent === DOC_NOT_FOUND)
42
+ ? UI_TEXT.prepareSectionFallback
43
+ : `## ${UI_TEXT.prepareSectionTitle(framework)}\n\n${prepareContent}`;
44
+ return [header, prepareSection, '---', ...sections].join('\n\n');
45
+ }
46
+ const registryGetNativeLiveUIKitIntegrationTool = (mcpServer) => {
47
+ const { name, description, parameter_descriptions } = GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION;
48
+ mcpServer.registerTool(name, {
49
+ description,
50
+ inputSchema: {
51
+ framework: z.enum(['android', 'ios']).describe(parameter_descriptions.framework),
52
+ goals: z
53
+ .array(z.enum(['live_list', 'host_streaming', 'audience_streaming']))
54
+ .min(1)
55
+ .describe(parameter_descriptions.goals),
56
+ prompt: z.string().describe(parameter_descriptions.prompt),
57
+ },
58
+ }, (params) => {
59
+ return {
60
+ content: [
61
+ {
62
+ type: 'text',
63
+ text: getResultText(params),
64
+ },
65
+ ],
66
+ };
67
+ });
68
+ };
69
+ export { registryGetNativeLiveUIKitIntegrationTool };
@@ -5,15 +5,15 @@ import { reportCLSClient } from '../../utils/report-cls-client.js';
5
5
  function generatePathMap(scenario, framework) {
6
6
  if (scenario === 'live') {
7
7
  return {
8
- 'host_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'live-integration.md'],
9
- 'audience_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'live-integration.md'],
10
- 'live_list': ['livekit', 'core-sdk', 'live', `${framework}`, 'live-live-list.md']
8
+ 'host_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'integration.md'],
9
+ 'audience_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'integration.md'],
10
+ 'live_list': ['livekit', 'core-sdk', 'features', `${framework}`, 'live-list.md']
11
11
  };
12
12
  }
13
13
  return {
14
- 'host_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'voice-integration.md'],
15
- 'audience_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'voice-integration.md'],
16
- 'live_list': ['livekit', 'core-sdk', 'voice', `${framework}`, 'voice-room-list.md']
14
+ 'host_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'integration.md'],
15
+ 'audience_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'integration.md'],
16
+ 'live_list': ['livekit', 'core-sdk', 'features', `${framework}`, 'live-list.md']
17
17
  };
18
18
  }
19
19
  async function getResultText(params) {
@@ -0,0 +1,4 @@
1
+ function isValidSDKAppID(value) {
2
+ return !!value && /^\d+$/.test(value);
3
+ }
4
+ export { isValidSDKAppID };
@@ -28,7 +28,7 @@ function sendCLSReport(reportData) {
28
28
  const time = Date.now();
29
29
  const data = {
30
30
  platform: 'mcp',
31
- verison: '1.6.3',
31
+ verison: '1.6.5',
32
32
  sdkappid: `${SDKAppID}`,
33
33
  method: method,
34
34
  userid: queryID || userID,
@@ -7,7 +7,7 @@ function reportESClient(reportData) {
7
7
  report: [
8
8
  {
9
9
  platform: 'mcp',
10
- version: '1.6.3',
10
+ version: '1.6.5',
11
11
  sdkappid: `${SDKAppID}`,
12
12
  method: method,
13
13
  userID: `${userID}`,
@@ -1,83 +0,0 @@
1
- ## TUICallKit (Includes UI Components)
2
-
3
- TUICallKit is an audio and video call component that **includes a UI component**. You can quickly implement a WhatsApp-like audio and video calling scenario with this component.
4
-
5
- |API|Description|
6
- |---------|---------|
7
- |[init](https://www.tencentcloud.com/document/product/647/51015#init)|Initialize TUICallKit.|
8
- |[calls](https://www.tencentcloud.com/document/product/647/51015#calls)|Initiate a one-to-one or multi-person call.|
9
- |[join](https://www.tencentcloud.com/document/product/647/51015#join)|Proactively join a call.|
10
- |[setCallingBell](https://www.tencentcloud.com/document/product/647/51015#setCallingBell)|Customize user's ringtone.|
11
- |[setSelfInfo](https://www.tencentcloud.com/document/product/647/51015#setSelfInfo)|Set your own nickname and avatar.|
12
- |[enableMuteMode](https://www.tencentcloud.com/document/product/647/51015#enableMuteMode)|Turn on/off ringtone.|
13
- |[enableFloatWindow](https://www.tencentcloud.com/document/product/647/51015#enableFloatWindow)|Turn on/off the floating window function.|
14
- |[enableVirtualBackground](https://www.tencentcloud.com/document/product/647/51015#enableVirtualBackground)|Turn on/off the blurred background function button.|
15
- |[setLanguage](https://www.tencentcloud.com/document/product/647/51015#setLanguage)|Set the call language for the TUICallKit component.|
16
- |[hideFeatureButton](https://www.tencentcloud.com/document/product/647/51015#hideFeatureButton)|Hidden Button.|
17
- |[setLocalViewBackgroundImage](https://www.tencentcloud.com/document/product/647/51015#setLocalViewBackgroundImage)|Set the background image for the local user's call interface.|
18
- |[setRemoteViewBackgroundImage](https://www.tencentcloud.com/document/product/647/51015#setRemoteViewBackgroundImage)|Set the background image for the remote user's call interface.|
19
- |[setLayoutMode](https://www.tencentcloud.com/document/product/647/51015#setLayoutMode)|Set the call interface layout mode.|
20
- |[setCameraDefaultState](https://www.tencentcloud.com/document/product/647/51015#setCameraDefaultState)|Set whether the camera is opened by default.|
21
- |[destroyed](https://www.tencentcloud.com/document/product/647/51015#destroyed)|Destroy TUICallKit.|
22
- |[getTUICallEngineInstance](https://www.tencentcloud.com/document/product/647/51015#getTUICallEngineInstance)|Get TUICallEngine instance.|
23
-
24
- ## TUICallEngine (No UI)
25
-
26
- TUICallEngine API is an audio and video call component that **offers a No UI interface**. You can use this set of APIs to custom encapsulate according to your business needs.
27
-
28
- |API|Description|
29
- |---------|---------|
30
- |[createInstance](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#.createInstance)|Creating a TUICallEngine Instance (Singleton Pattern)|
31
- |[destroyInstance](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#destroyInstance)|Terminating a TUICallEngine Instance (Singleton Pattern)|
32
- |[on](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#on)|Listening on events|
33
- |[off](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#off)|Canceling Event Listening|
34
- |[login](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#login)|Sign in Interface|
35
- |[logout](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#logout)|Logout Interface|
36
- |[setSelfInfo](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setSelfInfo)|Configure the user's nickname and profile photo|
37
- |[calls](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#calls)|Initiate a one-on-one call|
38
- |[join](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#join)|Proactively join a call.|
39
- |[accept](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#accept)|Answer Calls|
40
- |[reject](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#reject)|Decline Call|
41
- |[hangup](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#hangup)|End Calls|
42
- |[startRemoteView](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#startRemoteView)|Initiate Remote Screen Rendering|
43
- |[stopRemoteView](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#stopRemoteView)|Stop Remote Screen Rendering|
44
- |[openCamera](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#openCamera)|Enable the camera|
45
- |[closeCamera](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#closeCamera)|Turn Off Camera|
46
- |[switchCamera](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#switchCamera)|Switch between front and rear cameras, note: only supported on mobile devices.|
47
- |[openMicrophone](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#openMicrophone)|Enable Microphone|
48
- |[closeMicrophone](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#closeMicrophone)|Turn off the microphone|
49
- |[setVideoQuality](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setVideoQuality)|Set video quality|
50
- |[getDeviceList](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#getDeviceList)|Access device list|
51
- |[switchDevice](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#switchDevice)|Switch camera or microphone devices|
52
- |[enableMultiDeviceAbility](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#enableMultiDeviceAbility)|Turn on/off the multi-device login mode of TUICallEngine.|
53
- |[setBlurBackground](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setBlurBackground)|Switch/set background blur|
54
- |[setVirtualBackground](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setVirtualBackground)|Switch/set image background blur|
55
-
56
- ## Event Types
57
-
58
- TUICallEvent is the callback event class corresponding to TUICallEngine. Through this callback, you can listen to the callback events of interest.
59
-
60
- |EVENT|Description|
61
- |---------|---------|
62
- |[TUICallEvent.ERROR](https://www.tencentcloud.com/document/product/647/51017#error)|An error occurred during the call.|
63
- |[TUICallEvent.KICKED_OUT](https://www.tencentcloud.com/document/product/647/51017#kicked_out)|Receiving this event after a duplicate sign-in indicates that the user has been removed from the room|
64
- |[TUICallEvent.USER_ACCEPT](https://www.tencentcloud.com/document/product/647/51017#user_accept)|If a user answers, this event will be received.** v4.x.x is deprecated**|
65
- |[TUICallEvent.USER_ENTER](https://www.tencentcloud.com/document/product/647/51017#user_enter)|A user joined the call.|
66
- |[TUICallEvent.USER_LEAVE](https://www.tencentcloud.com/document/product/647/51017#user_leave)|A user left the call.|
67
- |[TUICallEvent.REJECT](https://www.tencentcloud.com/document/product/647/51017#reject)|A user declined the call.|
68
- |[TUICallEvent.NO_RESP](https://www.tencentcloud.com/document/product/647/51017#no_resp)|A user didn't respond.|
69
- |[TUICallEvent.LINE_BUSY](https://www.tencentcloud.com/document/product/647/51017#line_busy)|A user was busy.|
70
- |[TUICallEvent.USER_VIDEO_AVAILABLE](https://www.tencentcloud.com/document/product/647/51017#user_video_available)|Whether a user has a video stream.|
71
- |[TUICallEvent.USER_AUDIO_AVAILABLE](https://www.tencentcloud.com/document/product/647/51017#user_audio_available)|Whether a user has an audio stream.|
72
- |[TUICallEvent.USER_VOICE_VOLUME](https://www.tencentcloud.com/document/product/647/51017#user_voice_volume)|The volume levels of all users.|
73
- |TUICallEvent.ON_CALL_BEGIN|Call connected event|
74
- |TUICallEvent.ON_CALL_RECEIVED|Call request event|
75
- |TUICallEvent.ON_CALL_CONNECTED|Call not connected event|
76
- |TUICallEvent.ON_CALL_END|The call ended.|
77
- |[TUICallEvent.DEVICED_UPDATED](https://www.tencentcloud.com/document/product/647/51017#deviced_updated)|Device list update, this event will be received|
78
- |TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED|All user network quality events|
79
-
80
- ## Document Link
81
- - [TUICallEngine](https://www.tencentcloud.com/document/product/647/51016)
82
-
83
- - [TUICallEvent](https://www.tencentcloud.com/document/product/647/51017)