ai.bobwork/emailwarmup
ai.bobwork/emailwarmupbobwork.aistreamable-httpv1.0.0Scanned
Warm up mailboxes, check the ready-for-outbound gate, run cold email and get checkout links.
45 tools: 3 can delete or cancel things, 28 change things and 14 only read.
- Reads private data · 13
- Reads text others write · 14
- Can send data out · 0
- 1 finding
Anlyon alternative
31 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
45 tools
Deletes or cancels 3Claude Code: deny
delete_dns_recordDelete a DNS record by id (from list_dns_records).No findings
Why it is in this group
- The name "delete_dns_record" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a DNS record by id (from list_dns_records). Deleting MX, SPF, DKIM or DMARC stops the mailboxes working.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_workspaceDelete a client workspace.No findings
Why it is in this group
- The name "delete_workspace" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a client workspace. Its mailboxes are NOT deleted: they move back to My mailboxes and keep warming. The client's report link stops working.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
remove_mailboxRemove a mailbox and delete its stored login.No findings
Why it is in this group
- The name "remove_mailbox" says "remove": a word for removing or ending something.
- The description says "Irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove a mailbox and delete its stored login. Irreversible: ask the user first, then pass confirm=true.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Changes things 28Claude Code: ask
add_contactsAdd up to 1,000 contacts to a campaign.No findings
Why it is in this group
- The name "add_contacts" says "add": a word for a change.
Description, as the server wrote it Add up to 1,000 contacts to a campaign. Each needs email; other fields (first_name, company…) fill the placeholders. Duplicates and unsubscribed addresses are skipped.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
add_dns_recordAdd a DNS record to a domain you bought here.No findings
Why it is in this group
- The name "add_dns_record" says "add": a word for a change.
Description, as the server wrote it Add a DNS record to a domain you bought here. name = subdomain ('' for the domain itself). Types A, AAAA, CNAME, ALIAS, MX, TXT, CAA, SRV.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
add_hosted_mailboxesAdd mailboxes to a domain you bought here ($3 per mailbox per month).No findings
Why it is in this group
- The name "add_hosted_mailboxes" says "add": a word for a change.
Description, as the server wrote it Add mailboxes to a domain you bought here ($3 per mailbox per month). Returns a Stripe checkout link.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
buy_domainsBuy domains with up to 3 mailboxes each.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Buy domains with up to 3 mailboxes each. Returns a Stripe checkout link for the person to pay; setup starts once paid. Needs accept_sending_rules true.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_dmarcLook up a domain's DMARC record and policy.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Look up a domain's DMARC record and policy.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_spfLook up a domain's SPF record.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Look up a domain's SPF record.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
connect_imap_mailboxConnect any mailbox with IMAP + SMTP.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Connect any mailbox with IMAP + SMTP. The login is tested before it is saved. Use an app password when two-factor sign-in is on. Give a preset (see list_providers) or the hosts. Warm-up starts the same day.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
connect_zoho_mailboxConnect a Zoho Mail mailbox through the Zoho API (works on Zoho's free plan).Reads text others writeNo findings
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Connect a Zoho Mail mailbox through the Zoho API (works on Zoho's free plan). Needs a Self Client id, secret and a generated code from api-console.zoho.com.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
create_billing_checkoutGet a Stripe Checkout url for extra mailboxes beyond the free limit (monthly, or yearly = 10 months' price for 12).No findings
Why it is in this group
- The name "create_billing_checkout" says "create": a word for a change.
Description, as the server wrote it Get a Stripe Checkout url for extra mailboxes beyond the free limit (monthly, or yearly = 10 months' price for 12). The USER opens it and pays; you cannot. Then poll get_billing_status. Returns already:true when the account is subscribed. Prices come back in the result (prices).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_campaignCreate a draft Outbound campaign (nothing is sent).No findings
Why it is in this group
- The name "create_campaign" says "create": a word for a change.
Description, as the server wrote it Create a draft Outbound campaign (nothing is sent). Emails can use {first_name}, {company} and any contact field. Any connected mailbox can send; one that is still warming shows a warning first.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_credits_checkoutGet a Stripe Checkout url to top up prepaid credits for Outbound sending and AI drafts (one-off $5, $10, $25 or $100; credits never expire).No findings
Why it is in this group
- The name "create_credits_checkout" says "create": a word for a change.
Description, as the server wrote it Get a Stripe Checkout url to top up prepaid credits for Outbound sending and AI drafts (one-off $5, $10, $25 or $100; credits never expire). The USER opens it and pays; you cannot. Then poll get_billing_status.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_workspaceCreate a client workspace, e.g.No findings
Why it is in this group
- The name "create_workspace" says "create": a word for a change.
Description, as the server wrote it Create a client workspace, e.g. the client's company name (max 100 per account).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
domain_healthSPF, DKIM selector, DMARC policy and MX for every domain you have connected.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it SPF, DKIM selector, DMARC policy and MX for every domain you have connected.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_billing_statusPayment status after you gave the user a checkout link: credit balance, whether the extra-mailbox subscription is active, mailboxes vs the free limit, and checkouts still waiting f…Reads private dataReads text others write1 finding
Why it is in this group
- The name "get_billing_status" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- private-dataThe description's first sentence says "status" and "mailbox": it reads mail.
- untrusted-inputThe description's first sentence says "status" and "mailbox": it reads inbound email, which other people can write.
Findings
- Warn
The server marks "get_billing_status" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_billing_status" says "get": a word for reading.
Description, as the server wrote it Payment status after you gave the user a checkout link: credit balance, whether the extra-mailbox subscription is active, mailboxes vs the free limit, and checkouts still waiting for payment. Confirms a paid checkout straight away.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
google_connect_linkGet a link the user opens to connect Gmail / Google Workspace with Google sign-in (one click, any device).No findings
Why it is in this group
- The name "google_connect_link" says "link": a word for a change.
Description, as the server wrote it Get a link the user opens to connect Gmail / Google Workspace with Google sign-in (one click, any device). The mailbox appears in list_mailboxes a few minutes after they allow it.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
hosted_mailbox_loginPassword, IMAP and SMTP settings for one of your hosted mailboxes.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Password, IMAP and SMTP settings for one of your hosted mailboxes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mailbox_activityThe last 100 warm-up events for a mailbox (sent, received, replied, rescued from spam, errors).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The last 100 warm-up events for a mailbox (sent, received, replied, rescued from spam, errors).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
move_mailbox_to_workspacePut a mailbox in a client workspace.No findings
Why it is in this group
- The name "move_mailbox_to_workspace" says "move": a word for a change.
Description, as the server wrote it Put a mailbox in a client workspace. Leave workspace_id out (or empty) to move it back to My mailboxes.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
pause_campaignPause a running campaign.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Pause a running campaign.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
pause_mailboxPause warm-up for a mailbox.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Pause warm-up for a mailbox.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
rename_workspaceRename a client workspace.No findings
Why it is in this group
- The name "rename_workspace" says "rename": a word for a change.
Description, as the server wrote it Rename a client workspace.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
resume_mailboxResume warm-up for a mailbox.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Resume warm-up for a mailbox.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
set_pool_modeShared network (default: warm with every mailbox on the service) or private pool (only your own mailboxes write to each other; needs 2+).No findings
Why it is in this group
- The name "set_pool_mode" says "set": a word for a change.
Description, as the server wrote it Shared network (default: warm with every mailbox on the service) or private pool (only your own mailboxes write to each other; needs 2+).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
start_campaignStart or resume a campaign.Reads text others writeNo findings
Why it is in this group
- The name "start_campaign" says "start": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Start or resume a campaign. This SENDS real email and uses credits. Confirm with the user first. accept_sending_rules=true means the user agrees to https://emailwarmup.bobwork.ai/terms#outbound-beta (only people who may receive it, honest sender, unsubscribe honoured). If a chosen mailbox is still warming the call fails with warming:true; show the user the message and set accept_warming_risk=true only after they explicitly agree. Without credits it fails with credits_required:true: use create_credits_checkout.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
test_mailboxSign in to the mailbox now and report whether the stored login still works.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Sign in to the mailbox now and report whether the stored login still works.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_campaignEdit a paused or draft campaign.No findings
Why it is in this group
- The name "update_campaign" says "update": a word for a change.
Description, as the server wrote it Edit a paused or draft campaign. Fields you leave out keep their value.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_mailboxChange a mailbox's display name, daily warm-up cap (1-100, null = default) or time zone (IANA, e.g.No findings
Why it is in this group
- The name "update_mailbox" says "update": a word for a change.
Description, as the server wrote it Change a mailbox's display name, daily warm-up cap (1-100, null = default) or time zone (IANA, e.g. Europe/London).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
warmup_statsTotals across your mailboxes: today and last 7 days (sent, received, rescued, replied), active and ready counts.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Totals across your mailboxes: today and last 7 days (sent, received, rescued, replied), active and ready counts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 14Show 14 read-only tools
check_dkimFind a domain's DKIM key: tries the selector you give, selectors seen in real mail, then 45 common ones.Reads private dataReads text others writeNo findings
Why it is in this group
- The description's first verb is "find": a word for reading.
What it can reach
- private-dataThe description's first sentence says "find" and "mail": it reads mail.
- untrusted-inputThe description's first sentence says "find" and "mail": it reads inbound email, which other people can write.
Description, as the server wrote it Find a domain's DKIM key: tries the selector you give, selectors seen in real mail, then 45 common ones.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_accountYour account: email, credit balance, free mailbox allowance (10, or 20 for accounts created before 27 October 2026, plus referral bonus), paid extras and your referral link.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_account" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it Your account: email, credit balance, free mailbox allowance (10, or 20 for accounts created before 27 October 2026, plus referral bonus), paid extras and your referral link.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_campaignOne campaign: its emails, mailboxes, stats and time left.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_campaign" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it One campaign: its emails, mailboxes, stats and time left.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_creditsPrepaid credit balance, prices and recent charges (Outbound emails, AI drafts).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_credits" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it Prepaid credit balance, prices and recent charges (Outbound emails, AI drafts).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_mailboxOne mailbox's warm-up status and health.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_mailbox" says "get": a word for reading.
What it can reach
- private-dataThe name "get_mailbox" says "get" and "mailbox": it reads mail.
- private-dataThe description's first sentence says "mailbox": it reads mail.
- untrusted-inputThe name "get_mailbox" says "get" and "mailbox": it reads inbound email, which other people can write.
- untrusted-inputThe description's first sentence says "mailbox": it reads inbound email, which other people can write.
Description, as the server wrote it One mailbox's warm-up status and health.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_workspace_reportThe public read-only report link for one client workspace (mailbox health, spam rate, SPF/DKIM/DMARC).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_workspace_report" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "mailbox": it reads mail.
- untrusted-inputThe description's first sentence says "mailbox": it reads inbound email, which other people can write.
Description, as the server wrote it The public read-only report link for one client workspace (mailbox health, spam rate, SPF/DKIM/DMARC). The client opens it without a login; it shows no prices and nothing about other clients.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_bought_domainsDomains bought in the domain shop, their hosted mailboxes, renewal date and price, plus IMAP/SMTP settings.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_bought_domains" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "mailbox": it reads mail.
- untrusted-inputThe description's first sentence says "mailbox": it reads inbound email, which other people can write.
Description, as the server wrote it Domains bought in the domain shop, their hosted mailboxes, renewal date and price, plus IMAP/SMTP settings.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_campaign_contactsContacts in a campaign and where each is in the sequence (first 200).Reads private dataNo findings
Why it is in this group
- The name "list_campaign_contacts" says "list": a word for reading.
What it can reach
- private-dataThe name "list_campaign_contacts" says "list" and "contact": it reads contacts.
- private-dataThe description's first sentence says "contact": it reads contacts.
Description, as the server wrote it Contacts in a campaign and where each is in the sequence (first 200).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_campaignsYour Outbound campaigns with status and stats.No findings
Why it is in this group
- The name "list_campaigns" says "list": a word for reading.
Description, as the server wrote it Your Outbound campaigns with status and stats.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_dns_recordsDNS records on a domain you bought here.No findings
Why it is in this group
- The name "list_dns_records" says "list": a word for reading.
Description, as the server wrote it DNS records on a domain you bought here.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_mailboxesEvery connected mailbox with warm-up day, status, 7-day spam rate, today's and last 7 days' numbers, and whether it is ready for outbound.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_mailboxes" says "list": a word for reading.
What it can reach
- private-dataThe name "list_mailboxes" says "list" and "mailbox": it reads mail.
- private-dataThe description's first sentence says "mailbox": it reads mail.
- untrusted-inputThe name "list_mailboxes" says "list" and "mailbox": it reads inbound email, which other people can write.
- untrusted-inputThe description's first sentence says "mailbox": it reads inbound email, which other people can write.
Description, as the server wrote it Every connected mailbox with warm-up day, status, 7-day spam rate, today's and last 7 days' numbers, and whether it is ready for outbound.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_providersIMAP/SMTP presets (Gmail app password, Yahoo, iCloud, Zoho, Lark, SES, SendGrid, Mailgun…) with hosts and ports, plus the Google and Zoho API routes.Reads private dataNo findings
Why it is in this group
- The name "list_providers" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "password": it reads secrets.
Description, as the server wrote it IMAP/SMTP presets (Gmail app password, Yahoo, iCloud, Zoho, Lark, SES, SendGrid, Mailgun…) with hosts and ports, plus the Google and Zoho API routes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_workspacesClient workspaces (agencies): each client's mailboxes are kept separate under one login and one bill.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_workspaces" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "mailbox": it reads mail.
- untrusted-inputThe description's first sentence says "mailbox": it reads inbound email, which other people can write.
Description, as the server wrote it Client workspaces (agencies): each client's mailboxes are kept separate under one login and one bill. Returns id, name and mailbox count. Each mailbox in list_mailboxes has a workspace id (null = My mailboxes).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_domainsFind available lookalike domains for cold email, with first-term and renewal prices.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "search_domains" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "find" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "find" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it Find available lookalike domains for cold email, with first-term and renewal prices.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data13
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write14
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "get_billing_status" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_billing_status" says "get": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http emailwarmup https://app-emailwarmup.bobwork.ai/mcp --header 'Authorization: <your-authorization>'claude mcp add --transport http emailwarmup https://app-emailwarmup.bobwork.ai/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__emailwarmup__get_account",
"mcp__emailwarmup__list_mailboxes",
"mcp__emailwarmup__get_mailbox",
"mcp__emailwarmup__list_providers",
"mcp__emailwarmup__list_workspaces",
"mcp__emailwarmup__get_workspace_report",
"mcp__emailwarmup__check_dkim",
"mcp__emailwarmup__get_credits",
"mcp__emailwarmup__list_campaigns",
"mcp__emailwarmup__get_campaign",
"mcp__emailwarmup__list_campaign_contacts",
"mcp__emailwarmup__list_bought_domains",
"mcp__emailwarmup__search_domains",
"mcp__emailwarmup__list_dns_records"
],
"ask": [
"mcp__emailwarmup__mailbox_activity",
"mcp__emailwarmup__warmup_stats",
"mcp__emailwarmup__connect_imap_mailbox",
"mcp__emailwarmup__connect_zoho_mailbox",
"mcp__emailwarmup__google_connect_link",
"mcp__emailwarmup__update_mailbox",
"mcp__emailwarmup__pause_mailbox",
"mcp__emailwarmup__resume_mailbox",
"mcp__emailwarmup__test_mailbox",
"mcp__emailwarmup__set_pool_mode",
"mcp__emailwarmup__create_workspace",
"mcp__emailwarmup__rename_workspace",
"mcp__emailwarmup__move_mailbox_to_workspace",
"mcp__emailwarmup__domain_health",
"mcp__emailwarmup__check_spf",
"mcp__emailwarmup__check_dmarc",
"mcp__emailwarmup__create_campaign",
"mcp__emailwarmup__update_campaign",
"mcp__emailwarmup__add_contacts",
"mcp__emailwarmup__start_campaign",
"mcp__emailwarmup__pause_campaign",
"mcp__emailwarmup__get_billing_status",
"mcp__emailwarmup__create_billing_checkout",
"mcp__emailwarmup__create_credits_checkout",
"mcp__emailwarmup__buy_domains",
"mcp__emailwarmup__add_hosted_mailboxes",
"mcp__emailwarmup__hosted_mailbox_login",
"mcp__emailwarmup__add_dns_record"
],
"deny": [
"mcp__emailwarmup__remove_mailbox",
"mcp__emailwarmup__delete_workspace",
"mcp__emailwarmup__delete_dns_record"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as emailwarmup. Review it before you use it.
Capability tags behind 16 rules
- mcp__emailwarmup__get_account private-data, untrusted-input
- mcp__emailwarmup__list_mailboxes private-data, untrusted-input
- mcp__emailwarmup__get_mailbox private-data, untrusted-input
- mcp__emailwarmup__list_providers private-data
- mcp__emailwarmup__connect_imap_mailbox untrusted-input
- mcp__emailwarmup__connect_zoho_mailbox untrusted-input
- mcp__emailwarmup__list_workspaces private-data, untrusted-input
- mcp__emailwarmup__get_workspace_report private-data, untrusted-input
- mcp__emailwarmup__check_dkim private-data, untrusted-input
- mcp__emailwarmup__get_credits private-data, untrusted-input
- mcp__emailwarmup__get_campaign private-data, untrusted-input
- mcp__emailwarmup__list_campaign_contacts private-data
- mcp__emailwarmup__start_campaign untrusted-input
- mcp__emailwarmup__get_billing_status private-data, untrusted-input
- mcp__emailwarmup__list_bought_domains private-data, untrusted-input
- mcp__emailwarmup__search_domains private-data, untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/ai.bobwork/emailwarmup/verify?hash=cfb54a9659e9465a412665839e215c6faeda59c9eea75ae6c11e69746ac30787" | jq -e '.changed == false'Pinned hash cfb54a9659e9, from Nov 2, 2026, 14:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/ai.bobwork/emailwarmup/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/ai.bobwork/emailwarmup)Source: MCP Registry · repository. Synced Nov 2, 2026, 14:17 UTC.