#!/usr/bin/env python3 """Check for new messages using MCP bridge""" import sys import sqlite3 import argparse from datetime import datetime from pathlib import Path def check_messages(db_path: str, conversation_id: str, token: str): """Check for unread messages""" try: if not Path(db_path).exists(): print(f"āš ļø Database not found: {db_path}", file=sys.stderr) return conn = sqlite3.connect(db_path) conn.row_factory = sqlite3.Row # Get unread messages cursor = conn.execute( """SELECT id, sender, content, action_type, created_at FROM messages WHERE conversation_id = ? AND read_by_b = 0 ORDER BY created_at ASC""", (conversation_id,) ) messages = cursor.fetchall() if messages: print(f"\nšŸ“Ø {len(messages)} new message(s):") for msg in messages: print(f" From: {msg['sender']}") print(f" Type: {msg['action_type']}") print(f" Time: {msg['created_at']}") content = msg['content'][:100] if len(msg['content']) > 100: content += "..." print(f" Content: {content}") print() # Mark as read conn.execute( "UPDATE messages SET read_by_b = 1 WHERE id = ?", (msg['id'],) ) conn.commit() print(f"āœ… {len(messages)} message(s) marked as read") else: print("šŸ“­ No new messages") conn.close() except sqlite3.OperationalError as e: print(f"āŒ Database error: {e}", file=sys.stderr) sys.exit(1) except Exception as e: print(f"āŒ Error: {e}", file=sys.stderr) sys.exit(1) if __name__ == "__main__": parser = argparse.ArgumentParser(description="Check for new MCP bridge messages") parser.add_argument("--conversation-id", required=True, help="Conversation ID") parser.add_argument("--token", required=True, help="Worker token") parser.add_argument("--db-path", default="/tmp/claude_bridge_coordinator.db", help="Database path") args = parser.parse_args() check_messages(args.db_path, args.conversation_id, args.token)