Skip to main content

A comprehensive MCP server for the Unipile API — 96 tools for messaging, email, calendar, LinkedIn, and more

Project description

mcp-server-unipile

A comprehensive Model Context Protocol (MCP) server for the Unipile API95 tools covering the full API surface.

Connect your AI assistant to LinkedIn, Email, Calendar, WhatsApp, Instagram, and Telegram through a single unified interface.

Features

Category Tools Capabilities
Account Management 10 List, get, connect, delete, reconnect, resync, restart accounts + 2FA checkpoints
Messaging 14 Cross-platform chat (LinkedIn, WhatsApp, Instagram, Telegram) with search, reactions, forwarding
Attendees 6 Contact management, profile pictures, chat history by person
Email 11 Send, read, search, draft, track opens/clicks (Gmail + Outlook unified)
Calendar 7 Events, scheduling, free/busy queries (Google + Microsoft unified)
LinkedIn Search 6 People, companies, posts, jobs (candidate-side), Sales Navigator
LinkedIn Profiles 7 View/edit profiles, followers, following, user activity
LinkedIn Connections 7 Invitations, relations, connection management
LinkedIn InMail 2 Send InMail, check credits
LinkedIn Posts 6 Create, comment, react, view engagement
LinkedIn Jobs 13 Job search, posting, applicant management, recruiter features
Webhooks 3 Real-time event notifications
Advanced 3 Profile visitors, raw API access, skill endorsements

Installation

Using uvx (recommended)

uvx mcp-server-unipile

Using pip

pip install mcp-server-unipile

From source

git clone https://github.com/Sundeepg98/mcp-server-unipile.git
cd mcp-server-unipile
pip install -e .

Configuration

Environment Variables

Variable Required Description
UNIPILE_BASE_URL Yes Your Unipile API base URL (e.g., https://apiX.unipile.com:XXXXX/api/v1)
UNIPILE_API_KEY Yes Your Unipile API key
UNIPILE_LINKEDIN_ACCOUNT_ID No Default LinkedIn account ID (avoids passing it to every LinkedIn tool)
UNIPILE_EMAIL_ACCOUNT_ID No Default email account ID (avoids passing it to every email/calendar tool)

Get your API credentials from the Unipile Dashboard.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "unipile": {
      "command": "uvx",
      "args": ["mcp-server-unipile"],
      "env": {
        "UNIPILE_BASE_URL": "https://apiX.unipile.com:XXXXX/api/v1",
        "UNIPILE_API_KEY": "your_api_key",
        "UNIPILE_LINKEDIN_ACCOUNT_ID": "your_linkedin_id",
        "UNIPILE_EMAIL_ACCOUNT_ID": "your_email_id"
      }
    }
  }
}

Claude Code

Add to your .claude.json (user or project scope):

{
  "mcpServers": {
    "unipile": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-unipile"],
      "env": {
        "UNIPILE_BASE_URL": "https://apiX.unipile.com:XXXXX/api/v1",
        "UNIPILE_API_KEY": "your_api_key",
        "UNIPILE_LINKEDIN_ACCOUNT_ID": "your_linkedin_id",
        "UNIPILE_EMAIL_ACCOUNT_ID": "your_email_id"
      }
    }
  }
}

VS Code / Cursor

Add to your .vscode/mcp.json:

{
  "servers": {
    "unipile": {
      "command": "uvx",
      "args": ["mcp-server-unipile"],
      "env": {
        "UNIPILE_BASE_URL": "https://apiX.unipile.com:XXXXX/api/v1",
        "UNIPILE_API_KEY": "your_api_key"
      }
    }
  }
}

Prerequisites

  1. A Unipile account with API access
  2. At least one connected account (LinkedIn, Gmail, WhatsApp, etc.) in your Unipile dashboard
  3. Python 3.10+

Usage Examples

Search for jobs

Search for remote Python developer jobs posted this week

Your AI assistant will call search_jobs with keywords, remote_policy, and posted_at filters.

Send a LinkedIn message

Message John Smith on LinkedIn asking about the engineering role at his company

Uses search_people to find John, then send_message to reach out.

Manage email

Show me unread emails from today and draft a reply to the one from HR

Uses list_emails with filters, then draft_email for the response.

Track engagement

Who viewed my LinkedIn profile this week? Also show my latest followers.

Uses get_profile_visitors and list_followers.

All 95 Tools

Account Management (10)
  • list_accounts - List all connected accounts
  • get_account - Get single account details
  • connect_account - Connect via native auth (username/password)
  • reconnect_account - Reconnect via hosted auth (returns browser URL)
  • delete_account - Remove an account
  • resync_account - Force full data resync
  • restart_account - Restart sync processes
  • solve_checkpoint - Solve 2FA/checkpoint challenge
  • resend_checkpoint - Resend verification code
  • get_my_profile - Get your own profile
Messaging (14)
  • list_chats - List conversations (filterable by account/platform)
  • get_chat - Get conversation details
  • get_chat_messages - List messages in a chat
  • get_message - Get single message details
  • send_message - Send a message in a chat
  • forward_message - Forward a message
  • get_message_attachment - Download attachment
  • start_chat - Start new conversation
  • update_chat - Mark read/unread, archive
  • sync_chat - Sync conversation history
  • list_all_messages - Cross-chat message search
  • delete_chat - Delete a conversation
  • delete_message - Delete a message
  • list_chat_attendees - List participants in a chat
Attendees (6)
  • list_attendees - List all contacts/attendees
  • get_attendee - Get attendee details
  • get_attendee_picture - Download profile picture (base64)
  • list_chats_by_attendee - Find chats with specific person
  • list_messages_by_attendee - Messages from specific person
  • add_message_reaction - React to a message
Email (11)
  • list_emails - List emails with filters
  • get_email - Read a specific email
  • send_email - Send email with optional open/click tracking
  • draft_email - Create email draft
  • delete_email - Delete email
  • get_email_attachment - Download email attachment
  • list_email_contacts - List email contacts
  • update_email - Modify email (read/star/move)
  • list_email_folders - List folders (inbox, sent, drafts, etc.)
  • get_email_folder - Get folder details
  • list_email_labels - List Gmail labels
Calendar (7)
  • list_calendars - List all calendars
  • get_calendar - Get calendar details
  • list_events - List calendar events
  • get_event - Get event details
  • create_event - Create calendar event
  • edit_event - Modify event
  • delete_event - Delete event
LinkedIn Search (6)
  • search_people - Search LinkedIn members
  • search_people_sales_nav - Sales Navigator advanced search
  • search_companies - Search companies
  • search_posts - Search LinkedIn content
  • search_jobs - Search job postings (candidate-side, with Easy Apply flag)
  • get_search_params - Get valid filter IDs (locations, industries, etc.)
LinkedIn Profiles & Users (7)
  • get_profile - Get a user's LinkedIn profile
  • get_company_profile - Get company page details
  • edit_own_profile - Edit your headline/summary/location
  • list_followers - List your followers
  • list_following - List who you follow
  • list_user_comments - User's comment history
  • list_user_reactions - User's reaction history
LinkedIn Connections (7)
  • send_invitation - Send connection request
  • accept_invitation - Accept connection request
  • decline_invitation - Decline request
  • cancel_invitation - Cancel sent request
  • list_invitations_sent - View sent invitations
  • list_invitations_received - View received invitations
  • list_relations - List all connections
LinkedIn InMail (2)
  • send_inmail - Send InMail message
  • get_inmail_credits - Check remaining credits
LinkedIn Posts (6)
  • create_post - Create LinkedIn post
  • get_post - Get post details
  • comment_on_post - Comment on a post
  • react_to_post - React to a post
  • list_post_comments - List post comments
  • list_post_reactions - List post reactions
LinkedIn Jobs & Recruiter (13)
  • search_jobs - Search job postings as candidate
  • list_jobs - List your job postings
  • get_job - Get job posting details
  • create_job - Create job posting
  • edit_job - Edit job posting
  • publish_job - Publish draft job
  • close_job - Close job posting
  • get_job_applicants - List applicants
  • get_job_applicant - Get applicant details
  • get_applicant_resume - Download applicant resume
  • get_hiring_projects - List Recruiter hiring projects
  • get_hiring_project - Get project details
  • perform_linkedin_action - Follow/unfollow/block users
  • solve_job_checkpoint - Solve job publishing checkpoint
Webhooks (3)
  • list_webhooks - List configured webhooks
  • create_webhook - Create webhook
  • delete_webhook - Delete webhook
Advanced (3)
  • get_profile_visitors - Who viewed your profile
  • endorse_skill - Endorse a connection's skill
  • raw_linkedin_request - Raw LinkedIn API request
  • list_user_posts - List a user's posts

How It Works

This server wraps the Unipile REST API into MCP tools. Unipile acts as a unified layer over multiple platforms:

Your AI Assistant
      |
      v
  MCP Server (this package)
      |
      v
  Unipile API
      |
      v
  LinkedIn | Gmail | WhatsApp | Instagram | Telegram | Outlook

Each tool maps to one Unipile API endpoint. Authentication is handled via API key. Account-specific operations use either the default account IDs from environment variables or accept explicit account_id parameters.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_unipile-0.1.5.tar.gz (31.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_unipile-0.1.5-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_unipile-0.1.5.tar.gz.

File metadata

  • Download URL: mcp_server_unipile-0.1.5.tar.gz
  • Upload date:
  • Size: 31.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_server_unipile-0.1.5.tar.gz
Algorithm Hash digest
SHA256 9142e11d129053c36f4edc84b29f5492d6f8bb278d6e730c0ad2519fd98d6f9f
MD5 bb00f776313932fffb123977b3f9ae87
BLAKE2b-256 0420a4dde262a485b6edd7c6ff6efde07150d8da7a06b5ec0e04780ff1c624df

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_unipile-0.1.5.tar.gz:

Publisher: publish.yml on Sundeepg98/mcp-server-unipile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_server_unipile-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_unipile-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3f458555288585980fc242f16b1764a35072864d4d81eebcfcccea3c11547c77
MD5 0f8856eec9afd3949627d8a0320b3fcc
BLAKE2b-256 1e5cc412334a726bb490f4a38be396986b78c02bb04ac15bac6ecd32fb5448e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_unipile-0.1.5-py3-none-any.whl:

Publisher: publish.yml on Sundeepg98/mcp-server-unipile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page