Skip to main content
Glama
VanessaLops

anime-connect-mcp-bot

by VanessaLops

anime-connect-mcp-bot

Servidor MCP que supervisa el chat de la aplicación Anime Connect y expone los datos (mensajes, alertas) como herramientas para que un asistente de IA (Claude) los consulte.

Capas

  • src/ingestion — captura mensajes de la fuente de chat. FirebaseChatSource lee los grupos con has_bot: true del Realtime Database; MockChatSource queda solo para desarrollo/pruebas.

  • src/domain — entidades (ChatMessage, Alert), reglas puras (detección de palabras clave) y botSettings.ts (personalización por grupo, ver más abajo).

  • src/actuation — escribe de vuelta en el chat (FirebaseActuator) o solo registra en el log (DryRunActuator).

  • src/agent — comandos del chat (!ping, !help, !ban) y permisos por rol.

  • src/storage — persistencia en SQLite (MessageRepository).

  • src/mcp — servidor MCP con las herramientas get_recent_messages, search_messages, get_recent_alerts.

  • src/config — variables de entorno (DB_PATH, POLL_INTERVAL_MS, DRY_RUN).

Related MCP server: mcp-server-agent-comm

Personalización por grupo (bot_settings)

El dueño de cada grupo edita el bot desde la propia aplicación Anime Connect (pantalla de configuración del bot), lo que se guarda en groups/{id}/bot_settings en Realtime Database:

  • Identidad: name y avatar_color — el usuario-bot de ese grupo se crea/actualiza con esos valores (FirebaseActuator, el campo bot_group_id vincula el usuario al grupo).

  • Activación real: active — mientras sea false, el bot solo registra en el log lo que haría en ese grupo, incluso con DRY_RUN=false en el .env (que sigue siendo el interruptor general del proceso).

  • Comandos: commands.ping/help/ban.enabled activa/desactiva cada uno; commands.ping.message es la respuesta personalizada del !ping.

  • Moderación: keyword_alerts y badwords, cadenas separadas por comas, sustituyen los KEYWORD_ALERTS/BADWORDS globales del .env para ese grupo.

Grupo sin bot_settings guardado usa los valores por defecto de src/domain/botSettings.ts (DEFAULT_BOT_SETTINGS), con active: false por seguridad.

Ejecutar

npm install
npm run dev     # modo desenvolvimento (tsx watch)
npm run build && npm start   # build + produção

Siguiente paso

Reemplazar MockChatSource por una implementación real que hable con la aplicación Anime Connect (API REST, webhook o lectura directa de la base de datos, dependiendo de cómo se expone el chat de la aplicación).

Related MCP Connectors

Related MCP Servers