#!/usr/bin/env python3 """Search emails with a custom query.""" import os import sys # Set credentials path os.environ.setdefault('GMAIL_CREDENTIALS_PATH', os.path.expanduser('~/.gmail-mcp/credentials.json')) from gmail_mcp.utils.GCP.gmail_auth import get_gmail_service def main(): if len(sys.argv) < 2: print("Usage: search.py [max_results]") print("Example: search.py 'from:github.com' 10") sys.exit(1) query = sys.argv[1] max_results = int(sys.argv[2]) if len(sys.argv) > 2 else 20 service = get_gmail_service() results = service.users().messages().list( userId='me', q=query, maxResults=max_results ).execute() messages = results.get('messages', []) if not messages: print(f"No emails found for query: {query}") return print(f"Found {len(messages)} email(s) for query: {query}\n") for msg in messages: detail = service.users().messages().get( userId='me', id=msg['id'], format='metadata', metadataHeaders=['From', 'Subject', 'Date'] ).execute() headers = {h['name']: h['value'] for h in detail['payload']['headers']} print(f"From: {headers.get('From', 'Unknown')}") print(f"Subject: {headers.get('Subject', '(no subject)')}") print(f"Date: {headers.get('Date', 'Unknown')}") print("---") if __name__ == '__main__': main()