Skip to main content
Glama

qq-onebot-mcp

Servidor MCP ligero: conecta QQ (NapCat / OneBot 11) a cualquier host MCP (DSH, Claude, Cursor…). Cero dependencias npm, Node.js puro ≥ 20, solo usa WebSocket integrado.

  • Mensajes privados (lista blanca de administradores) → los mensajes entran en la bandeja de entrada → el agente del host los procesa (permisos completos de herramientas) → responde.

  • Menciones @bot en chats de grupo (grupos en lista blanca) → el puente responde directamente con la API de LLM, sin pasar por el agente ni tocar la máquina local.

Arquitectura

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

Capa

Archivo

Responsabilidad

Acceso

NapCat

Protocolo QQ → OneBot 11 (WS 3001)

Puente

qq-mcp-server.mjs

Servidor MCP: herramientas, bloqueo exclusivo, bandeja de entrada

Puente

onebot.mjs

Cliente OneBot WS (cero dependencias)

Puente

group_llm.mjs

Respuesta directa de LLM para chats de grupo

Despertar

qq-listener.mjs

Escucha residente + inyección en la sesión del host (bucle opcional)

Control

qqctl.mjs

Ciclo de vida del proceso (start/stop/status)

Related MCP server: NapCat MCP Server

Inicio rápido

  1. NapCat: instálalo y ten una cuenta QQ secundaria iniciada, activa OneBot WS (por defecto ws://127.0.0.1:3001).

  2. Configuración: cp .env.example .env, rellena QQ_BOT, QQ_ALLOWED_SENDERS (puedes añadir LLM_API_KEY para activar los chats de grupo).

  3. Registra MCP: el host apunta a qq-mcp-server.mjs (stdio). DSH usa la plantilla dsh-bundle/, consulta INSTALL-DSH.md.

  4. Conéctate: dile al agente «conéctate a QQ» → sigue skills/qq-online/SKILL.md para el attach → espera mensajes → responde.

Variable de entorno

Obligatoria

Significado

QQ_BOT

Número de QQ del bot

QQ_ALLOWED_SENDERS

Lista blanca de mensajes privados, separada por comas

ONEBOT_WS_URL

Dirección WS de NapCat (por defecto ws://127.0.0.1:3001)

QQ_ALLOWED_GROUPS

Lista blanca estática de grupos (vacía = dinámica)

LLM_API_KEY / LLM_BASE_URL / LLM_MODEL

Para respuestas directas en chats de grupo

.env está en git ignore, nunca se sube.

Herramientas MCP

Herramienta

Descripción

qq_attach / qq_detach

Ocupación exclusiva / liberación del puente (bloqueo de archivo, entre hosts; recuperación automática de bloqueos residuales tras un fallo)

qq_wait_inbox

Espera bloqueante de mensajes privados (cero sondeos, recomendado para bucles)

qq_poll_inbox

Obtiene la bandeja de entrada (con tiempo de espera configurable)

qq_send

Responde al interlocutor actual (solo lista blanca)

qq_status

Estado del puente

qq_get_agent_profile

Lee la configuración de rol de AGENTS.md

Modo en espera: el servidor no se conecta a NapCat al iniciar; solo se conecta con qq_attach y se desconecta con qq_detach — cero consumo de recursos.

Bucle automático completo (opcional)

¿Quieres que los mensajes de QQ despierten automáticamente al agente (sin tener que decir «conéctate» cada vez)? Ejecuta qq-listener.mjs como proceso independiente:

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 回复
  • El listener reside de forma independiente a la sesión del agente; session.prompt (mode: queue) inyecta los mensajes en la sesión del host para activar el turno.

  • Las respuestas se guardan en <workdir>/outbox/*.json ({type:"send", message}), y el listener las envía (si no hay chat target, se conecta directamente al WS de OneBot).

  • Detención limpia: escribe stop.flag en <workdir>.

⚠️ session.prompt no tiene autenticación y solo está limitado a loopback; úsalo solo en entornos locales de confianza.

Seguridad

  • Mensajes privados: solo lista blanca; los mensajes privados desconocidos se descartan.

  • Chats de grupo: solo LLM, nunca toca archivos o comandos de la máquina local.

  • qq_send solo puede responder al interlocutor actual (dentro de la lista blanca).

  • Si un usuario de la lista blanca añade al bot a un grupo → se añade automáticamente a la lista blanca y se anuncia.

Personalización

Edita AGENTS.md (personalidad / responsabilidades / límites de seguridad); el puente lo recarga en cada sesión, sin necesidad de reiniciar.

La privacidad local (como relaciones personales importantes) puede ir en data/ (git ignore) y referenciarse desde AGENTS_MD — no se sube a GitHub.

Descubrimiento dinámico de sesiones (bucle)

El listener ya no tiene DSH_SESSION_ID fijo: cada vez que recibe un mensaje, primero llama a session.list para buscar una sesión en ejecución + cuyo título contenga 上号/QQ/布卡; si no la encuentra, recurre a la variable de entorno. Así, si la sesión «conéctate» se reemplaza o se reabre, el bucle sigue funcionando.

Desarrollo

npm test   # 全部入口语法检查

Archivos

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

Licencia

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