Connect your AI to Sortd

Your assistant gets Sortd directly — read the mailbox, task emails onto boards, prioritise lists, draft and (if you allow it) send replies. You connect once and approve access in the browser. Two minutes, no key, no code.

Plan requirement: AI assistant and API access are included from the Business plan. On other plans the sign-in screen tells you the plan doesn't support connections — upgrade (or ask your workspace admin), then connect.

The fastest path: ask the assistant to set itself up

In current Claude and ChatGPT builds you don't have to find the settings yourself — paste this into a chat and it walks you through its own connector setup:

Add the Sortd connector. The MCP URL is https://api.sortd.com/mcp — walk me through
connecting it, and I'll approve the sign-in when it appears.

Where this works: Claude on claude.ai and the desktop app (Cowork included — it shares the same connectors), and ChatGPT once Developer mode is on. Where it doesn't:

  • Team/Enterprise workspaces where connectors are org-managed — an Owner adds Sortd for everyone (Claude: Organization settings → Connectors); the assistant can only point you there.
  • ChatGPT before Developer mode is enabled — that first toggle (currently Settings → Apps → Advanced settings) is a one-time manual step, and on Business/Enterprise an admin may have to allow it.
  • Config-file clients — Cursor, Claude Code and other CLIs, and key-based runners don't have a settings UI the assistant can drive: see the AI CLI page.
  • The sign-in itself — everywhere, the browser Connect Sortd sign-in and the consent screen remain yours to click. On the consent screen you choose which permissions the assistant gets — what you tick there is the whole permission grant.

Or connect by hand, per app

Claude — the app & Cowork (claude.ai, desktop)

  1. Open the Connectors section (currently Customize → Connectors on claude.ai and in the desktop app). On Team/Enterprise plans an Owner adds it for everyone under Organization settings → Connectors.
  2. Click + and choose Add custom connector.
  3. Name it Sortd and paste the URL: https://api.sortd.com/mcp.
  4. Complete the Connect Sortd browser sign-in — on the consent screen, tick the permissions you want to give and select Allow selected.
  5. In a chat, check the connector is enabled (search & tools menu), then try: "Which Sortd boards can you see?"

Once connected it's available in ordinary chats, in Cowork sessions, and to scheduled tasks — so a morning task can triage the inbox before you sit down.

ChatGPT — apps & connectors

  1. Enable Developer mode (currently Settings → Apps → Advanced settings; paid plans — on Business/Enterprise an admin may need to allow custom connectors first).
  2. Create a connector and paste the server URL: https://api.sortd.com/mcp. Write a real description — the model reads it when deciding to use the tools (e.g. "Sortd: my mailbox, boards and tasks — search email, create and move tasks, draft replies").
  3. Pick OAuth for authentication and complete the Connect Sortd sign-in. (ChatGPT's custom connectors don't send custom headers, so the key style isn't available here — OAuth carries the same scopes.)
  4. Enable the connector in the conversation (and for scheduled tasks if you use them), then try: "List my Sortd boards."

Other OAuth-capable apps

Any MCP client with built-in OAuth support works the same way: give it https://api.sortd.com/mcp, let it open the Connect Sortd sign-in, choose the permissions. Clients that authenticate with a header instead (CLIs, editors, config files, key-based runners) are covered on the AI CLI page.

Choosing permissions

The consent screen lists every permission the assistant asks for, each with a tick-box. You decide which ones it gets:

  • Grouped by risk. View (read-only), Make changes (shows on your boards as if a teammate did it) and Send email and delete (can't be undone).
  • Sending and deleting start unticked — email.send, email.reply, drafts.send and tasks.delete. Leave them off and the assistant can still prepare draft replies (drafts.write) for a person to send.
  • Unticked means invisible. A tool whose permission you didn't grant isn't listed to the assistant at all, and calls to it are refused.
  • Change your mind by connecting again. The consent screen appears on every new connection, opening on the choices you made last time. Reconnect Sortd from your assistant's connector settings (or remove and re-add it) and tick or untick as needed.

Not sure what to grant? Each use-case guide lists the permissions it needs, and the MCP tool catalog shows which permission (scope) every tool requires.

Try it

Ask the assistant something that exercises the connection:

  • "Which Sortd boards can you see?" — walks whoami → list_teams → list_boards.
  • "Find the renewal thread from Jane and make it a task on Support / To do." — search_email_threads → create_task_from_email.
  • "Re-order my To do list by urgency." — list_tasks + classify_email, then reorder_task per card.
  • "Draft a reply saying Thursday works." — create_email_draft; the draft waits in Gmail for you to send.

The full vocabulary — every subject and action with a sample prompt — is the AI Reference; the same tools grouped by permission scope are the MCP tool catalog.

Put it on a schedule

The connector really earns its keep on a schedule: "every hour, check for new mail and file anything urgent onto the Support board" is one sentence to your assistant. Claude Cowork and ChatGPT can both run the connector on recurring tasks — recipes, cadences and the scopes to grant a scheduled agent are on the AI Schedule page.

How authorisation works

  • Scopes are the contract — whether they were ticked on the OAuth consent screen or an API key's tick-boxes. A tool outside the granted scopes isn't listed and can't be called. Tools that span two resources need both — e.g. create_task_from_email requires tasks.write + email.metadata.read.
  • Tools carry annotations (readOnlyHint, destructiveHint, idempotentHint) that your client's own permission UI uses to decide what to auto-allow and what to confirm with you. Sends, deletes and secret rotation are flagged destructive.
  • Sending is opt-in by scope, never implied. Send scopes start unticked on the consent screen; without one the assistant can at most create drafts for you to review — and email.reply grants a send that structurally cannot reach anyone outside the thread.
  • Retries are safe. Send tools accept an idempotency_key; task linking and reorder are idempotent by design.

Can my assistant watch my webhooks?

Not directly. Webhooks are Sortd calling your HTTPS endpoint — and a chat assistant (Claude, ChatGPT, a Cowork session, a scheduled task) is a client, not a server: it has no public URL for Sortd to deliver to. Three patterns that do work:

  • Poll on a schedule with get_new_email. The server keeps a per-connection cursor, so a scheduled run simply asks "what's new since I last checked?" — no state in the assistant, no Gmail quota spent, headers-only. The tool's contract (at-least-once delivery, daily check-in, the new_mail_expired recovery) is in its description, so the model handles the edge cases itself. Full contract: Poll for new mail.
  • Bridge through a small service you host. Your endpoint receives the webhook (signed, retried) and acts — calls the Sortd API back, files a row somewhere the assistant reads, or triggers your own agent run. This is the real-time option.
  • Bridge through Zapier — Sortd's Zapier triggers receive the events and can push them wherever your assistant will look next.

Rule of thumb: assistants pull; servers push. Use MCP for the pulling and webhooks for the pushing, and meet in the middle with a schedule or a bridge — ready-made bridge patterns for n8n, Make, Pipedream, Zapier and self-hosted agents are in the AI guides.

Sessions — audit & disconnect

Each connected assistant gets a session on its first initialize. You can list them (client name, version, declared capabilities, last seen) and revoke any one — the client must re-initialize to continue.

# list connected assistants
curl "https://api.sortd.com/mcp/sessions" -H "Authorization: Bearer sk_live_…"

# revoke one
curl -X POST "https://api.sortd.com/mcp/sessions/mcps_…/revoke" \
  -H "Authorization: Bearer sk_live_…"

Under the hood (for the protocol-curious)

The hosted endpoint speaks MCP (Model Context Protocol) over Streamable HTTP at:

https://api.sortd.com/mcp

On connect the assistant gets more than a tool list: the initialize response carries instructions (how to resolve names, check for an existing card before creating one, the difference between completing and archiving, sales statuses, typed custom-field values and sub-tasks), every tool carries a description and input schema filtered to the permissions you granted, and the server offers a sortd://welcome resource plus the built-in prompts.

It's plain JSON-RPC — you can drive it with curl. initialize returns an mcp-session-id header; present it on subsequent calls.

curl -i -X POST "https://api.sortd.com/mcp" \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "initialize",
        "params": { "protocolVersion": "2025-03-26",
                    "clientInfo": { "name": "curl", "version": "0" }, "capabilities": {} } }'

curl -X POST "https://api.sortd.com/mcp" \
  -H "Authorization: Bearer sk_live_…" \
  -H "mcp-session-id: mcps_…" \
  -H "Content-Type: application/json" \
  -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }'

Every MCP tool proxies the corresponding REST v2 route in-process — same validation, same scope checks, same audit trail, same webhooks. MCP can't do anything REST can't.

Next: put the connector on a schedule, learn the full vocabulary in the AI Reference, or connect a CLI or key-based client via AI CLI.

App menu paths verified September 2026 — vendors rename these periodically; the connector URL and flow are unchanged when they do.