qq-onebot-mcp
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) |
ブリッジ |
| MCPサーバー:ツール、排他ロック、inbox |
ブリッジ |
| OneBot WS クライアント(依存ゼロ) |
ブリッジ |
| グループチャット純 LLM 直接回答 |
起動 |
| 常駐リスナー + ホストセッションへの注入(オプションのクローズドループ) |
制御 |
| プロセスライフサイクル(start/stop/status) |
Related MCP server: NapCat MCP Server
クイックスタート
NapCat:インストールして QQ サブアカウントでログインし、OneBot WS を有効化(デフォルト
ws://127.0.0.1:3001)。設定:
cp .env.example .envを実行し、QQ_BOT、QQ_ALLOWED_SENDERSを入力(LLM_API_KEYを追加するとグループチャットを有効化)。MCP 登録:ホストが
qq-mcp-server.mjs(stdio)を指すようにします。DSH はdsh-bundle/テンプレートを使用。INSTALL-DSH.md参照。オンライン:agent に「QQにログインして」と指示 →
skills/qq-online/SKILL.mdに従って attach → メッセージを待つ → 返信。
環境変数 | 必須 | 意味 |
| ✅ | ボットの QQ 番号 |
| ✅ | プライベートチャットのホワイトリスト、カンマ区切り |
| NapCat WS アドレス(デフォルト | |
| 静的グループホワイトリスト(空=動的) | |
| グループチャット直接回答用 |
.envは git で無視されています。絶対にコミットしないでください。
MCP ツール
ツール | 説明 |
| 排他占有 / 解放(ファイルロック、ホスト横断、クラッシュ残骸は自動奪取) |
| プライベートチャットをブロッキング待機(ゼロポーリング、ループ推奨) |
| inbox を取得(タイムアウト設定可) |
| 現在の相手に返信(ホワイトリストのみ) |
| ブリッジ状態 |
| 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> 0QQ 消息 → 监听器(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
Maintenance
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
- AlicenseAqualityDmaintenanceAn 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.724MIT
- FlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseNot gradedqualityCmaintenanceA 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.2MIT
- AlicenseBqualityBmaintenanceConnects QQ via NapCat OneBot v11 to an Astral Code app-server, exposing MCP tools for sending messages, files, images, and fetching conversation history.101Apache 2.0
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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