Skip to main content
Senderz ships a hosted Model Context Protocol server. Connect any MCP-capable AI client, such as Claude, ChatGPT or Cursor, and it can read and act on one Senderz workspace using the same tools as the built-in Senderz agent. Authentication is a standard OAuth 2.1 browser flow. The client opens a browser, you sign in to Senderz with your normal login and 2FA, pick which workspace to connect, and approve. There is no API key to paste, and every connection is revocable from Settings.
The AI client is the brain. You do not need a Senderz AI-provider key for this. Your MCP client’s own model drives the tools, so this works whether or not you have configured an AI provider.
Availability. The MCP server is live and complete end to end: OAuth discovery, dynamic client registration, the browser consent screen, the workspace picker, the tool surface, connection management and revocation all work today. There is no plan gate and no waitlist. Any signed-in Senderz user can connect a client.

What a connected assistant can do

Read your workspace

Contacts, segments, campaigns, flows, templates, products, deliverability, billing and analytics. Counts, details, top performers, order history and a contact’s full activity.

Run deterministic checks

Pre-send audits, flow diagnostics, template and SMS reviews, deliverability diagnosis, and a report of which standard automations you are missing.

Manage contacts and lists

Create and edit contacts, paste in a small batch, tag and untag in bulk, build static lists, suppress an address.

Build campaigns, flows and coupons

Draft and edit campaigns, segments, flows and templates, send a test, schedule a send, approve a pending campaign, and create coupons.
The checks are the part most people underuse. They are not the model guessing. Each one runs the same deterministic rules Senderz runs internally and returns findings, so you can ask “is this campaign ready to send?” and get a real answer about your verified From domain, your audience, your subject line and your schedule time.

Read and write access

Every connection carries a scope, and the scope decides which tools the client ever sees.
The client chooses the scope, not you. The scope is part of the client’s authorization request. Most clients ask for both, and a client that asks for nothing is granted both by default. The consent screen shows you exactly what was requested before you approve: it always lists Read your workspace, and it lists Take actions only when the client asked for write access. If you do not want the assistant changing anything, press Cancel on that screen and connect a client configured to request read access only.

Your workspace role still applies

Write scope is a ceiling, not a grant. On top of it, the assistant acts as you, with your role in the workspace you picked.
  • Viewer. No write tools at all, even on a connection that was granted write scope.
  • Editor or designer. Content and audience write tools.
  • Owner or admin. Everything, plus the four workspace-level tools: verify a sending domain, add a From address, add a From name, and update sending preferences.
Your role is re-checked from your workspace membership every time the connection refreshes its token. If you are removed from a workspace, the connection to that workspace stops working.

Connect a client

1

Open the MCP settings

In Senderz, go to Settings and choose MCP · AI access in the left list. You can also reach it from the MCP server card on the Integrations page.
2

Copy the Server URL and client config

The page shows a Server URL and a Client config block, each with a copy button. Copy whichever your client needs.
3

Add it to your MCP client

Paste the client config into your client’s MCP configuration file. Clients that accept a remote MCP URL directly only need the Server URL.
4

Sign in and pick a workspace

The client opens a browser. Sign in to Senderz as normal, including 2FA. Read what the client is asking for, choose the workspace to connect from the dropdown, and press Connect. You are returned to the client.
5

Ask it to do something

“How many subscribed contacts do I have?”, “Audit my Black Friday campaign before I send it”, “Which standard automations am I missing?” The client discovers every tool automatically.

Client configuration

Most desktop clients use the mcp-remote bridge, which handles the OAuth flow for you:
The MCP settings page renders the config for your own environment. Copy it from there rather than hardcoding the URL, and restart your MCP client after editing its config file so it picks up the new server.

How authentication works

The server speaks JSON-RPC over HTTP POST at the Server URL, and implements the MCP authorization spec.
The server negotiates the protocol version the client asks for. It accepts 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05, so both older and newer clients connect. A client that asks for anything else is answered with 2025-06-18, the default.
An unauthenticated request to the Server URL is answered with 401 and a WWW-Authenticate header pointing at the resource metadata. Clients read /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server to find the authorization, token and registration endpoints. Nothing needs to be configured by hand.
Clients register themselves with Dynamic Client Registration (RFC 7591), so there is no manual client setup and no client ID to copy. PKCE with the S256 challenge method is required on every authorization request. A client that does not send one is refused.
Access tokens last 1 hour and are bound to the workspace you chose. Refresh tokens rotate on every use, and each refresh re-checks that you are still a member of that workspace. An authorization request expires after 15 minutes if you never complete it, and the authorization code the client redeems is valid for 60 seconds and one use only.
You can hold up to 100 active connections per Senderz account across all your workspaces. Past that, the consent step fails and asks you to revoke one first.

Managing connections

Every connected client is listed under Connected assistants in Settings → MCP · AI access, with the workspace it is attached to and when it was last used. Press Revoke on any row and confirm. Access stops immediately, and that client has to go through the whole browser flow again to come back. Connecting and revoking are both written to your workspace Audit Log, along with a separate entry for every change an assistant makes, so you can always tell which actions came from an AI client rather than from someone using the app.

Safety limits

A connected assistant acts as you, in one workspace, and can never bypass the platform’s sending rules. Consent and suppression, Israeli quiet hours and Shabbat, frequency caps, the SMS credit wallet, verified sending domains and the campaign approval workflow are all enforced by the send pipeline itself, after any tool has run. Scheduling a campaign through an assistant is subject to exactly the same gates as scheduling it in the app.
What the server will not do, by design:
  • No tool returns a secret. API keys, integration credentials, DKIM signing material and raw webhook payloads are not readable through any tool.
  • No tool can cross workspaces. The workspace is fixed at consent time and is never something the model supplies, so an assistant cannot be talked into reading a different one.
  • No raw send tool. There is no way to blast a message to an arbitrary list. Sending happens only by scheduling a real campaign or publishing a real flow, both of which run the full pipeline.
  • No file upload from chat. The assistant cannot read a spreadsheet you paste into your AI client. For a CSV or Excel file, use Contacts → Import in Senderz, which has the column mapping and consent steps. See Importing contacts.
  • Tool output is data, not instructions. The server tells the model to treat everything a tool returns as content to report, never as commands to follow.

Actions that need confirmation

Destructive-equivalent actions do exist under write scope, and each one is gated behind an explicit two-step confirmation. The assistant must call the tool once without confirming, which returns a preview of exactly what would change and makes no change at all. Only a second call, after you agree, executes it. These are the actions that require it: Everything else applies straight away, so keep write scope for clients and people you trust.

Tool reference

The read set is close to 60 tools. Write scope adds around 40 more.
Workspace. get_brand_kit, get_tenant_settings, get_current_quiet_hours.Contact facts. list_known_tags, list_rfm_distribution, list_consent_distribution, list_predictive_distribution, get_contact_property_catalog, count_contacts.Contact lookups. get_contact_by_email, search_contacts, get_contact_activity, get_customer_ltv, get_customer_orders.
Segments. list_segments, get_segment_detail.Templates. list_templates, get_template_summary.Campaigns. list_recent_campaigns, list_campaigns_by_status, get_campaign_detail, list_campaign_approvals.Flows. list_flows, get_flow_detail, including enrollment counts.
get_dashboard_overview, get_today_summary (a morning snapshot of revenue, orders, new contacts, sends, opens and clicks in your timezone), list_top_campaigns_by_metric, get_order_statistics, list_recent_orders.get_deliverability_overview, plus the four direct rate reads get_bounce_rate, get_complaint_rate, get_open_rate and get_click_rate.Domains. list_domains, get_domain_status.
Product catalog. list_products, get_product, list_product_categories, get_product_sync_status, and list_contact_recent_products for what one contact has viewed, carted or bought.Commerce records. list_coupons, list_ab_tests, list_popups, list_custom_fields.Billing. get_sms_wallet, list_sms_credit_transactions, get_subscription_status.Compliance. get_suppression_summary, check_suppression, list_sms_sender_ids, list_recent_audit_log.Integrations. list_integrations.
These run fixed rules and return findings, not generated prose. They are all read-only and available on a read-only connection.
create_contact, edit_contact, discard_contact.import_contacts pastes in a small batch, up to 25 contacts per call. It is not a file upload. Use Contacts → Import for a real CSV or Excel file.tag_contacts and untag_contacts merge or remove named tags without touching a contact’s other tags. Note that edit_contact replaces the whole tag list, so read the contact first if you use it for tags.create_list, edit_list, discard_list, add_contacts_to_list (up to 100 ids per call), drop_contacts_from_list.suppress_contact and unsuppress_contact manage the suppression list.Consent is deliberately conservative. A channel is only marked subscribed when you confirm the contact opted in, and the send pipeline enforces consent regardless of what any tool wrote. See Consent.
create_draft_campaign and duplicate_campaign both produce a draft and never a schedule.edit_campaign changes a draft or paused campaign. If you change the channel, template or segment of a campaign that is already scheduled, the schedule is cancelled and any approval is revoked, on purpose.test_campaign sends a real preview to up to 10 addresses or numbers.schedule_campaign moves a draft to scheduled. If your workspace requires campaign approval and you are not an owner or admin, this is refused and the campaign has to be submitted for approval in the app. See Campaigns.unschedule_campaign cancels a pending send.configure_ab_test registers an experiment in the A/B Tests module so you can track it. Live variant sending and winner rollout are still configured in the campaign or flow builder.
Segments. create_draft_segment, edit_segment, discard_segment. The type, dynamic or static, cannot be changed after creation.Templates. save_draft_template, edit_template, publish_template (marks it ready so campaigns and flows can select it).Flows. create_draft_flow, edit_flow, publish_flow, set_flow_paused. Publishing takes a flow live and starts real enrollments. Pausing halts in-flight enrollments with no auto-resume; publish again to restart.Coupons. create_coupon creates the discount in your connected Shopify or WooCommerce store, as one shared code for a static coupon or as a store discount that mints a unique code per recipient for a dynamic one. A store must be connected, and only entire-order discounts can be created this way. edit_coupon and deactivate_coupon change the Senderz record only, and do not touch a code already issued in your store. See Coupons.
Approvals, for owners and admins. approve_campaign, reject_campaign (a reason is required and the submitter sees it), request_campaign_changes (a comment is required).Workspace setup, owners and admins only. verify_domain re-runs DNS checks on a sending domain now instead of waiting for the background sweep. add_sender_address adds a From address on an already-verified domain. add_sender_name adds a reusable From name.update_settings covers timezone, currency, date format, your own custom quiet-hours window (which can only narrow the legal window, never widen it) and the copy-to BCC address. Governance settings, including the campaign approval policy, embedded-form origins and your organisation and legal details, are deliberately not editable through an assistant. Change those in Settings yourself.

Troubleshooting

Public API

The key-authenticated REST surface, for code rather than an assistant.

AI provider

Bring your own model key for the AI features built into Senderz.

Make.com

No-code automation over the same public API.

Workspaces

How workspaces and roles work, which decides what an assistant can do.