Skip to main content
Glama
mouse114514

Xadeus-QQ-MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
QQ_OVERRIDEYesYour QQ number to override the --qq argument. Required for proper operation.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
check_statusA

Check QQ login status and NapCat connection status.

get_group_listA

Get the list of QQ groups the bot has joined.

get_friend_listA

Get the list of QQ friends.

get_recent_contextA

Get recent message context for a monitored group or whitelisted friend.

Returns all buffered messages (backfill + real-time) without compression. Use compress_context to manually compress when needed. Images are returned as URL strings in each message's image_urls field.

Args: target: Group ID or friend QQ ID. target_type: "group" (default) or "private". limit: Number of recent messages to return (default 200).

batch_get_recent_contextA

Batch query recent message context for multiple targets.

More efficient than calling get_recent_context multiple times: uses at most 2 OneBot API calls (group list + friend list) regardless of how many targets are queried.

Args: targets: List of dicts, each with "target" (ID) and optional "target_type" ("group" or "private", default "group"). Example: [{"target": "123", "target_type": "group"}, {"target": "456", "target_type": "private"}] limit: Number of recent messages per target (default 50).

send_messageA

Send a message to a monitored group or whitelisted friend. By default automatically waits for a reply after sending.

Preferred way to send multiple messages: insert </分段> in the content at each desired split point. Each segment becomes its own message; the tag itself is stripped. Example: content = "吃了吗</分段>今天忙不忙" sends two messages: "吃了吗" and "今天忙不忙". Use this whenever you want to split a reply into multiple messages — it is more natural than num_chunks because you choose the split points yourself.

Args: target: Group ID or friend QQ ID. content: Text message content. May contain </分段> markers to specify exact split points between messages. target_type: "group" (default) or "private". reply_to: Optional message ID to reply to. split_content: If True (and content has no </分段> tag), auto-split short messages (≤100 chars) on punctuation. Default False. num_chunks: Force exactly this many chunks via punctuation-based merging. Overrides the </分段> tag. Set to 1 to force a single message even when the content contains </分段>. wait_reply: If True (default), blocks and waits for a reply after sending. If False, returns immediately without waiting.

Split-point priority: num_chunks=1 → num_chunks≥2 → </分段> tag → split_content → single message.

wait_for_replyA

Wait for a new reply/message from a target.

Blocks until a new message arrives from the specified target or the timeout expires. Returns any new messages received. Only returns non-self messages (others' replies, not the bot's own).

Use this after send_message to wait for the other person's reply and continue the conversation in one agent turn.

Args: target: Group ID or friend QQ ID. target_type: "group" (default) or "private". timeout: Maximum seconds to wait (default 120, max 300).

send_imageA

Send an image to a monitored group or whitelisted friend.

Args: target: Group ID or friend QQ ID. image: Base64-encoded image data (without the base64:// prefix). target_type: "group" (default) or "private". reply_to: Optional message ID to reply to.

send_voiceA

Send a voice message to a monitored group or whitelisted friend.

NapCat auto-converts common formats (MP3/WAV/AMR/OGG/FLAC) to SILK.

Args: target: Group ID or friend QQ ID. audio: Base64-encoded audio data (without the base64:// prefix). target_type: "group" (default) or "private".

send_fileA

下载 URL 文件并发送到群或私聊。

从 URL 下载文件然后上传到 QQ。支持任意文件类型。

Args: target: 群号或 QQ 号。 file_url: 文件的直接下载 URL。 file_name: 文件名(可选,默认从 URL 提取)。 target_type: "group"(默认)或 "private"。

compress_contextA

Compress all buffered messages for a target into a summary.

This replaces raw messages with a compressed summary, freeing up the buffer. Use this after reading context when you want to archive old messages.

Args: target: Group ID or friend QQ ID. target_type: "group" (default) or "private".

screenshot_chatA

Take a QQ-style screenshot of chat messages starting from a specific message.

Renders messages as a dark-mode QQ chat screenshot (iPhone style) and returns a base64-encoded PNG image.

The screenshot starts from the given message_id and renders downward. If the messages fit on one screen, earlier messages are prepended to fill the screen (bottom-aligned). If they overflow, later messages are cut off at the bottom.

Args: target: Group ID or friend QQ ID. message_id: The message ID to start rendering from. target_type: "group" (default) or "private".

test_wake_activationA

Manually trigger the wake activation sequence (for testing).

debug_wake_pipelineC

Debug the wake pipeline by simulating what happens when a message arrives.

diagnose_wakeC

Debug wake monitor state.

add_wake_ruleA

Add a wake rule: when a matching message arrives, opencode wakes up.

Args: target_type: "group" or "private". target_id: Specific group or friend QQ ID (None = any). keywords: Keywords to match (empty list = any message). ignore_if_focused: Skip wake if opencode window already focused (default True).

list_wake_rulesA

List all wake rules for auto-wake.

remove_wake_ruleA

Remove a wake rule by index.

Args: index: Index of the rule to remove (from list_wake_rules).

set_wake_enabledA

Enable or disable wake rules.

Args: enabled: True to enable, False to disable. index: Rule index (None = all rules).

set_wake_pendingA

Manually set wake pending state.

When pending=True, new messages will NOT trigger wake. When pending=False, new messages will trigger wake normally. Use this to prevent duplicate wakes while the agent is working.

Args: pending: True to block wakes, False to allow.

get_wake_configA

Get current wake config (window title patterns, shortcuts).

set_wake_configA

Configure wake target window.

Args: window_title_patterns: List of window title substrings to match (e.g. ["opencode", "cursor"]). focus_shortcut: Shortcut to focus input box, e.g. "ctrl+l".

mute_memberA

禁言群成员。

Args: group_id: 群号。 user_id: 被禁言的 QQ 号。 duration: 禁言时长(秒),默认 600 秒(10分钟)。

unmute_memberB

解除群成员禁言。

Args: group_id: 群号。 user_id: 被解禁的 QQ 号。

kick_memberB

踢出群成员。

Args: group_id: 群号。 user_id: 被踢的 QQ 号。 reject_add_request: 是否拒绝再次加群请求。

set_member_cardA

设置群成员名片(群昵称)。空字符串清除名片。

Args: group_id: 群号。 user_id: 目标 QQ 号。 card: 新名片文字,空字符串表示清除。

send_group_noticeB

发送群公告。

Args: group_id: 群号。 content: 公告内容。

recall_messageC

撤回消息。发错了能撤回来,仅限机器人发送的消息或管理员。

Args: message_id: 要撤回的消息 ID。

get_group_member_listC

获取群成员列表。

Args: group_id: 群号。

get_group_member_infoC

获取指定群成员详细信息。

Args: group_id: 群号。 user_id: 目标 QQ 号。

add_timerA

添加定时任务。到时间通过 wake 唤醒 agent。

支持 cron 和间隔两种模式:

  • cron_expr: "0 8 * * *" = 每天早上8点

  • interval_seconds: 3600 = 每小时

Args: message: 触发时发送给 agent 的内容。 cron_expr: cron 表达式 "minute hour * * *"。 interval_seconds: 间隔秒数。 once: 是否单次触发(触发后自动删除)。

remove_timerA

删除定时任务。

Args: index: 任务索引(从 list_timers 获取)。

list_timersA

列出所有定时任务。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mouse114514/Xadeus-QQ-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server