Skip to main content
Glama
VanessaLops

anime-connect-mcp-bot

by VanessaLops

anime-connect-mcp-bot

MCP 服务器,用于监控 Anime Connect 应用的聊天,并将数据(消息、警报) 作为工具供 AI 助手(Claude)查询。

分层

  • src/ingestion — 从聊天源捕获消息。FirebaseChatSource 从 Realtime Database 读取带有 has_bot: true 的群组;MockChatSource 仅用于开发/测试。

  • src/domain — 实体(ChatMessage、Alert)、纯规则(关键词检测) 以及 botSettings.ts(按群组个性化配置,见下文)。

  • src/actuation — 将内容写回聊天(FirebaseActuator),或仅记录日志(DryRunActuator)。

  • src/agent — 聊天命令(!ping、!help、!ban)以及按角色的权限。

  • src/storage — SQLite 持久化(MessageRepository)。

  • src/mcp — 提供工具 get_recent_messages、search_messages、 get_recent_alerts 的 MCP 服务器。

  • src/config — 环境变量(DB_PATH、POLL_INTERVAL_MS、DRY_RUN)。

Related MCP server: mcp-server-agent-comm

按群组个性化配置(bot_settings)

每个群组的所有者通过 Anime Connect 应用本身(机器人配置界面)编辑机器人,这会写入 Realtime Database 中的 groups/{id}/bot_settings:

  • 身份:name 和 avatar_color — 该群组的机器人用户会使用这些值创建/更新 (FirebaseActuator,bot_group_id 字段将用户绑定到群组)。

  • 实际启用:active — 当为 false 时,机器人仅记录它会在该群组中执行的操作, 即使 .env 中设置了 DRY_RUN=false(它仍然是进程的总开关)。

  • 命令:commands.ping/help/ban.enabled 分别启用/禁用各命令;commands.ping.message 是 !ping 的自定义回复。

  • 审核:keyword_alerts 和 badwords(逗号分隔的字符串)会替换该群组 在 .env 中的全局 KEYWORD_ALERTS/BADWORDS。

未保存 bot_settings 的群组使用 src/domain/botSettings.ts (DEFAULT_BOT_SETTINGS)中的默认值,出于安全考虑,active 为 false。

运行

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

下一步

用真实的实现替换 MockChatSource,使其与 Anime Connect 应用通信 (REST API、webhook 或直接读取数据库,具体取决于应用聊天的暴露方式)。

Related MCP Connectors

Related MCP Servers