{"serverId":"mcp-registry/io.github.ainaluc/mailcannon","tools":[{"name":"add_campaign_step","fixed":{"name":"add_campaign_step","description":"Add a sequence step (delay in hours, subject, body)","inputSchema":{"type":"object","required":["campaignId","day","subject","body"],"properties":{"day":{"type":"number","description":"Delay in hours"},"body":{"type":"string"},"subject":{"type":"string"},"campaignId":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"add_contact","fixed":{"name":"add_contact","description":"Add a single contact","inputSchema":{"type":"object","required":["email","firstName"],"properties":{"tags":{"type":"array","items":{"type":"string"}},"email":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"lastName":{"type":"string"},"firstName":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"add_contacts","fixed":{"name":"add_contacts","description":"Bulk add contacts (max 100)","inputSchema":{"type":"object","required":["contacts"],"properties":{"contacts":{"type":"array","items":{"type":"object","required":["email","firstName"],"properties":{"tags":{"type":"array","items":{"type":"string"}},"email":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"lastName":{"type":"string"},"firstName":{"type":"string"}}}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"add_provider","fixed":{"name":"add_provider","description":"Add an email provider","inputSchema":{"type":"object","required":["name","kind"],"properties":{"env":{"type":"object","additionalProperties":{"type":"string"}},"url":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"kind":{"enum":["gmail","zoho"],"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"transport":{"enum":["stdio","sse"],"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"check_domain_deliverability","fixed":{"name":"check_domain_deliverability","description":"Check SPF, DKIM, DMARC records for a domain","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to check (e.g. thinkandautomate.dev)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"check_email_spam_score","fixed":{"name":"check_email_spam_score","description":"Analyze email subject/body for spam trigger words","inputSchema":{"type":"object","required":["subject","body"],"properties":{"body":{"type":"string"},"subject":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":64,"tokensAfter":64},{"name":"check_step_spam_score","fixed":{"name":"check_step_spam_score","description":"Check a campaign step's subject and body for spam triggers","inputSchema":{"type":"object","required":["stepId"],"properties":{"stepId":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"create_campaign","fixed":{"name":"create_campaign","description":"Create a new email campaign","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":45,"tokensAfter":45},{"name":"create_task","fixed":{"name":"create_task","description":"Create a new task","inputSchema":{"type":"object","required":["title"],"properties":{"title":{"type":"string"},"dueDate":{"type":"string","description":"ISO date (optional)"},"priority":{"enum":["high","medium","low"],"type":"string"},"description":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"delete_campaign","fixed":{"name":"delete_campaign","description":"Delete a campaign and all its steps","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":47,"tokensAfter":47},{"name":"delete_campaign_step","fixed":{"name":"delete_campaign_step","description":"Delete a step from a campaign","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"delete_task","fixed":{"name":"delete_task","description":"Delete a task by ID","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":41,"tokensAfter":41},{"name":"get_deliverability","fixed":{"name":"get_deliverability","description":"Get deliverability stats (sent, opens, bounces, replies)","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"get_setting","fixed":{"name":"get_setting","description":"Get a user setting (e.g. timezone)","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"list_campaigns","fixed":{"name":"list_campaigns","description":"List all campaigns with their steps","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":35,"tokensAfter":35},{"name":"list_contacts","fixed":{"name":"list_contacts","description":"List all contacts","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":30,"tokensAfter":30},{"name":"list_providers","fixed":{"name":"list_providers","description":"List all email providers","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":32,"tokensAfter":32},{"name":"list_schedules","fixed":{"name":"list_schedules","description":"List all scheduled campaign runs","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":34,"tokensAfter":34},{"name":"list_settings","fixed":{"name":"list_settings","description":"List all user settings","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":31,"tokensAfter":31},{"name":"list_tags","fixed":{"name":"list_tags","description":"List all unique tags across your contacts","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":35,"tokensAfter":35},{"name":"list_tasks","fixed":{"name":"list_tasks","description":"List all tasks","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":28,"tokensAfter":28},{"name":"remove_contact","fixed":{"name":"remove_contact","description":"Remove a contact by ID","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":43,"tokensAfter":43},{"name":"remove_provider","fixed":{"name":"remove_provider","description":"Remove a provider by ID","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":43,"tokensAfter":43},{"name":"schedule_campaign","fixed":{"name":"schedule_campaign","description":"Assign contacts to a campaign and schedule it","inputSchema":{"type":"object","required":["campaignId"],"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Filter contacts by tag (overrides contactIds)"},"startAt":{"type":"string","description":"ISO date (optional)"},"campaignId":{"type":"string"},"contactIds":{"type":"array","items":{"type":"string"},"description":"Contact IDs (ignored if tags provided)"},"providerId":{"type":"string","description":"Provider ID (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"send_test_email","fixed":{"name":"send_test_email","description":"Send a test email to yourself to preview formatting","inputSchema":{"type":"object","required":["subject","body"],"properties":{"body":{"type":"string"},"subject":{"type":"string"},"providerId":{"type":"string","description":"Provider ID (optional, uses first available)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"set_setting","fixed":{"name":"set_setting","description":"Set a user setting (e.g. timezone to 'America/New_York')","inputSchema":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string"},"value":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"update_campaign","fixed":{"name":"update_campaign","description":"Update a campaign's name","inputSchema":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52},{"name":"update_campaign_step","fixed":{"name":"update_campaign_step","description":"Update a campaign step's day, subject, or body","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"day":{"type":"number","description":"Delay in hours"},"body":{"type":"string"},"subject":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"update_contact_tags","fixed":{"name":"update_contact_tags","description":"Set tags on a contact (replaces all tags)","inputSchema":{"type":"object","required":["id","tags"],"properties":{"id":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"update_task","fixed":{"name":"update_task","description":"Update a task's status, priority, or fields","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"enum":["pending","in_progress","completed","cancelled"],"type":"string"},"dueDate":{"type":"string"},"priority":{"enum":["high","medium","low"],"type":"string"},"description":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112}],"toolsChanged":30,"tokensSaved":0,"todo":[{"tool":"add_campaign_step","params":["body","subject","campaignId"]},{"tool":"add_contact","params":["tags","email","title","company","lastName","firstName"]},{"tool":"add_contacts","params":["contacts"]},{"tool":"add_provider","params":["env","url","args","kind","name","command","transport"]},{"tool":"check_email_spam_score","params":["body","subject"]},{"tool":"check_step_spam_score","params":["stepId"]},{"tool":"create_campaign","params":["name"]},{"tool":"create_task","params":["title","priority","description"]},{"tool":"delete_campaign","params":["id"]},{"tool":"delete_campaign_step","params":["id"]},{"tool":"delete_task","params":["id"]},{"tool":"get_setting","params":["key"]},{"tool":"pause_campaign","params":["id"]},{"tool":"remove_contact","params":["id"]},{"tool":"remove_provider","params":["id"]},{"tool":"resume_campaign","params":["id"]},{"tool":"schedule_campaign","params":["campaignId"]},{"tool":"send_test_email","params":["body","subject"]},{"tool":"set_setting","params":["key","value"]},{"tool":"update_campaign","params":["id","name"]},{"tool":"update_campaign_step","params":["id","body","subject"]},{"tool":"update_contact_tags","params":["id","tags"]},{"tool":"update_task","params":["id","title","status","dueDate","priority","description"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}