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:
Ugh, I am so behind on this launch. Can you help me organize my inbox? I need a label created for 'Phoenix'. Also, get a draft started to 'boss@corp.com' with the subject 'Status Update - See attached'.

Actually, wait, I hate the name Phoenix. Delete that label and make a new one called 'Project Fire' instead. Much better.

Oh, and on that draft? Change the subject to 'Running late, will send by EOD', I don't have the file yet.

One last thing—I need to loop in my contractor. Add 'help@agency.com' as a forwarding address, and then set up a filter so anything from 'dave@design.com' automatically gets that 'Project Fire' label neglecting the remaining parameters or setting them to the default values except the "to" to wildcard "*". Thanks.

Available tools:
delete_label
create_forwarding_address
create_draft
update_draft
create_filter
create_label

Verification checks:
[{"verifier_type": "database_state", "name": "Verify Label Swap", "description": "Verify Label Swap Done Successfully", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT \n    (SELECT COUNT(id) FROM labels \n     WHERE user_id = 'user_001' AND name = 'Project Fire') \n    - \n    (SELECT COUNT(id) FROM labels \n     WHERE user_id = 'user_001' AND name = 'Phoenix');", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Verify Draft Content Update", "description": "Verify Draft Content Updated Successfully", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(D.id)\nFROM drafts AS D\nJOIN messages AS M ON D.message_id = M.id\nLEFT JOIN message_parts AS MP ON M.id = MP.message_id\nLEFT JOIN message_part_bodies AS MPB ON MP.id = MPB.message_part_id\nLEFT JOIN message_headers AS MH ON MP.id = MH.message_part_id\nWHERE M.user_id = 'user_001'\n  AND MH.name = 'Subject' AND MH.value = 'Running late, will send by EOD';\n", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Verify Filter and Forwarding Setup", "description": "Verifies that the forwarding address was added AND that the filter for 'Dave' is correctly linked to the 'Project Fire' label.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT \n    (SELECT COUNT(id) FROM forwarding_addresses \n     WHERE user_id = 'user_001' AND forwarding_email = 'help@agency.com')\n    +\n    (SELECT COUNT(F.id) FROM filters AS F\n     JOIN labels AS L ON F.user_id = L.user_id\n     WHERE F.user_id = 'user_001'\n       AND L.name = 'Project Fire'\n       AND json_extract(F.criteria_json, '$.from') = 'dave@design.com');", "expected_value": 2, "comparison_type": "equals"}}]