1.7.5npm · @tencent-rtc/mcp · latest release
Observed 2026-09-04T14:00:45.509Z using mcpSecurity-inventory. Protocol 2025-06-18.
| Tool | Category | Risk |
|---|---|---|
finalize_answer
Purpose:
Finalize a search_trtc_knowledge answer and return the follow-up text to append.
When to call:
- After all searches/fetches are done and the final answer is drafted, MUST call this tool exactly once before replying to the user.
- Do NOT call it for intermediate searches, partial drafts, or when another search/fetch is still needed.
Input:
- prompt: Original user question. Must match the search_trtc_knowledge prompt.
- answer: Full synthesized answer (same text sent to the user).
- queryID: REQUIRED. Must match the non-empty queryID returned by search_trtc_knowledge.
- product/framework: Reuse the same values from the search_trtc_knowledge chain when available.
Returns:
- Follow-up text. Append it as-is after the answer.
- Do NOT write your own follow-up question.
Input schema{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "Original user question. Must match search_trtc_knowledge."
},
"answer": {
"type": "string",
"description": "Full synthesized answer (same text sent to the user)."
},
"product": {
"type": "array",
"items": {
"type": "string",
"enum": [
"chat",
"call",
"live",
"room",
"push",
"rtcengine",
"native_trtc_sdk"
]
},
"minItems": 1,
"maxItems": 4,
"description": "Reuse product from the search_trtc_knowledge chain when available."
},
"framework": {
"type": "string",
"enum": [
"react",
"vue",
"web",
"miniprogram",
"android",
"ios",
"flutter",
"c++",
"uni-app",
"harmonyos",
"react-native",
"unity",
"unreal-engine",
"donut"
],
"description": "Reuse framework from the search_trtc_knowledge chain when available."
},
"queryID": {
"type": "string",
"description": "REQUIRED. Non-empty queryID returned by search_trtc_knowledge."
}
},
"required": [
"prompt",
"answer",
"queryID"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_native_call_uikit_integration
Purpose:
Return Native TUICallKit preset integration docs for setting up a complete mobile calling experience with a ready-made call UI.
Typical use cases (shared triggers, may also match 'get_native_callkit_core_integration' Core tool):
integrate CallKit, set up CallKit, audio/video call, voice call, video call, 1v1 call, group call, calling feature, make a call, answer a call, incoming call, offline push, VoIP
When any of the shared triggers above match, **ask the user first**: "Do you want to integrate with the default call UI (TUICallKit preset), or build a custom call UI on top of the Core SDK?" If the user picks "default / preset", call this tool; if the user picks "custom / Core", call 'get_native_callkit_core_integration'.
Typical use cases (preset exclusive triggers, only match this tool, no follow-up question needed):
TUICallKit, Native TUICallKit, Native Call UIKit, preset, preset integration, ready-made UI, default UI, default call UI, out-of-the-box call screen, prebuilt call page, TUICallKit Flutter, TUICallKit Android, TUICallKit iOS
Input:
- framework: flutter | android | ios
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call 'present_framework_choice' first.
- When framework=uni-app, this tool is not supported (preset has no uni-app build). Call 'get_native_callkit_core_integration' instead.
- When the user has already indicated "custom UI", "Core SDK", "AtomicXCore", "CallStore", or "build my own call page" or similar Core exclusive triggers, call 'get_native_callkit_core_integration' directly and do not route through this tool.
- This tool is for Native CallKit preset integration. It is not for ringtone, virtual background, avatar, floating window, or other single-feature/API settings.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"flutter",
"android",
"ios"
],
"description": "Target platform. The parameter name must be framework. Do not use platform. Allowed values: flutter | android | ios."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"framework",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_native_callkit_core_integration
Purpose:
Return Native CallKit Core base-integration docs based on the AtomicXCore SDK for developers who want a custom (no preset UI) call screen, covering make-call, answer-call, and offline-push.
Typical use cases (shared triggers, may also match 'get_native_call_uikit_integration' preset tool):
integrate CallKit, set up CallKit, audio/video call, voice call, video call, 1v1 call, group call, calling feature, make a call, answer a call, incoming call, offline push, VoIP
When any of the shared triggers above match, **ask the user first**: "Do you want to integrate with the default call UI (TUICallKit preset), or build a custom call UI on top of the Core SDK?" If the user picks "custom / Core", call this tool; if the user picks "default / preset", call 'get_native_call_uikit_integration'.
Typical use cases (Core SDK exclusive triggers, only match this tool, no follow-up question needed):
Core SDK, AtomicXCore, no UI, custom UI, custom call UI, build my own call page, not using the default UI, customize call style, CallStore, CallCoreView, DeviceStore
Input:
- framework: android | ios | flutter | uni-app
- goals: feature module list (make_call | answer_call | offline_push)
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call 'present_framework_choice' first.
- When framework=uni-app, only this tool (Core SDK) is supported; there is no TUICallKit preset path for uni-app. **Do not** ask "default UI vs custom UI" after the user picks uni-app; call this tool directly.
- When framework=uni-app and goals includes offline_push, this tool returns an explanatory fallback message (uni-app Core does not currently ship offline-push integration docs). Guide the user to the Android / iOS offline-push docs and integrate FCM / APNs via uni-app native plugins, or switch to the TUICallKit preset solution.
- This tool covers the core/store-level base-integration main path (CallStore make/answer + offline push). It is not for beauty, virtual background, floating window, or picture-in-picture.
- It returns Core SDK base-integration docs, not a full preset UIKit page template.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"android",
"ios",
"flutter",
"uni-app"
],
"description": "Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios | flutter | uni-app. Note: uni-app is only supported by this tool (Core SDK); there is no TUICallKit preset path for uni-app, so do not ask \"default UI vs custom UI\" when the user picks uni-app."
},
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"make_call",
"answer_call",
"offline_push"
]
},
"description": "Feature list. Allowed values: make_call (make a call) | answer_call (answer a call) | offline_push (offline push). Multiple values are allowed, e.g. [\"make_call\", \"answer_call\"] for both. Note: when framework=uni-app and goals contains offline_push, this tool returns an explanatory fallback message instead of full docs (uni-app Core does not currently ship an offline-push integration sample)."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"framework",
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_native_chat_uikit_integration
Purpose:
Return Native Chat UIKit integration docs for building either a full IM app or a single chat window on mobile.
Typical use cases:
Native Chat UIKit, TUIKit, IM, chat, conversation list, chat window, Flutter, Android, iOS, full-featured, chat-only, customer service chat, consultation chat
Input:
- framework: flutter | android | ios
- goals: [full-featured] | [chat-only]
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call 'present_framework_choice' first.
- This tool is for full Native Chat UIKit integration (Compose / SwiftUI codegen path). It is not for platform selection or deep single-feature lookup.
- Android View / iOS UIKit integration lookup -> use search_trtc_knowledge instead.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"flutter",
"android",
"ios"
],
"description": "Target platform. The parameter name must be framework. Do not use platform. Allowed values: flutter | android | ios. android/ios are the Compose / SwiftUI codegen path; for View/UIKit integration lookup use search_trtc_knowledge."
},
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"full-featured",
"chat-only"
]
},
"minItems": 1,
"maxItems": 1,
"description": "Goal array. Exactly one value is allowed: full-featured (full app) | chat-only (single chat window)."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"framework",
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_native_live_uikit_integration
Purpose:
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.).
Typical use cases (shared trigger words, may also match the 'get_native_livekit_core_integration' Core tool):
integrate LiveKit, TUILiveKit, video live streaming, live broadcast, host streaming, audience watching, live list, host page, watch page, live room list, Android, iOS
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".
Typical use cases (preset-only trigger words, match this tool exclusively, call directly without asking):
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
Input:
- framework: android | ios
- goals: feature module list (multi-select; results are organized in the order live_list → host_streaming → audience_streaming)
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation body (common environment setup / dependency integration for all platforms, plus integration steps and code for the selected feature pages) }]
Boundaries:
- 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
- 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)
- If the user has not specified a platform, call 'present_framework_choice' first
- 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
- 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)
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"android",
"ios"
],
"description": "Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios."
},
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"live_list",
"host_streaming",
"audience_streaming"
]
},
"minItems": 1,
"description": "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."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"framework",
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_native_livekit_core_integration
Purpose:
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.
Typical use cases:
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
Input:
- scenario: live | voice
- framework: android | ios | flutter
- goals: feature module list
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call 'present_framework_choice' first.
- This tool is for AtomicXCore-based live streaming or voice room base integration. It is not for co-guest, PK, member list, beauty, audio effects, barrage, or gifts.
- It returns Core/Store-level integration docs, not a full preset UIKit page template.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"scenario": {
"type": "string",
"enum": [
"live",
"voice"
],
"description": "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."
},
"framework": {
"type": "string",
"enum": [
"android",
"ios",
"flutter",
"uni-app"
],
"description": "Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios | flutter."
},
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"host_streaming",
"audience_streaming",
"live_list"
]
},
"description": "Feature list. Allowed values: host_streaming (host publish) | audience_streaming (audience watch) | live_list (room list)."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"scenario",
"framework",
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_usersig
Purpose:
Generate a test userSig from the MCP environment variables SDKAppID and secretKey for local IM or TRTC testing.
Typical use cases:
generate a userSig for a specific userID, create a test credential, local debugging credential, userSig for this userID, SDKAppID, secretKey, IM login credential, TRTC login credential
Input:
- userID
Returns:
- content: [{ type: 'text', text: userSig result or an error message }]
Boundaries:
- Use this tool only when the userID is already known and you need a test credential.
- It does not explain userSig principles, issuing flow, or production authentication design.
- It is for development and testing only.
- Production systems should issue userSig from a server.
Input schema{
"type": "object",
"properties": {
"userID": {
"type": "string",
"description": "The userID used to log in to the Tencent Cloud application."
}
},
"required": [
"userID"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_web_call_uikit_integration
Purpose:
Return Web TUICallKit preset integration docs for setting up a complete calling experience on PC or H5.
Typical use cases:
Web Call UIKit, Web TUICallKit, TUICallKit, preset integration, React, Vue, PC, H5, audio/video calling, video call, voice call, integrate CallKit, calling flow, answering flow
Input:
- framework: react | vue
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call 'present_framework_choice' first.
- This tool is for Web CallKit preset integration. It is not for API details or interactive framework selection.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"react",
"vue"
],
"description": "Target framework. The parameter name must be framework. Do not use platform. Allowed values: react | vue."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"framework",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_web_chat_uikit_integration
Purpose:
Return Web Chat UIKit integration docs for building either a full chat app or a single chat window.
Typical use cases:
Web Chat UIKit, TUIKit, IM, chat, conversation list, chat window, React, Vue, full-featured, chat-only, customer service chat, consultation chat, message entry
Input:
- framework: react | vue
- goals: [full-featured] | [chat-only]
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call 'present_framework_choice' first.
- This tool is for full Web Chat UIKit integration. It is not for component-level details or interactive framework selection.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"react",
"vue"
],
"description": "Target framework. The parameter name must be framework. Do not use platform. Allowed values: react | vue."
},
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"full-featured",
"chat-only"
]
},
"minItems": 1,
"maxItems": 1,
"description": "Goal array. Exactly one value is allowed: full-featured (full app) | chat-only (single chat window)."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"framework",
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_web_live_uikit_integration
Purpose:
Return Web Live UIKit page-level integration docs for wiring live list, player, publish, and co-guest entry pages.
Typical use cases:
Web Live UIKit, TUILiveUIKit, Vue, page-level integration, wire the live pages, set up the live list page, set up the player page, set up the publish page, liveList, livePlayer-desk, livePlayer-h5, livePusher
Input:
- goals: feature list
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- This tool is primarily for Web Vue page-level integration. It is not for State API fields/methods or single-component deep dives.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"liveList",
"livePlayer-desk",
"livePlayer-h5",
"livePusher"
]
},
"description": "Feature list. Allowed values: liveList | livePlayer-desk | livePlayer-h5 | livePusher."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_web_room_core_integration
Purpose:
Return Web RoomKit Atomicx Core integration docs for building a custom meeting room without preset UI, covering login, room state, and device capabilities.
Shared trigger phrases (may also match the preset tool `get_web_room_uikit_integration`):
Web RoomKit, TUIRoomKit, Atomicx, Vue, integrate RoomKit, meeting room, room, meeting
If the user only hits these shared trigger phrases, ask first:
"Do you want the preset UI for quick integration (TUIRoomUIKit preset), or a custom room built on Atomicx APIs?"
If the user chooses custom / Atomicx / Core, call this tool.
If the user chooses preset / default UI, call `get_web_room_uikit_integration`.
Core-only trigger phrases (call directly, no follow-up needed):
Atomicx API, custom meeting room, custom room UI, without preset UI, useRoomState, useDeviceState, useLoginState, room-state, device-state, device-detection
Input:
- framework: vue
- goals: room-state | device-detection | device-state
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- If the user has not specified a platform or framework, call `present_framework_choice` first.
- This is for Atomicx Core integration only (login + room-state / device modules), not preset UI page templates.
- Screen sharing, virtual background, scheduled meeting, and other advanced modules -> call `search_trtc_knowledge(types=[feature])`.
- **Login constraint**: MUST call `get_usersig` to get a UserSig, then use `useLoginState.login`; never implement local UserSig generation such as GenerateTestUserSig inside the project.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"vue"
],
"default": "vue",
"description": "Target framework. The parameter name must be framework. Do not use platform. Fixed value: vue."
},
"goals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"room-state",
"device-detection",
"device-state"
]
},
"description": "Goal array. Allowed values: room-state | device-detection | device-state."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"goals",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
get_web_room_uikit_integration
Purpose:
Return Web Room UIKit preset integration docs for the main meeting entry page, room page, and default meeting app flow.
Typical use cases:
Web Room UIKit, TUIRoomUIKit, Atomicx, Vue, preset UI, default meeting app, meeting app, home.vue, room.vue, meeting entry page, meeting room page, H5 meeting, PC meeting, integrate Room UIKit
Input:
- framework: vue
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
Returns:
- content: [{ type: 'text', text: documentation content or explanatory text }]
Boundaries:
- This tool is for preset UI integration. It is not for Atomicx API details or custom single-feature modules.
- For custom Atomicx room implementation -> call 'get_web_room_core_integration'.
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call `search_trtc_knowledge`, not this tool.
- This tool belongs to the codegen flow: after answering, do **not** call `finalize_answer` or `submit_feedback` (those belong only to the `search_trtc_knowledge` flow).
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.
Input schema{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"vue"
],
"default": "vue",
"description": "Target framework. The parameter name must be framework. Do not use platform. Fixed value: vue."
},
"prompt": {
"type": "string",
"description": "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary."
}
},
"required": [
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
present_framework_choice
Purpose:
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.
Typical use cases:
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
Trigger examples:
- Get the Chat UIKit integration guide (React/Vue not specified)
- How do I configure the CallKit ringtone (platform not specified)
- How do I use a Chat UIKit component (Web/Native not specified)
- How do I enable virtual background (product or platform not specified)
Input:
- product: chat | call | live | room | rtcengine | native_trtc_sdk | push
Returns:
- content: [{ type: 'text', text: selectable option list }]
Boundaries:
- This tool only collects the platform or framework choice. It does not return documentation content.
- **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.
- **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.
- 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).
Input schema{
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"chat",
"call",
"live",
"room",
"rtcengine",
"native_trtc_sdk",
"push"
],
"description": "Target product. Allowed values: chat | call | live | room | rtcengine | native_trtc_sdk | push."
}
},
"required": [
"product"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
search_trtc_knowledge
For Tencent RTC documentation lookup (Chat / Call / Live / Room / Push / Web TRTC / Native TRTC): FAQ, error code, API, component, feature, plugin, integration lookup, troubleshooting -> MUST use this tool first. Do not use web_search. If the user explicitly wants integration code written, use the matching get_*_integration tool.
**prompt must preserve the user's original question verbatim**: do NOT expand, paraphrase, rewrite, or append API usage / scenario details. Pass exactly what the user asked. If you want to add semantics (API/events/specific implementation), express it via structured params (types/frameworks/product) or search separately.
**product** (if inferable, MUST pass; if not, ask first):
push: TIMPush / push / vendor channel / FCM / Huawei / Xiaomi / OPPO (not chat) | chat: conversation / TUIKit / IM / theme
call: CallKit | live: LiveKit | room: RoomKit / meeting | rtcengine: Web TRTC | native_trtc_sdk: TRTCCloud | cross-domain: ["push","chat"]
**frameworks** (same decision order as requires-framework.ts):
If provided -> search. If response is needs_framework -> call present_framework_choice, then retry.
chat + error code / ERR_ -> ask platform first | native_trtc_sdk -> MUST include one of android / ios / c++ | rtcengine -> implicit web
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
billing / REST / Webhook / UserSig -> framework optional | if types only contain server_api / webhook / product -> framework optional
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
if types include api / component / feature / plugin / sdk / integration -> framework required | API / component / enterRoom / SDK / plugin / troubleshooting usually require framework or a follow-up question
**types**: usually omit. Open default narrow case: ["faq"]. Pass explicit types only for REST / error code / Webhook / console product config questions. Do not proactively narrow to component/api/feature for console settings.
- Discovery / listing questions ("what components are available", "有哪些组件/API") -> MUST omit types (narrowing kills recall).
- component and feature are equivalent (UIKit docs are tagged feature); passing either matches both. RoomKit / LiveKit Web are Vue-based (framework=web already covers vue).
**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.
**Returns**: status, confidence, fragments(doc_urls), meta.references/exact_hits, top_score/second_score, queryID, message, meta.answer_contract. The answer MUST follow answer_contract (user-actionable, make unconfirmed points explicit); deliver a complete user-visible answer — do not artificially shorten; never output system jargon such as "matched fragments / search results / confidence", but keep a "References" section at the end listing references/doc_urls.
**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`.
Input schema{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "The user's original question VERBATIM. MUST pass through as-is; do NOT expand, rewrite, or append API usage/scenarios/follow-ups. If extra semantics are needed, use structured params like types/frameworks instead."
},
"product": {
"type": "array",
"items": {
"type": "string",
"enum": [
"chat",
"call",
"live",
"room",
"push",
"rtcengine",
"native_trtc_sdk"
]
},
"minItems": 1,
"maxItems": 4,
"description": "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."
},
"frameworks": {
"type": "array",
"items": {
"type": "string",
"enum": [
"react",
"vue",
"web",
"miniprogram",
"android",
"ios",
"flutter",
"c++",
"uni-app",
"harmonyos",
"react-native",
"unity",
"unreal-engine",
"donut"
]
},
"default": [],
"description": "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. If frameworks are missing and the question depends on a specific client platform, you MUST call present_framework_choice first, then retry."
},
"queryID": {
"type": "string",
"description": "First call: ''. Follow-up calls in the same consultation MUST pass through the original queryID returned by the server."
},
"ide": {
"type": "string",
"description": "IDE name (cursor|claude-code|vscode|codebuddy|codex|trae|others). Required."
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"integration",
"component",
"feature",
"api",
"plugin",
"sdk",
"faq",
"error_code",
"product",
"server_api",
"webhook"
]
},
"description": "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."
},
"scenario": {
"type": "string",
"enum": [
"live",
"voice"
],
"description": "live | voice. Only valid for the live product."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 16,
"default": 8,
"description": "Number of fragments. Default 8, maximum 16."
},
"from": {
"type": "string",
"default": "",
"description": "Empty string by default."
}
},
"required": [
"prompt",
"queryID",
"ide"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
submit_feedback
Purpose:
Submit the user's reply to the finalize_answer follow-up.
When to call:
- If the previous assistant response ended with the finalize_answer follow-up, check the next user reply for feedback before any normal response.
- Positive: "Yes", "Solved", "Thanks", "OK", "yes", "resolved" -> resolved="1".
- Negative: "No", "Not solved", "still not working", "no" -> resolved="0".
- MUST call this tool before replying when feedback is explicit.
- Never say feedback was submitted/recorded unless this tool was called.
- Do NOT call for unclear replies or new unrelated questions.
Input:
- prompt: Original user question. Must match finalize_answer.
- queryID: REQUIRED. Same queryID as search_trtc_knowledge/finalize_answer.
- resolved: "1" for positive feedback, "0" for negative feedback.
Input schema{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "Original user question. Must match finalize_answer."
},
"framework": {
"type": "string",
"enum": [
"react",
"vue",
"web",
"miniprogram",
"android",
"ios",
"flutter",
"c++",
"uni-app",
"harmonyos",
"react-native",
"unity",
"unreal-engine",
"donut"
],
"description": "Reuse framework from the search_trtc_knowledge chain when available."
},
"queryID": {
"type": "string",
"description": "REQUIRED. Same queryID as search_trtc_knowledge/finalize_answer."
},
"resolved": {
"type": "string",
"enum": [
"0",
"1"
],
"description": "\"1\" for positive feedback, \"0\" for negative feedback."
}
},
"required": [
"prompt",
"queryID",
"resolved"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — |
No completed comparison is available.
| Risk | Change | Subject |
|---|---|---|
| No material changes recorded. | ||
| Severity | Finding | Advisory |
|---|---|---|
| No confirmed vulnerability is published for this version. | ||
Artifact SHA-256: 22554ed2fd57dec9ac37e58fd19c0f46eeb4ba9c60e3d19a21e5a7bdf30a576c
Scanner: mcp-proof-engine 0.1.0.