Sendral

Quickstart

From DMG to your first AI tool call in about ten minutes. Most of that is macOS permission prompts — they only happen once.

1. Install

  1. Download the Sendral DMG and open it.
  2. Drag Sendral into Applications.
  3. Launch Sendral from Applications. If macOS shows a Gatekeeper prompt on first launch, right-click the app and choose Open, then confirm.

Sendral lives in your menu bar. Closing the window doesn't quit the app — the local server keeps running in the background, which is what your AI connects to. Quit only from the menu bar icon.

2. Start your trial, or enter your license key

On first run, Sendral offers two ways in. No account and no sign-in either way.

Free trial. Enter an email address and you get 7 days, no card required. One trial per Mac — reinstalling doesn't reset it. Everything you set up during the trial (permissions, services, synced data) stays exactly as it is when you buy; you just paste your key.

License key. Paste the key from your purchase confirmation. It's a signed token Sendral verifies on your Mac; activating also links it to this Mac (one machine per key) with a single online check. After that Sendral runs fully offline and licensing can never fail mid-session. Moving to a new Mac? Uninstalling frees the key, or email support@sendral.app.

While a trial is running, the menu bar shows how many days are left and a link to buy. Lost your key? Email support@sendral.app and we'll resend it.

3. The permissions gauntlet

macOS protects your personal data with several separate permission systems, and Sendral needs to pass through each one. Here is every prompt you'll see, in order. None of them repeat once granted.

3a. Full Disk Access (manual step — do this first)

Reading the Messages database (chat.db), the Calendar database, and Reminders tags requires Full Disk Access. macOS never shows a pop-up for this — you must grant it by hand:

  1. Open System Settings → Privacy & Security → Full Disk Access.
  2. Click +, select Sendral from Applications, and make sure its toggle is on.
  3. Quit Sendral completely (menu bar icon → Quit) and reopen it. macOS only applies Full Disk Access at launch — this restart is not optional. A running app that was granted FDA mid-session will still be denied.

Grant it to the Sendral app itself, not to Terminal or anything else. If sync later comes up empty, this step is almost always the reason.

3b. Automation prompts (appear on first use, per app)

Sendral drives Apple's own apps through AppleScript for reading and writing some services. The first time each one is touched, macOS shows a "Sendral wants to control ..." prompt. Click Allow:

  1. Messages — appears the first time a send executes (not before; reading your history needs only Full Disk Access).
  2. Reminders — appears on the first reminders tool call (Reminders is read and written via AppleScript).
  3. Contacts — appears the first time your AI creates or edits a contact (reading contacts uses the local database, covered by Full Disk Access).
  4. Notes — appears on the first Notes read or write.
  5. Mail — appears on the first Mail read or send, if you use the Mail service.
  6. Calendar — appears the first time an event is created (reading events is covered by Full Disk Access).

You only see prompts for services you actually use. Denied one by mistake? Email support@sendral.app and we'll walk you through the reset.

3c. First sync

Open the Sendral window and run a sync (also available from the menu bar: Sync Messages Now). You should see message counts climb. Empty results mean Full Disk Access isn't in effect yet — redo step 3a including the restart.

4. Connect your AI

Sendral ships everything it needs — including its own Node runtime — inside the app. Your AI connects to the bundled MCP server over stdio; the server talks to Sendral's local API at 127.0.0.1:6060. Nothing is exposed to the network.

The blessed source of truth is inside the app: open Sendral's window → SettingsMCP config JSONCopy JSON. That snippet has the exact paths for your machine. It looks like this:

{
  "mcpServers": {
    "sendral": {
      "command": "/Applications/Sendral.app/Contents/Resources/mcp/node",
      "args": ["/Applications/Sendral.app/Contents/Resources/mcp/mcp-server.mjs"],
      "env": {
        "COMMS_API_URL": "http://127.0.0.1:6060",
        "COMMS_API_TOKEN": "<filled in with your machine's token>"
      }
    }
  }
}

The token authenticates against Sendral's local API — every endpoint requires it (Authorization: Bearer <token>). It's generated on first launch, stays on your Mac, and is baked into every config Sendral hands you. Building your own integration? Open http://127.0.0.1:6060/docs while Sendral is running for the full API reference, including how to fetch the token programmatically.

Claude Desktop — don't edit anything by hand. Open Sendral's Setup tab, pick Claude Desktop, and click Add to Claude Desktop. Sendral merges the entry into ~/Library/Application Support/Claude/claude_desktop_config.json for you (existing servers are kept; the old file is backed up as .bak). Then quit and reopen Claude Desktop.

If you'd rather do it manually: merge the JSON above into that file. Careful with the braces — if the file already has an mcpServers section, copy only the inner "sendral": { … } entry into it. Pasting the whole block a second time produces invalid JSON.

Claude Code — one command:

claude mcp add sendral \
  -e COMMS_API_URL=http://127.0.0.1:6060 \
  -e COMMS_API_TOKEN=<your token> \
  -- /Applications/Sendral.app/Contents/Resources/mcp/node \
     /Applications/Sendral.app/Contents/Resources/mcp/mcp-server.mjs

Don't type this by hand — the Setup tab → Other shows it with the paths and token already filled in.

Cursor — merge the same JSON into ~/.cursor/mcp.json.

Keep Sendral running (menu bar) whenever your AI needs it — the MCP server only works while the app's local API is up.

5. Verify with a first tool call

Ask your AI something only Sendral can answer:

"Use the sendral tools to search my contacts for my own name."

or

"What are my calendar events this week?"

Two ways to confirm it worked:

6. Enabling writes (when you're ready)

Out of the box Sendral is read-only. Sending and creating/deleting tools aren't just blocked — they're not even offered to your AI.

When you want more:

  1. Open Sendral's window → Settings → MCP permissions.
  2. Flip a service from Read to Read + Write — per service, so you can allow Reminders writes while Messages stays read-only.
  3. Restart your AI client (quit and reopen Claude Desktop, or reconnect the MCP server). Tools are registered when the MCP server starts, so new write tools appear only after a fresh connection.

Two extra safeguards stay on even with writes enabled:

That's it. Your AI can now see your Mac the way you do — and only do the things you've explicitly allowed.

7. Uninstalling

Sendral keeps everything — settings, your license key, and a full local copy of your synced messages and contacts — in one data folder. Dragging the app to the Trash does not remove that folder, so uninstall from inside the app:

  1. Menu bar icon → Uninstall Sendral… (also under Settings → Uninstall).
  2. Confirm. Sendral stops its background server, deletes its data folder, turns off Start-at-Login, and quits.
  3. Drag Sendral from Applications to the Trash.

Because licenses are verified offline, there's nothing to deactivate — you can reinstall and re-enter the same key on this or another Mac anytime.

Already dragged the app to the Trash? Delete the leftover data folder by hand:

~/Library/Application Support/Sendral

macOS cleans up the Full Disk Access and Automation entries for a removed app on its own; you can also remove them manually under System Settings → Privacy & Security.

Problems?

Email support@sendral.app — solo developer, replies typically within 2 business days.