← Roezan for Developers

Connect AI assistants to Roezan

Roezan runs an MCP server, so AI apps like Claude, ChatGPT and Codex can look up your contacts, tags, lists and custom fields. The app works as you, with your permissions, in the account you choose.

By request only. AI assistant access is currently available by request only. To request it for your account, contact Roezan support at support@roezan.com. Until it's turned on, Roezan's approval screen says it isn't turned on for your account.

Server URL

https://mcp.roezan.com/mcp

That URL is all you enter. There is no API key or client secret to copy. Your AI app opens Roezan in your browser, and you sign in and approve it there.

How connecting works

  1. Add Roezan to your AI app as a connector or MCP server, using the URL above.
  2. The app opens Roezan in your browser. Sign in if you aren't already, choose the account to connect, review what the app is asking for, and click Allow access.
  3. You're back in the app, connected. Ask it about your Roezan account.

Each person connects for themself. A teammate who wants the same app connects it with their own Roezan login.

Setup by app

Claude (claude.ai, Claude Desktop and the Claude mobile apps)

  1. In Claude on the web or desktop, open Settings → Connectors (some versions call it Customize → Connectors) and choose Add custom connector.
  2. Name it Roezan and enter the server URL. Leave the advanced settings empty.
  3. Click Connect and approve in the Roezan window that opens.

One connection works in every Claude app you're signed in to. On Claude Team and Enterprise plans, an owner adds the connector for the organization first; then each member connects their own Roezan login.

Claude Code

claude mcp add --transport http roezan https://mcp.roezan.com/mcp

Then run /mcp in Claude Code, choose roezan and select Authenticate.

Codex

  1. Open Plugins → MCPs, then Add → Add MCP server.
  2. Choose the server type that takes a URL (not a command), name it roezan and enter the server URL.
  3. Save, then click Authenticate next to the new server and approve in your browser.

ChatGPT

ChatGPT connects custom MCP servers in Business, Enterprise and Edu workspaces, on chatgpt.com. A workspace admin (or a member the admin allows) adds Roezan as a custom MCP server with the server URL above and OAuth sign-in. OpenAI moves these settings from time to time, so follow OpenAI's current instructions.

Other MCP apps and your own code

Any app that supports remote MCP servers with OAuth sign-in can connect with the same URL, and so can code built on an official MCP SDK. If an app asks you for a client ID, client secret or API key for Roezan, it can't connect yet.

What the app can do

The read tools look things up; the write tools add and remove tags and list subscriptions and update a contact's name and custom fields. No tool sends a message, creates a contact or changes anyone's phone number, email or SMS opt-in. Everything happens in the one account you connected.

Tool What it does
search_contacts Finds contacts by phone, email or name (up to 25 at a time, newest first). Searching by name alone may stop before the oldest contacts; search by phone or email to be sure.
get_contact One contact's name, phone, email, SMS opt-in status, custom field values, tags and lists.
list_contact_messages One contact's text messages, newest first, 20 at a time: what they sent and what your account sent, with delivery status and any media. Needs permission to read conversations.
send_message Sends one text to one contact who has opted in, from the number their conversation already uses. It never creates a contact. The same text to the same contact within 10 minutes is refused, so a retry can't send it twice, and your account's AI apps together can send up to 60 texts a minute (ask us if you need more). Texts are billed like any other. Needs permission to send messages.
list_new_messages The texts your contacts sent the account, oldest first, each with the contact who sent it. It covers the last 24 hours, or from a time you give up to 7 days back. Called again with the cursor it returned, it lists only what arrived since, so an app can check for replies without a webhook. Needs permission to read conversations.
list_tags The account's tags, sorted by name, 100 at a time. The app can search by part of a name, and asks for the next page when there are more.
list_lists The account's contact lists, the same way.
list_fields The account's custom contact fields: key, label and type.
add_tag, remove_tag Adds or removes one tag on up to 25 contacts at a time. Adding or removing a tag can start the account's automations for that tag.
subscribe_to_list, unsubscribe_from_list Subscribes or unsubscribes up to 25 contacts at a time. Leaving a list doesn't opt anyone out of texts. A list synced from another app, such as HubSpot, can't be changed here.
create_tag, create_list Creates one tag or list by name. If the account already has one with that name, in any capitalization, the app gets that one back instead of a copy. Creating changes no contact. An app can make a limited number of these calls per account each day; past it, create more in Roezan.
update_contact Changes one contact's first name, last name or custom field values, and adds an email to a contact that has none. It never replaces an email the contact already has. A custom field must already exist in the account; the app can't create one. Changing a value can start the account's automations for it.
opt_out_contact Opts up to 25 contacts out of text messages. The app can't opt anyone back in. When the app says the contact asked to stop, only the contact can opt back in, for example by texting START. Otherwise you can opt them back in yourself in Roezan. Opt-outs go through even when the account's billing isn't active.
preview_broadcast Prepares a broadcast to one or more lists without sending it, and tells the app how many contacts it reaches, the credits it will use and when it would send, so the app can check with you first. Each preview is saved as a draft on your Broadcasts page. Text only. Needs permission to send messages, and a role in Roezan that can create broadcasts.
schedule_broadcast Sends a broadcast the app previewed in the last 24 hours, at the time it showed or right away. It never sends a draft you started in Roezan. It is refused if the audience grew since the preview or the account lacks the credits, and if your broadcasts need review it waits for approval like any other. Needs permission to send messages, and a role in Roezan that can send broadcasts.
list_broadcasts Your broadcasts, newest first, 20 at a time: drafts, scheduled, waiting for review, sending and sent, with when each sends and, once sent, how many it reached, delivered, failed, and the replies and opt-outs it brought. The app can filter by status or name, and archived broadcasts are left out unless it asks for them. Needs permission to read conversations, and a role in Roezan that can see broadcasts.
cancel_broadcast Stops a scheduled broadcast before it sends and turns it back into a draft, which stays on your Broadcasts page so you can schedule it again. This includes broadcasts people scheduled in Roezan, so the app should check with you first. It can't stop one that has started sending. Needs permission to send messages, and a role in Roezan that can send broadcasts.

The write tools take each contact by its Roezan id or by its phone number. A phone number must belong to a contact the account already has; one that doesn't is skipped, never added. The app gets a result for every contact: changed, skipped (for example, already tagged) or failed; update_contact reports each value it changed, each one that was already set, and an email it kept. Each change appears on the contact's activity timeline under the app's name, such as “Claude (AI app)”. Changes other than opt-outs need the account's billing to be active, as with the REST API.

What a tool returns is sent to the AI app you connected and handled under that provider's terms, including the text of your conversations. Only connect apps you trust with your contacts' details. A text a contact sends can contain anything, including words written to mislead an AI; the app is told to treat message text as information, never as instructions, but check what it proposes to change.

Permissions and safety

Agencies

You can connect an AI app to a client's account if the client has given your agency the Integrations permission with Manage access, under Settings → Agency Access in their account. Step into the client's account from your Agency Dashboard first, then start the connection from your AI app; you'll be asked to confirm the client by name.

Troubleshooting

What you see What to do
Roezan says AI assistant access isn't turned on for the account, on the approval screen or in your app. Contact Roezan support to turn it on for the account.
The app asks you to sign in or connect again. Its access was disconnected, expired after 90 days unused, or your access to the account changed. Connect again.
A tool says you don't have permission. Your Roezan role doesn't include it, for example viewing contacts. Ask an account admin.
The app asks you to approve again the first time it changes a tag or list. You connected it when it could only read. Approve once more to let it make changes; you can disconnect it at any time.
The app says the server doesn't support dynamic client registration. Update the app. Roezan signs in apps that identify themselves with a client metadata document, which current versions of Claude, Claude Code and Codex do.
Allow access is greyed out while you're working in a client's account. The client hasn't given your agency the Integrations (Manage) permission. They can add it under Settings → Agency Access.