# MailerDot MCP Server

This endpoint speaks [Model Context Protocol](https://modelcontextprotocol.io). Point an MCP-aware client at it:

```json
{
  "mcpServers": {
    "mailerdot": {
      "url": "https://mailerdot.com/mcp"
    }
  }
}
```

## Tools

- `list_cities` — Returns every U.S. city with an active MailerDot newsletter, grouped by state.
- `get_city` — Returns city details: subscriber count, recent archive list, and Census Bureau demographics.
- `get_archive` — Returns the markdown body of a past newsletter edition for a city. Defaults to the most recent edition.
- `search_archives` — Full-text search across all past newsletter editions. Returns ranked matches with snippets.
- `get_weather` — Returns today's weather for a city (snapshot from the newsletter, or live from Open-Meteo).
- `get_town_quote` — Check whether a U.S. town can be leased as a MailerDot operator, and what it costs per month. Pricing is by subscriber count: $10/month covers the first 1,000 subscribers, then +$5 per additional 1,000. Read-only — this reserves nothing.
- `start_town_checkout` — Starts an operator checkout for a town and returns a hosted payment URL. CHARGES NOTHING: a person must open the URL and enter card details before anything is bought, and the email they enter there becomes the operator account. The town is held for a short reservation window and released if the checkout is not completed. Call get_town_quote first to confirm availability and price.
- `get_listing_prices` — What it costs to list an event or a business in one town, and whether that town is currently selling. Call this before create_event_listing or create_business_listing. Read-only.
- `create_event_listing` — Submits an event to a town's calendar. The compliance screen runs inside this call: an approved paid submission comes back with a hosted payment URL, a rejected one comes back with a reason and no charge was ever possible. CHARGES NOTHING — a person must open the URL and enter card details. Nothing published here publishes itself: a paid listing goes live only after payment is confirmed, a free (`standard`) one only after a person approves it. Call get_listing_prices first.
- `create_business_listing` — Submits a business to a town's directory, on the same rails as create_event_listing: screened inside the call, approved paid submissions come back with a hosted payment URL. CHARGES NOTHING — a person must open the URL and enter card details. A paid listing runs for 30 days starting the day payment clears; a free (`standard`) one publishes only if a person approves it. Call get_listing_prices first.
- `get_listing_order` — Whether a listing order has been paid and whether the listing is live yet. Possession of the order id is the credential, so the answer carries order state and public listing fields only — never the buyer's name or address. Read-only.

## Resources

- `https://mailerdot.com/llms.txt` — MailerDot site overview (llms.txt)
- `https://mailerdot.com/llms-full.txt` — MailerDot full documentation (llms-full.txt)
- `https://mailerdot.com/developers` — MailerDot developer documentation
- `https://mailerdot.com/openapi.json` — MailerDot OpenAPI 3.1 specification
- `https://mailerdot.com/cities.md` — Cities with a live MailerDot edition
- `https://mailerdot.com/feed.md` — The 30 most recent editions across all cities

## Resource templates

- `https://mailerdot.com/{slug}.md` — A city page as markdown
- `https://mailerdot.com/{slug}/{date}.md` — One daily edition as markdown
- `https://mailerdot.com/api/facts/{slug}` — Schema.org Dataset facts for a city

## Prompts

- `city_briefing` — Brief me on a city's day
- `compare_cities` — Compare two cities
- `local_research` — Research a topic across a city archive

No authentication required.

The reading tools are read-only. The commerce tools return a hosted payment
link and charge nothing — a person has to open it and enter card details
before anything is bought or published.

Full developer documentation: https://mailerdot.com/developers
