Skip to main content
Glama
haoan33

OmniQQ-MCP

by haoan33

switch_qq_account

Switch the active QQ account among previously logged-in accounts, update default and OneBot 11 port settings, and optionally restart NapCat to bring the new account online immediately.

Instructions

切换当前使用的 QQ 账号(支持在多个已登录过的 QQ 号之间热切换)。 会自动更新默认配置与 OneBot 11 端口配置;当 restart_immediately=True 时,会自动停止旧账号进程并以新账号重启上线。 :param uin: 要切换的目标 QQ 号 :param restart_immediately: 是否立即重启 NapCat 服务使新账号即刻上线,默认 True :param wait_seconds: 重启时等待端口就绪的最大秒数,默认 25

Input Schema

NameRequiredDescriptionDefault
uinYes要切换的目标 QQ 号
wait_secondsNo重启时等待端口就绪的最大秒数,默认 25
restart_immediatelyNo是否立即重启 NapCat 服务使新账号即刻上线,默认 True

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.1.0
    • addedInput schema / additionalProperties
      Added value: +false
  2. First observedv1.0.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a reasonable job: it discloses that the default config and OneBot 11 port config are auto-updated, and that restart_immediately=True kills the old account process and restarts with the new one. It omits failure modes (target uin never logged in, port never ready) and any permission/auth prerequisites.

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

Conciseness4/5

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

The core behavior is front-loaded in the first two clauses before the parameter list, and nothing is padded. The :param block duplicates schema text, which is mild redundancy but keeps it scannable.

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

Completeness4/5

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

For a mutation tool with no annotations and no output schema, the description covers purpose, side effects, restart semantics, and the meaning of all three parameters. What remains missing is error/edge-case behavior and prerequisites, but an agent has enough to invoke it correctly.

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%, so all three parameters are already documented in the schema, and the description's :param lines are near-verbatim restatements. No additional meaning (formats, constraints, interactions) is added, so the 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?

States a specific verb and resource (switch the currently active QQ account) and scopes it with 'hot switch between multiple already logged-in QQ numbers', which implicitly separates it from login_new_qq_by_qrcode. It never names a sibling outright, but the operation is unambiguous.

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

Usage Guidelines3/5

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

The parenthetical 'supports hot-switching between already logged-in QQ numbers' implies the precondition for use, and the restart_immediately behavior signals the tradeoff involved. However, it never says when NOT to use it (e.g. use login_new_qq_by_qrcode for a fresh account) or points to list_qq_accounts to enumerate valid targets.

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