{"apiVersion":"v1","directorySlug":"mailerdot-mcp-3ca0b8a4f0","title":"MailerDot","description":"Local news, weather, and events for your city — a free daily newsletter with one good local story, every morning in a five-minute read. No paywall, no spam.","pageUrl":"https://www.mcpbundles.com/skills/mailerdot-mcp-3ca0b8a4f0","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mailerdot.com/mcp","hostedMcpUrl":null,"toolCount":12,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.mailerdot/mailerdot-mcp-3ca0b8a4f0","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_cities","description":"Returns every U.S. city with an active MailerDot newsletter, grouped by state.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"List active cities","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_cities","displayName":"List active cities"},{"name":"get_city","description":"Returns city details: subscriber count, recent archive list, and Census Bureau demographics.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}},"additionalProperties":false},"title":"Get city overview","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_city","displayName":"Get city overview"},{"name":"get_archive","description":"Returns the markdown body of a past newsletter edition for a city. Defaults to the most recent edition.","inputSchema":{"type":"object","required":["slug"],"properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"slug":{"type":"string"}},"additionalProperties":false},"title":"Read a newsletter edition","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_archive","displayName":"Read a newsletter edition"},{"name":"search_archives","description":"Full-text search across all past newsletter editions. Returns ranked matches with snippets.","inputSchema":{"type":"object","required":["query"],"properties":{"slug":{"type":"string"},"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"query":{"type":"string","maxLength":200,"minLength":2}},"additionalProperties":false},"title":"Search newsletter archives","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_archives","displayName":"Search newsletter archives"},{"name":"get_weather","description":"Returns today's weather for a city (snapshot from the newsletter, or live from Open-Meteo).","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}},"additionalProperties":false},"title":"Get today's weather","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_weather","displayName":"Get today's weather"},{"name":"subscribe_city","description":"Subscribes an email address to one city's free daily digest. A welcome email goes out at once and the first edition is generated and sent within minutes; every edition carries a one-click unsubscribe. Free, no account. This sends mail to the address given — only call it for an address whose owner asked to subscribe, and confirm with them first. An address can hold up to 10 city digests; subscribing to a second city adds it, never replaces the first.","inputSchema":{"type":"object","required":["email","slug"],"properties":{"slug":{"type":"string"},"email":{"type":"string","format":"email"}},"additionalProperties":false},"title":"Subscribe a reader to a city's daily digest","logicalName":"subscribe_city","displayName":"Subscribe a reader to a city's daily digest","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_town_quote","description":"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.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}},"additionalProperties":false},"title":"Price a town lease","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_town_quote","displayName":"Price a town lease"},{"name":"start_town_checkout","description":"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.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}},"additionalProperties":false},"title":"Get a payment link to lease a town","logicalName":"start_town_checkout","displayName":"Get a payment link to lease a town","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_listing_prices","description":"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.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}},"additionalProperties":false},"title":"Price an event or business listing","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_listing_prices","displayName":"Price an event or business listing"},{"name":"create_event_listing","description":"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.","inputSchema":{"type":"object","required":["slug","tier","title","description","url","startsAt","buyerEmail"],"properties":{"url":{"type":"string"},"slug":{"type":"string"},"tier":{"enum":["standard","listing","featured"],"type":"string"},"venue":{"type":"string","maxLength":120},"endsAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"address":{"type":"string","maxLength":200},"category":{"type":"string"},"startsAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"buyerName":{"type":"string","maxLength":80},"startTime":{"type":"string"},"buyerEmail":{"type":"string","format":"email"}},"additionalProperties":false},"title":"List an event in a town (returns a payment link)","logicalName":"create_event_listing","displayName":"List an event in a town (returns a payment link)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_business_listing","description":"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.","inputSchema":{"type":"object","required":["slug","tier","name","description","url","buyerEmail"],"properties":{"url":{"type":"string"},"name":{"type":"string","maxLength":80,"minLength":2},"slug":{"type":"string"},"tier":{"enum":["standard","listing","featured"],"type":"string"},"phone":{"type":"string","maxLength":30},"address":{"type":"string","maxLength":200},"category":{"type":"string"},"buyerName":{"type":"string","maxLength":80},"buyerEmail":{"type":"string","format":"email"}},"additionalProperties":false},"title":"List a business in a town (returns a payment link)","logicalName":"create_business_listing","displayName":"List a business in a town (returns a payment link)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_listing_order","description":"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.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","pattern":"^lo_[0-9a-f-]{36}$"}},"additionalProperties":false},"title":"Check a listing order","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_listing_order","displayName":"Check a listing order"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=MailerDot&config=eyJ1cmwiOiAiaHR0cHM6Ly9tYWlsZXJkb3QuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22MailerDot%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmailerdot.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22MailerDot%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmailerdot.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=MailerDot&connectorUrl=https%3A%2F%2Fmailerdot.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"MailerDot\" --url \"https://mailerdot.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mailerdot-mcp-3ca0b8a4f0","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mailerdot-mcp-3ca0b8a4f0/tools/{tool}","mcpServerUrl":"https://mailerdot.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mailerdot-mcp-3ca0b8a4f0?live=1"}