Skip to main content
Glama

qq-onebot-mcp

Leichter MCP-Server: bindet QQ (NapCat / OneBot 11) an beliebige MCP-Hosts (DSH, Claude, Cursor…) an. Null npm-Abhängigkeiten, reines Node.js ≥ 20, nur mit eingebautem WebSocket.

  • Privatnachrichten (Whitelist-Chef) → Nachrichten gehen in die Inbox → Host-Agent verarbeitet (volle Tool-Berechtigung) → Antwort.

  • Gruppenchat @Bot (Whitelist-Gruppen) → die Brücke antwortet direkt über die LLM-API, ohne Agent, ohne lokalen Zugriff.

Architektur

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

Ebene

Datei

Zuständigkeit

Anbindung

NapCat

QQ-Protokoll → OneBot 11 (WS 3001)

Brücke

qq-mcp-server.mjs

MCP-Server: Tools, exklusive Sperre, Inbox

Brücke

onebot.mjs

OneBot-WS-Client (null Abhängigkeiten)

Brücke

group_llm.mjs

Gruppenchat reine LLM-Direktantwort

Weckruf

qq-listener.mjs

Dauerhaft lauschen + Injektion in Host-Sitzung (optionaler geschlossener Kreislauf)

Steuerung

qqctl.mjs

Prozess-Lebenszyklus (start/stop/status)

Related MCP server: NapCat MCP Server

Schnellstart

  1. NapCat: installieren und mit einem QQ-Zweitkonto anmelden, OneBot WS aktivieren (Standard ws://127.0.0.1:3001).

  2. Konfiguration: cp .env.example .env, QQ_BOT, QQ_ALLOWED_SENDERS ausfüllen (optional LLM_API_KEY für Gruppenchat).

  3. MCP registrieren: Host zeigt auf qq-mcp-server.mjs (stdio). DSH nutzt die dsh-bundle/-Vorlage, siehe INSTALL-DSH.md.

  4. Einloggen: dem Agent sagen „Geh auf QQ" → nach skills/qq-online/SKILL.md attach → auf Nachrichten warten → antworten.

Umgebungsvariable

Pflicht

Bedeutung

QQ_BOT

Bot-QQ-Nummer

QQ_ALLOWED_SENDERS

Privatchat-Whitelist, kommagetrennt

ONEBOT_WS_URL

NapCat-WS-Adresse (Standard ws://127.0.0.1:3001)

QQ_ALLOWED_GROUPS

Statische Gruppen-Whitelist (leer = dynamisch)

LLM_API_KEY / LLM_BASE_URL / LLM_MODEL

Für Gruppenchat-Direktantwort

.env ist git-ignoriert, niemals committen.

MCP-Tools

Tool

Beschreibung

qq_attach / qq_detach

Exklusiv belegen / Brücke freigeben (Dateisperre, hostübergreifend; automatische Übernahme bei Absturz-Resten)

qq_wait_inbox

Blockierend auf Privatchat warten (null Polling, für Schleifen empfohlen)

qq_poll_inbox

Inbox abrufen (mit Timeout möglich)

qq_send

Aktuellem Gesprächspartner antworten (nur Whitelist)

qq_status

Brückenstatus

qq_get_agent_profile

AGENTS.md-Rollenkonfiguration lesen

Standby-Modus: Der Server verbindet sich beim Start nicht mit NapCat, erst qq_attach verbindet, qq_detach trennt — null Ressourcenverbrauch.

Vollautomatischer geschlossener Kreislauf (optional)

Möchte man, dass QQ-Nachrichten den Agent automatisch aufwecken (ohne jedes Mal „Einloggen" zu rufen): qq-listener.mjs als eigenen Prozess starten:

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 回复
  • Der Listener läuft unabhängig von der Agent-Sitzung dauerhaft; session.prompt (mode: queue) injiziert Nachrichten in die Host-Sitzung und löst eine Runde aus.

  • Antworten werden in <workdir>/outbox/*.json gelegt ({type:"send", message}), der Listener sendet sie (ohne Chat-Target direkt über OneBot WS).

  • Sauberer Stopp: stop.flag in <workdir> schreiben.

⚠️ session.prompt hat keine Authentifizierung und ist nur auf Loopback beschränkt — nur in vertrauenswürdiger lokaler Umgebung verwenden.

Sicherheit

  • Privatchat: nur Whitelist; fremde Privatnachrichten werden verworfen.

  • Gruppenchat: reine LLM, berührt niemals lokale Dateien/Befehle.

  • qq_send kann nur dem aktuellen Gesprächspartner antworten (innerhalb der Whitelist).

  • Whitelist-Benutzer ziehen den Bot in eine Gruppe → automatische Freischaltung und Bekanntmachung.

Personalisierung

AGENTS.md bearbeiten (Persönlichkeit/Aufgaben/Sicherheitsgrenzen), die Brücke lädt es pro Sitzung neu, kein Neustart nötig.

Lokale private Daten (z. B. wichtige Personenbeziehungen) können in data/ (git-ignoriert) abgelegt und in AGENTS_MD darauf verwiesen werden — nicht auf GitHub.

Dynamische Sitzungserkennung (geschlossener Kreislauf)

Der Listener schreibt DSH_SESSION_ID nicht mehr fest: Bei jeder Nachricht ruft er zuerst session.list auf, um eine laufende Sitzung mit Titel enthält 上号/QQ/布卡 zu finden, sonst Fallback auf env. So bleibt der geschlossene Kreislauf auch aktiv, wenn die „Einloggen"-Sitzung ersetzt/neu geöffnet wird.

Entwicklung

npm test   # 全部入口语法检查

Dateien

├── 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        # 配置模板

Lizenz

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