# Outreach2day

> Cold email infrastructure: domains, mailboxes, warm-up and campaigns. Never charges a card.

- name: com.outreach2day/mcp
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.outreach2day%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.outreach2day%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "outreach2day": {
      "type": "http",
      "url": "https://public.outreach2day.com/mcp",
      "headers": {
        "Authorization": "Bearer ${OUTREACH2DAY_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${OUTREACH2DAY_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-21d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 24 of 24 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 4,890 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 24, about 4,890 tokens to load them all
- tool set hash: 18fa7328385bb15d8e81b6b5c36759f0
- badge: [![protogrid quality](https://protogrid.dev/badge/com.outreach2day/mcp.svg)](https://protogrid.dev/servers/com.outreach2day/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://public.outreach2day.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (24)

- `attach_campaign_mailboxes`: Attach mailboxes to a campaign for sending. Only mailboxes that are ready to send (warm-up started 14+ days ago) are accepted.
- `check_copy`: Check an email subject and body for spam trigger words before sending.
- `check_domains`: Check whether domain names are available to register (up to 50 domains per call).
- `connect_own_domains`: Connect domains the user already owns (free): returns the nameservers the user must set at their registrar. Calling again with the same domains is safe.
- `create_campaign`: Create a campaign as a draft. Nothing is sent until launch_campaign.
- `create_checkout`: Turn a quote the user explicitly confirmed into a Stripe payment page. Charges nothing: the user pays on the page. Requires confirm=true and the quote's due_now_cents.
- `export_mailboxes_to_sequencer`: Send mailboxes' login credentials (SMTP/IMAP) to the user's third-party sequencer account (Instantly or Smartlead, from list_sequencers) so it can send from them. Omit mailboxes to export all eligible ones. Requires confirm=true after the user explicitly agrees. Large exports answer status pending and finish on the server; list_sequencers shows the counts.
- `get_account_status`: What the workspace has (subscription, domains and mailboxes by state, warm-up, open orders, campaigns) and next_action: the one thing to do next. Start here.
- `get_campaign_stats`: Sending and engagement stats for one campaign (sent, replies, bounces).
- `get_order`: Status of an order (payment, per-domain and per-mailbox setup, warm-up estimate) by order_id; without order_id, lists the workspace's recent orders.
- `get_pricing`: Current prices: mailbox monthly price and minimum, domain prices by TLD, card processing fee rule, worked examples.
- `get_warmup_status`: Warm-up progress per mailbox (state, days warming, ready flag, ready date, inbox rate) and a workspace summary. Mailboxes can send campaigns once ready.
- `import_campaign_contacts`: Import contacts into a campaign from CSV text (header row with an email column; other columns become variables; up to 10000 rows). Pass import_id alone to check a previous import.
- `launch_campaign`: Start sending a campaign to its contacts. Refused unless preflight is green and every attached mailbox is ready to send. Requires confirm=true after the user explicitly agrees.
- `list_domains`: List the workspace's sending domains with status, mailbox count and, for connected domains, DNS status and nameservers.
- `list_mailboxes`: List the workspace's mailboxes (address, sender name, status). Never returns credentials.
- `list_replies`: List recent threads where a contact replied (subject, sender, short snippet, reply intent). Paginate with cursor.
- `list_sequencers`: List the workspace's connected sequencer accounts (Instantly, Smartlead) that mailboxes can be exported to.
- `pause_campaign`: Stop a campaign from sending. Safe to call again.
- `preflight_campaign`: Check whether a campaign can launch: sequence, contacts, attached mailboxes and their warm-up. Returns blocking checks with hints.
- `quote_order`: Price new domains and mailboxes server-side. Creates a 15-minute quote; registers and charges nothing. Show human_summary to the user exactly before create_checkout. Ordering domains needs registrant with every one of: first_name, last_name, real_address, city, state_province, postal_code, country, phone, organization_name, job_title (email_address optional); collect them from the user upfront.
- `start_warmup`: Start warm-up for mailboxes. Retrying with the same mailboxes the same day does not start a second operation.
- `suggest_domains`: Suggest available sending domains that look like the company's website (brand + one fitting word, e.g. acmehq.com, acme-partners.com), already checked for availability. Use this instead of inventing names.
- `upsert_campaign_step`: Add an email step to a campaign sequence, or update one (by step_id, or by order when a step with that order exists). delay_days is the wait after this step before the next one.
