Resources

MCP Server

Point an MCP client at https://api.mailneo.co/mcp and an AI assistant can read, analyze and draft in your Mailneo workspace — and structurally cannot send. The server speaks MCP over Streamable HTTP, authenticates with OAuth 2.1, and exposes 29 intent-level tools composed from the v2 API.

Connect from Claude

  1. In Claude: Settings → Connectors → Add custom connector, URL https://api.mailneo.co/mcp.
  2. Claude discovers the OAuth server, registers itself via dynamic client registration, and sends you through the Mailneo consent screen. No client ID or secret to copy.
  3. After consent, the tool list appears. Every tool is scope-gated by what you consented to; a call outside the granted scopes returns a structured insufficient_scope error naming the scope to re-consent with.

To exercise the connection outside Claude — including the full OAuth flow — use the MCP Inspector:

npx @modelcontextprotocol/inspector https://api.mailneo.co/mcp
The MCP surface rides the same access as the API, which is available on the Professional plan and higher. OAuth grants are per-user and per-team; revoking a grant cuts the connector off immediately.

The tools

Tools are intent-level composites, not one-per-endpoint: a single call answers a whole question ("how did these campaigns compare?") instead of forcing the assistant to stitch raw endpoints together. Grouped by what you would ask for:

Orientation — Where am I, and what can this credential do?1
  • get_workspace_info Team, role, effective scopes, plan usage, connected sending accounts.
Audience — Find, understand and shape who you mail.12
  • find_subscribers Search newsletter subscribers by email, status or tags.
  • get_subscriber_profile One subscriber in full: fields, list memberships, suppression state.
  • find_contacts Search cold-outreach contacts, per-contact engagement included.
  • list_audiences Every list and saved segment, with ids for the other tools.
  • search_across_audiences One term across subscribers, lists and segments in a single call.
  • add_subscribers_to_list Attach existing subscribers to a list by id — never creates one.
  • create_and_populate_list Create a list, optionally attaching subscribers in the same step.
  • manage_segment Create, update, inspect or count a saved segment.
  • get_list_overlap How many subscribers two lists share.
  • get_audience_growth New subscribers versus unsubscribe events per period.
  • get_suppression_summary Suppressions by reason and unsubscribes by source over a window.
  • suppress_emails Put addresses on the do-not-mail list; nothing is deleted.
Insight — How is the sending actually performing?7
  • list_campaigns_with_performance Campaigns with counters and derived open/click/bounce/reply rates.
  • get_campaign_overview One campaign in depth, plus its event analytics over a period.
  • get_deliverability_summary Team-wide sending health and every sending account's status.
  • get_engagement_timeline Delivery and engagement events per day or week.
  • compare_campaigns Two to ten campaigns side by side.
  • get_top_content Best-performing campaigns by a chosen metric.
  • get_newsletter_performance Newsletters listed, or one newsletter in full.
Drafting — Prepare content — always as drafts.6
  • create_campaign_draft New campaign, always a DRAFT; cannot send, schedule or arm anything.
  • update_campaign_draft Edit a draft campaign's fields.
  • get_campaign_readiness Read-only check of what would block a launch in the app.
  • get_template Read templates; a single template includes its full HTML body.
  • upsert_template Create a template, or update one field-by-field.
  • duplicate_template Copy a template as the starting point for a variant.
Webhooks — Wire Mailneo events into other systems.3
  • list_webhook_endpoints Registered endpoints; signing secrets are never included.
  • get_webhook_health Failure counters, auto-disable state, recent delivery errors.
  • create_webhook_endpoint Register a new endpoint for catalog events.

Safety, by construction

  • No tool on this surface can send email. The drafting tools always produce DRAFTs — nothing can schedule, arm or confirm a send. The capability is absent, not permission-gated.
  • No destructive tools: nothing deletes subscribers, lists, campaigns or templates. Even suppress_emails — the one protective write — deletes nothing; it adds a do-not-mail overlay that every send path skips.
  • No quota-consuming tools: an assistant cannot burn your plan limits on your behalf.
  • Send-tier scopes are structurally non-requestable over OAuth, so no consent screen can even offer them to a connector.

Using it from n8n

In n8n's MCP Client credential, set the endpoint to https://api.mailneo.co/mcp and enable useDynamicClientRegistration — n8n then registers its own OAuth client instead of asking for a client ID and secret, and opens the browser consent flow. Both OAuth discovery conventions resolve to the same documents, so n8n's origin-form probe works as-is. This is separate from the Mailneo community node, which calls the API directly.

ChatGPT

The server is standard MCP over Streamable HTTP, so ChatGPT's developer-mode connectors can point at the same URL with the same OAuth flow. A first-party ChatGPT app built on the Apps SDK is planned but not yet published.