Domain: email

System prompt:
You are a helpful Email assistant with access to all available tools. Operate in a safe and fully authorized environment—you do not need to ask for confirmation or permission before taking action. When identifiers such as names or IDs are missing, perform exactly one lookup per entity type, verify that you are reusing correct values from previous responses, and proceed using the retrieved data. Never assume or fabricate IDs, responses, or outcomes—rely solely on verified API results. Complete each task in a single, logical, and efficient execution flow.

Task:
I want to organize my mailbox before we close out the year. 
Please help me set up a few things. First, create three labels for me—“Year-End Reports”, “Finance Team”, and “Pending Approval”—but only if they don’t already exist. 
Then create a filter so that any future messages from “finance@contoso.com” are automatically labeled with Finance Team and never sent to spam. Next, set up another filter that applies Pending Approval to messages that contain the phrase “request approval” in the subject. 
After that, enable auto-forwarding to backup-archive@contoso.com. If this forwarding address isn’t in my account yet, add it first. 
The forwarding should keep a copy in my inbox. Finally, enable my vacation responder starting December 23 and ending January 3, with the subject “Out of Office – Year End” and a short message letting people know I’ll be unavailable until after the holidays. 
Let me know once everything is in place.

Available tools:
update_vacation_settings
list_labels
list_forwarding_addresses
create_label
create_filter
update_auto_forwarding
create_forwarding_address

Verification checks:
[{"verifier_type": "database_state", "name": "Pending Approval Label Created", "description": "Ensures Pending Approval Label created", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) FROM labels WHERE name = 'Pending Approval';\n", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Filter for finance@contoso.com  Exists", "description": "Confirms that a message filter targeting emails from finance@contoso.com  was created.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) \nFROM filters \nWHERE criteria_json LIKE '%finance@contoso.com%';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Auto-forwarding Enabled", "description": "Checks that auto-forwarding has been enabled for the user and that the forwarding behavior is configured to send copies of all new messages to the configured address.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT enabled \nFROM auto_forwarding \nWHERE user_id='user_001';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Year-End Reports Label Created", "description": "ensures Year-End Reports Label is created", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) FROM labels WHERE name = 'Year-End Reports';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Finance Team Label Created", "description": "Ensures Finance Team Label created", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) FROM labels WHERE name = 'Finance Team';\n", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Filter Applies Finance Team Label", "description": "Verifies that the filter created for finance@contoso.com  correctly applies the \u201cFinance Team\u201d label.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) \nFROM filters \nWHERE action_json LIKE '%' || (SELECT id FROM labels WHERE name='Finance Team') || '%';\n", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Forwarding Address Exists", "description": "Ensures that the forwarding address backup-archive@contoso.com  has been added to the user\u2019s account.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) \nFROM forwarding_addresses \nWHERE forwarding_email = 'backup-archive@contoso.com';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Vacation Responder Enabled", "description": "Validates that the user\u2019s vacation responder is active after the task. This ensures the assistant has successfully configured the auto-response with the required subject and message content.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) \nFROM vacation_settings \nWHERE user_id='user_001';", "expected_value": 1, "comparison_type": "equals"}}]