Skip to main content
Glama

qq-onebot-mcp

軽量 MCPサーバーQQ(NapCat / OneBot 11)を任意の MCP ホスト(DSH、Claude、Cursor…)に接続します。 npm 依存ゼロ、純粋な Node.js ≥ 20、内蔵 WebSocket のみ使用。

  • プライベートチャット(ホワイトリスト管理者)→ メッセージは inbox へ → ホスト agent が処理(完全なツール権限)→ 返信。

  • グループチャット @bot(ホワイトリストグループ)→ ブリッジが直接 LLM API で回答、agent を経由せず、ローカルに触れません

アーキテクチャ

QQ 老大 ──私聊──▶ NapCat(QQ小号) ──OneBot11/WS:3001──▶ qq-mcp-server.mjs ──MCP──▶ 宿主 agent
                                                                   ▲
                                                              (inbox / 工具)

ファイル

役割

接続

NapCat

QQ プロトコル → OneBot 11(WS 3001)

ブリッジ

qq-mcp-server.mjs

MCPサーバー:ツール、排他ロック、inbox

ブリッジ

onebot.mjs

OneBot WS クライアント(依存ゼロ)

ブリッジ

group_llm.mjs

グループチャット純 LLM 直接回答

起動

qq-listener.mjs

常駐リスナー + ホストセッションへの注入(オプションのクローズドループ)

制御

qqctl.mjs

プロセスライフサイクル(start/stop/status)

Related MCP server: NapCat MCP Server

クイックスタート

  1. NapCat:インストールして QQ サブアカウントでログインし、OneBot WS を有効化(デフォルト ws://127.0.0.1:3001)。

  2. 設定cp .env.example .env を実行し、QQ_BOTQQ_ALLOWED_SENDERS を入力(LLM_API_KEY を追加するとグループチャットを有効化)。

  3. MCP 登録:ホストが qq-mcp-server.mjs(stdio)を指すようにします。DSH は dsh-bundle/ テンプレートを使用。INSTALL-DSH.md 参照。

  4. オンライン:agent に「QQにログインして」と指示 → skills/qq-online/SKILL.md に従って attach → メッセージを待つ → 返信。

環境変数

必須

意味

QQ_BOT

ボットの QQ 番号

QQ_ALLOWED_SENDERS

プライベートチャットのホワイトリスト、カンマ区切り

ONEBOT_WS_URL

NapCat WS アドレス(デフォルト ws://127.0.0.1:3001

QQ_ALLOWED_GROUPS

静的グループホワイトリスト(空=動的)

LLM_API_KEY / LLM_BASE_URL / LLM_MODEL

グループチャット直接回答用

.env は git で無視されています。絶対にコミットしないでください。

MCP ツール

ツール

説明

qq_attach / qq_detach

排他占有 / 解放(ファイルロック、ホスト横断、クラッシュ残骸は自動奪取)

qq_wait_inbox

プライベートチャットをブロッキング待機(ゼロポーリング、ループ推奨)

qq_poll_inbox

inbox を取得(タイムアウト設定可)

qq_send

現在の相手に返信(ホワイトリストのみ)

qq_status

ブリッジ状態

qq_get_agent_profile

AGENTS.md のロール設定を読み取り

待機モード:サーバー起動時は NapCat に接続せず、qq_attach で接続、qq_detach で切断 —— リソース消費ゼロ。

全自動クローズドループ(オプション)

QQ メッセージで agent を自動起動させたい場合(毎回「ログイン」と言わなくて済む):独立プロセスで qq-listener.mjs を実行:

DSH_API_URL=http://127.0.0.1:3080 DSH_SESSION_ID=<session-id> \
  node qq-listener.mjs <tag> <workdir> 0
QQ 消息 → 监听器(wait_inbox) → 写入 <workdir>/inbox/ + POST http://127.0.0.1:3080/api/session.prompt
                                                                        │
                                                    agent 自动醒来处理 → <workdir>/outbox/ → qq_send 回复
  • リスナーは agent セッションから独立して常駐。session.prompt(mode: queue)でメッセージをホストセッションに注入しターンをトリガー。

  • 返信は <workdir>/outbox/*.json{type:"send", message})に配置。リスナーが送信(chat target がない場合は OneBot WS に直接接続)。

  • グレースフル停止:<workdir>stop.flag を書き込む。

⚠️ session.prompt は認証なし・ループバック限定。ローカルの信頼できる環境でのみ使用してください。

セキュリティ

  • プライベートチャット:ホワイトリストのみ。見知らぬプライベートチャットは破棄。

  • グループチャット:純 LLM。ローカルのファイル・コマンドには絶対に触れません。

  • qq_send は現在の相手(ホワイトリスト内)にのみ返信可能。

  • ホワイトリストユーザーがボットをグループに追加 → 自動ホワイトリスト登録&告知。

カスタマイズ

AGENTS.md(人格・役割・セキュリティ境界)を編集。ブリッジはセッションごとに再読み込みするため、再起動は不要。

ローカルのプライバシー情報(重要人物の関係など)は data/(git 無視)に置き、AGENTS_MD で参照可能 —— GitHub にはアップロードされません。

動的セッション検出(クローズドループ)

リスナーは DSH_SESSION_ID をハードコードしません:メッセージ受信のたびに session.list を呼び、running + タイトルに 上号/QQ/布卡 を含むセッションを検索。見つからなければ env にフォールバック。これにより「ログイン」セッションが置き換え・再開されてもクローズドループは有効のまま。

開発

npm test   # 全部入口语法检查

ファイル

├── qq-mcp-server.mjs   # MCP server(主入口)
├── onebot.mjs          # OneBot WS 客户端
├── group_llm.mjs       # 群聊 LLM 直答
├── bridge.mjs          # 独立触发桥(无 MCP 宿主)
├── bridge-acp.mjs      # ACP 连接器(持久 DSH 会话)
├── qq-listener.mjs     # 闭环监听器
├── qqctl.mjs           # 进程控制
├── dsh-bundle/         # DSH profile bundle 模板
├── skills/qq-online/   # 「上QQ号」技能
├── INSTALL-DSH.md      # 新用户自装指南
└── .env.example        # 配置模板

License

MIT

F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI clients to send and receive QQ messages through NapCatQQ (OneBot v11) for both private and group chats. It supports message context management, real-time WebSocket listening, and human-like typing simulation.
    7
    24
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with NapCat QQ bot APIs for group management, messaging, and system operations. Supports HTTP and WebSocket modes with security features like group restrictions and readonly mode.
    4
  • A
    license
    Not graded
    quality
    C
    maintenance
    A MCP server that exposes QQ bot capabilities over Streamable HTTP, enabling clients to query bot status, read group and friend info, fetch chat history, and send group/private text messages.
    2
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Connects QQ via NapCat OneBot v11 to an Astral Code app-server, exposing MCP tools for sending messages, files, images, and fetching conversation history.
    10
    1
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.

View all MCP Connectors

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/HUliangwei/qq-onebot-mcp'

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