Skip to main content
Glama
haoan33

OmniQQ-MCP

by haoan33

get_recent_messages

Fetch recent QQ messages cached by OmniQQ-MCP's WebSocket listener; filter by private/group chat, target QQ/group ID, keyword, and include self-sent messages.

Instructions

获取 MCP 服务后台通过 WebSocket 实时监听并缓存的近期 QQ 消息列表。 支持按私聊/群聊、目标 QQ 号或群号、关键词过滤。 :param count: 返回的最大消息条数,默认 20 :param chat_type: 消息类型过滤: 'all' (全部), 'private' (仅私聊), 'group' (仅群聊) :param target_id: 按特定群号 (group_id) 或特定用户 QQ 号 (user_id) 过滤 (可选) :param keyword: 按消息文本或发送者昵称关键词过滤 (可选) :param include_self_sent: 是否包含自己发出的消息,默认 False

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNo返回的最大消息条数,默认 20
keywordNo按消息文本或发送者昵称关键词过滤 (可选)
chat_typeNo消息类型过滤: 'all' (全部), 'private' (仅私聊), 'group' (仅群聊)all
target_idNo按特定群号 (group_id) 或特定用户 QQ 号 (user_id) 过滤 (可选)
include_self_sentNo是否包含自己发出的消息,默认 False

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose meaningful behavior: messages are captured live over WebSocket and served from a backend cache, implying freshness limits and possible buffer bounds. However, it never states how far back the cache reaches, whether the buffer is cleared (a sibling clear_recent_messages_buffer exists), or the ordering of results — gaps that matter for a read tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is well front-loaded and informative, but the five :param: lines duplicate the input schema verbatim, adding bulk without value. Roughly half the description is redundant repetition of structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, no-output-schema, no-annotation tool, the description covers purpose, data source, and filtering but omits return shape, result ordering, and the cache's time/size bounds. Adequate to call the tool, but not enough to predict what comes back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description's parameter block simply restates the same text (count, chat_type, target_id, keyword, include_self_sent). It adds no new syntax, format, or interaction detail beyond what the schema already documents, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (获取近期 QQ 消息列表) and adds an important qualifier: the data comes from a WebSocket real-time listener cache in the MCP backend, which distinguishes it from server-side history APIs. It stops short of naming the sibling it competes with (get_friend_msg_history / get_group_msg_history), so differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists supported filters but never says when to use this tool versus get_friend_msg_history, get_group_msg_history, or get_recent_contact. No prerequisites, exclusions, or alternative-selection criteria are given, leaving the agent to infer that 'recent cached' is the distinguishing condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.