Test what the code sends
Find where we send the password reset email, trigger it to a test address and read the report.
Found it in auth/reset.ts. Sending to the test address now.
Cursor
Add a short block to mcp.json and the Cursor agent can test the mail your code sends, then open the file that needs changing.
42 checks · No key · No account
Some of what fails is a header,
and that header is in a file you have open.
Test what the code sends
Find where we send the password reset email, trigger it to a test address and read the report.
Found it in auth/reset.ts. Sending to the test address now.
Patch the headers
The report says List-Unsubscribe is missing. Add it to our mailer and test again.
Header added. Testing with a fresh address.
Explain a failure
Open this report and explain why DMARC failed when SPF passed: [report link]
SPF passed for the bounce domain, which differs from your From domain.
Use .cursor/mcp.json for one project or ~/.cursor/mcp.json for all of them.
https://email-spam-tester.com/mcp{ "mcpServers": { "email-spam-tester": { "url": "https://email-spam-tester.com/mcp" } }}Some of what fails in a transactional email is decided in code: a missing List-Unsubscribe header, a From domain that does not match, an HTML part with no text part. Cursor already has that code open.
/mcpget_test_addressReserves a one-hour address. With placement switched on, you also get a list of mailboxes at different providers.
wait_for_reportHolds until the checks finish, then returns the scores, the failed and warned checks with their evidence, and the fix plan.
get_reportReads an existing report by its slug, including how far the folder check has got.
get_message_sourceReturns the email as it arrived, headers in wire order, for an hour after delivery.
About half of the checks read what the sending platform adds: the DKIM signature, the path through its servers, the unsubscribe headers. Pasted text has none of those, so the model would be guessing.
What you send to the test address. The raw message stays for an hour after it arrives and then only the report remains, at a link anyone with the slug can open. Test mail you would be fine showing a colleague, and read the privacy policy for the rest.
Yes. It is the same analysis and the same report page, so a run from a chat can be compared with one from the home page.
Yes. There is nothing secret in it, so .cursor/mcp.json is safe to keep in the repo.
Check that the JSON is valid, then start a new chat.
Cursor sets that. The server itself asks for no key and no account.