Integration

Unipile integration

Unipile is a unified API over the Google and Microsoft accounts your users link to it through Google's and Microsoft's own OAuth consent pages: Gmail and Google Calendar, Outlook mail and calendar. Search, read, send, draft, move and label emails, manage folders and senders, read address-book contacts, and list, create, update, cancel or answer calendar events; every call names a linked account (acc_...) whose provider is google or outlook, as returned by list_accounts. Authenticate with an Account API key created in the Unipile dashboard (your Application, API Keys) and sent in the X-API-KEY header; a scoped key only sees the accounts of its Scope. Left out on purpose: IMAP mailboxes (Unipile signs into them with the mailbox password it stores, so never use an account whose provider is imap), the LinkedIn, WhatsApp, Instagram, Telegram and Facebook messaging, profile and post routes (they drive personal accounts through linked sessions, which those networks' terms forbid for automation), account linking and removal, webhooks, Scopes and API keys, and the attachment download route (each attachment carries its own temporary download url).

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Unipile.Built from the 37 Unipile tools below, on the connection you add once.

What you can do with Unipile

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Email, 8 operations

  • get_emailGet emailGETAgents: ask firstReturns one email by id with headers, participants, HTML and plain-text body, folders and attachments, each attachment with a temporary download url (personal data). Set meta_only to skip the bodies.
  • list_emailsList emailsGETAgents: ask firstLists emails of a linked Gmail or Outlook mailbox, newest first, with participants, subject, bodies and attachment details (personal data). Search with q, from, to or any_email, or filter by date, folder, unread or starred.
  • list_folder_emailsList folder emailsGETAgents: ask firstLists emails in one folder of a linked mailbox (folder id from list_folders), newest first, with participants, subject, bodies and attachment details (personal data). Same search and filters as list_emails.
  • mark_email_readMark email readPOSTAgents: ask firstMarks an email as read in the linked mailbox (on Gmail, removes the UNREAD label).
  • mark_email_unreadMark email unreadPOSTAgents: ask firstMarks an email as unread in the linked mailbox (on Gmail, adds the UNREAD label).
  • move_emailMove emailPOSTAgents: ask firstMoves an email: folders_ids REPLACES every folder (Gmail label) it is in; on Outlook it can also set categories. Changes the real mailbox. Read status is changed with mark_email_read or mark_email_unread, not here.
  • send_emailSend emailPOSTAgents: ask firstSends a real email from the linked account to the to, cc and bcc recipients. To answer inside a conversation set reply_to_provider_id. Pick the from address with list_email_senders. Returns the sent email id.
  • trash_emailTrash emailDELETEAgents: ask firstMoves an email to the trash folder of the linked mailbox. This changes the real mailbox.

Event, 8 operations

  • cancel_eventCancel eventPOSTAgents: ask firstCancels an event the linked account organizes and notifies its attendees. On Google it stays readable as cancelled; on Outlook it moves to Deleted Items. Only the organizer can cancel; others use delete_event.
  • create_eventCreate eventPOSTAgents: ask firstCreates an event in a calendar of the linked account and invites the attendees listed (they may receive an invitation email). On Google, notify decides which guests are emailed (vendor default none). Returns the event.
  • delete_eventDelete eventDELETEAgents: ask firstDeletes an event from the calendar of the linked account. To call off an event you organize and notify its attendees, use cancel_event instead.
  • get_eventGet eventGETAgents: ask firstReturns one calendar event with title, body, times, location, attendees and their answers, organizer, recurrence and conference link (personal data).
  • list_eventsList eventsGETAgents: ask firstLists the events of one calendar (calendar id from list_calendars) with title, times, location, attendees and their answers, organizer and conference link (personal data). Filter by dates, title, attendees or busy time.
  • respond_to_eventRespond to eventPOSTAgents: ask firstAnswers an invitation for the linked account: status yes, maybe or no, with an optional comment sent to the organizer. On Outlook, declining also removes the event from the account's calendar.
  • restore_eventRestore eventPOSTAgents: ask firstRestores an event the linked account cancelled as organizer. Google Calendar only, and only while Google still holds the cancelled event; Outlook always answers a provider/method_not_allowed error.
  • update_eventUpdate eventPATCHAgents: ask firstUpdates a calendar event: only the fields sent change. Changing times or attendees may email the attendees (on Google, notify decides who). A new attendees list replaces the current one. Returns the event.

Draft, 6 operations

  • create_draftCreate draftPOSTAgents: ask firstCreates a draft in the drafts folder of the linked mailbox without sending it; send it later with send_draft. On Outlook, reply_to_message_id creates a native reply draft in the original conversation.
  • delete_draftDelete draftDELETEAgents: ask firstPermanently deletes a draft from the linked mailbox. It cannot be recovered.
  • get_draftGet draftGETAgents: ask firstReturns one draft by id with its recipients, subject, body, folders and attachments (personal data).
  • list_draftsList draftsGETAgents: ask firstLists the drafts of a linked mailbox, most recently created first, with recipients, subject, body and attachments (personal data).
  • send_draftSend draftPOSTAgents: ask firstSends an existing draft as a real email to the to, cc and bcc recipients stored in the draft. On Outlook the native draft is sent, keeping its reply conversation. Returns the sent email id.
  • update_draftUpdate draftPATCHAgents: ask firstUpdates a draft: only the fields sent change, the others are kept. A new attachments list replaces the existing attachments. Does not send it (use send_draft).

Calendar, 5 operations

  • create_calendarCreate calendarPOSTAgents: ask firstCreates a new calendar in the linked Google or Outlook account. Returns the calendar with its id.
  • delete_calendarDelete calendarDELETEAgents: ask firstDeletes a calendar from the linked Google or Outlook account. This changes the real calendar account.
  • get_calendarGet calendarGETAgents: ask firstReturns one calendar of the linked account: name, description, read-only and ownership flags, colour and time zone.
  • list_calendarsList calendarsGETAgents: ask firstLists the calendars of a linked Google or Outlook account with id, name, read-only and ownership flags, colour and time zone. Use a calendar id in the event tools.
  • update_calendarUpdate calendarPATCHAgents: ask firstUpdates a calendar's name, description, colour or time zone. Only the fields sent change.

Folder, 5 operations

  • create_folderCreate folderPOSTAgents: ask firstCreates a folder (a label on Gmail) in the linked mailbox. On Outlook it can be nested under parent_id; on Gmail text and background colours can be set.
  • delete_folderDelete folderDELETEAgents: ask firstDeletes a folder (a label on Gmail) from the linked mailbox. This changes the real mailbox.
  • get_folderGet folderGETAgents: ask firstReturns one folder (label on Gmail) of the linked mailbox: name, role, total and unread email counts, colours (Gmail) and parent folder (Outlook).
  • list_foldersList foldersGETAgents: ask firstLists the folders of a linked mailbox (labels on Gmail) with id, name, role (inbox, sent, trash...), and total and unread counts. Use a folder id in list_folder_emails or move_email.
  • update_folderUpdate folderPATCHAgents: ask firstRenames or recolours a folder (label on Gmail), or moves it under another parent on Outlook. Only the fields sent change.

Account, 2 operations

  • get_accountGet accountGETAgents: ask firstReturns one linked account by id (acc_...): provider, status (running, errored, disconnected, degraded, partial), display name, granted OAuth scopes and initial sync state. Check status before email or calendar calls.
  • list_accountsList accountsGETAgents: ask firstLists the accounts linked to Unipile that the API key can see: id (acc_...), provider, status and display name. Use only an account whose provider is google or outlook: imap and messaging accounts are not supported here.

Contact, 1 operation

  • list_contactsList contactsGETAgents: ask firstLists the address-book contacts of a linked email account, as the email provider stores them: names, email addresses, phone numbers, company, job title, birth date and notes (personal data).

Email sender, 1 operation

  • list_email_sendersList email sendersGETAgents: ask firstLists the addresses a Google or Outlook account may send from (primary and additional ones), with display name, default flag, verification status and Gmail signature. Use one as from in send_email or create_draft.

Thread, 1 operation

  • get_threadGet threadGETAgents: ask firstReturns every email of one conversation (thread_id from an email), sorted by date, with participants and bodies (personal data).

Use Unipile from Claude Code, Cursor or Codex

Connect Unipile in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Unipile operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Unipile

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Unipile once

    Add your Unipile connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Unipile integration FAQ

What can you do with the Unipile integration?

LiveContext exposes 37 operations on Unipile, covering email, event, draft and calendar.

Popular integrations

Browse the whole catalog