← All integrations

Unipile MCP server

148 operations40 webhooks

Unipile API v2 in one plugin. Messaging on LinkedIn, WhatsApp, Instagram and Telegram, email on Gmail, Outlook and IMAP, Google and Outlook calendars, LinkedIn and Instagram posts, LinkedIn prospecting with Sales Navigator, and signed webhooks for every Unipile event.

Connect Unipile to Claude, ChatGPT or Cursor

  1. 1

    Connect Unipile in Corsair

    Add your Unipile API key once in Corsair. Corsair stores the credential encrypted and makes the Unipile API calls for your agent, so it never goes into a prompt or a config file. Connect Unipile

    If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Unipile. On a ChatGPT personal plan, connect Unipile here first.

  2. 2

    Add Corsair's MCP server to your agent

    Every client uses the same address:

    https://mcp.corsair.dev/mcp

    Claude

    Open Customize → Connectors → Add custom connector, paste the address, then select Connect.

    ChatGPT

    Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.

    Cursor

    Add to CursorOr add this to ~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.
    {
      "mcpServers": {
        "corsair": { "url": "https://mcp.corsair.dev/mcp" }
      }
    }

    Claude Code

    Run this, then run /mcp in Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcp

    Codex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client

  3. 3

    Sign in and choose what needs your approval

    Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Unipile's read and write operations run right away and its 21 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.

Unipile operations available through MCP

  • Create Auth LinkWrite

    Create a Hosted Auth link for a user to connect a LinkedIn (or other) account, or to reconnect one with account_id; LinkedIn sign-in can offer credentials, cookies or the UniLogin extension

  • GetRead-only

    Get one connected account: provider, status (running, disconnected, errored…), lock state and connection method

  • ListRead-only

    List connected Unipile accounts (LinkedIn and others) with their acc_ IDs, provider and status; filter by provider or status

  • RemoveDestructive

    Disconnect an account from Unipile and delete all its Unipile data. The user must link it again to use it

  • UpdateWrite

    Update a connected account: its name, custom data, proxy settings or LinkedIn products

Unipile triggers

  • Add

    A new account was connected and is ready; payload.state is the createAuthLink state

  • Initial Sync Completed

    The first sync finished and all history is available

  • Initial Sync Failed

    The first sync stopped with an error

  • Initial Sync Running

    The first sync of a newly connected account started

  • Locked

    API access to an account was locked

  • Reconnect

    An existing account was signed in again or reconfigured

  • Remove

    An account was removed from Unipile

  • Status Degraded

    A multi-product account has one product running and another interrupted

  • Status Disconnected

    An account needs signing in again; send a reconnect link from accounts.createAuthLink

  • Status Errored

    An account is interrupted by a Unipile, proxy or provider problem

  • Status Partial

    A multi-product account has one product running and another needing sign-in

  • Status Running

    An account (or one of its products) is working again

  • Unlocked

    API access to an account was restored

FAQ

Install corsair and @corsair-dev/unipile, add the Unipile plugin, and connect with an API key. Then call methods like corsair.unipile.api.accounts.createAuthLink() from your app. Corsair verifies webhooks, and keeps each tenant isolated.

Yes. Unipile requires an API key from your Unipile account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.

Yes. One Corsair client can hit Unipile, GitHub, Notion, Stripe, and the rest. Trigger Unipile from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.

Teams use Corsair for unipile api v2 in one plugin. messaging on linkedin, whatsapp, instagram and telegram, email on gmail, outlook and imap, google and outlook calendars, linkedin and instagram posts, linkedin prospecting with sales navigator, and signed webhooks for every unipile event. Common builds include sync jobs, admin tooling, and agents that call Unipile APIs from your backend. Webhook handlers react to Unipile events and fan out to Slack, email, or other plugins in the same tenant.

The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Unipile API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.

We maintain @corsair-dev/unipile in the open repo. When Unipile ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.

No. Corsair does not read your Unipile data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Unipile data on your behalf.

Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.

Yes. Put Unipile on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 21 destructive Unipile operations. You can change a link's mode at hub.corsair.dev/me.