list_accountsLABSCO SUMMARY
The whole outreach stack, one credential.
The value is not any single tool — it is that finding someone, messaging them on LinkedIn, following up by email and putting the call in the calendar all happen through one connection instead of four integrations. The escape hatch is worth knowing about: a raw LinkedIn request tool means an endpoint the wrapper does not cover is still reachable. Setting the default account ids removes an argument from most calls, which is the difference between a workable session and constant id-passing.
What it is
An MCP server over the Unipile API, which is itself a unified layer across LinkedIn, Gmail, Outlook, WhatsApp, Instagram and Telegram. Each tool maps to one Unipile endpoint, so a single connection covers the whole set of accounts you have linked in your Unipile dashboard.
What you get
- Cross-platform messaging: list and read conversations, send, forward and delete messages, react, mark read or archive, and search across chats —
list_chats,get_chat_messages,send_message,forward_message,list_all_messages,add_message_reaction - Email over Gmail and Outlook alike: list with filters, read, send with open and click tracking, draft, move and label, and walk folders —
list_emails,get_email,send_email,draft_email,update_email,list_email_folders,list_email_labels - Calendar across Google and Microsoft: calendars, events, creation and edits —
list_calendars,list_events,create_event,edit_event,delete_event - LinkedIn search over people, companies, posts and jobs, including Sales Navigator, with a call that returns the valid filter IDs for locations and industries —
search_people,search_companies,search_posts,search_jobs,search_people_sales_nav,get_search_params - LinkedIn relationship management: send, accept, decline and cancel invitations, list sent and received, list connections, and send InMail against a credit balance you can check —
send_invitation,list_invitations_received,list_relations,send_inmail,get_inmail_credits - Posting and engagement: create posts, comment, react, and read a post's comments and reactions —
create_post,comment_on_post,react_to_post,list_post_comments,list_post_reactions - The recruiter side: create, edit, publish and close job postings, list applicants, open one, download a resume, and read Recruiter hiring projects —
create_job,publish_job,close_job,get_job_applicants,get_applicant_resume,get_hiring_projects - Account plumbing: connect, reconnect, resync and restart accounts, and solve 2FA checkpoints —
list_accounts,connect_account,reconnect_account,solve_checkpoint,resend_checkpoint - Webhooks for real-time events, profile-visitor data, skill endorsements, and a raw LinkedIn request escape hatch —
create_webhook,get_profile_visitors,endorse_skill,raw_linkedin_request
Requirements
A Unipile account with API access and at least one platform account connected in the dashboard. Two required environment variables: UNIPILE_BASE_URL (your instance URL) and UNIPILE_API_KEY. Two optional ones save passing an account id on every call: UNIPILE_LINKEDIN_ACCOUNT_ID and UNIPILE_EMAIL_ACCOUNT_ID. Python 3.10 or higher; run it with uvx mcp-server-unipile. The package is mcp-server-unipile (version 0.1.5).
Setup effort
One command plus a key — uvx mcp-server-unipile, then supply credentials
USE CASES
Running outreach without leaving the conversation
Search LinkedIn for the person, send a connection request or a message, then follow up by email — all through the same server.
Triaging the inbox
List unread email with filters, read the ones that matter, and draft replies rather than sending blind.
Managing a job posting through to applicants
Create and publish the posting, then list applicants, open the promising ones and download their resumes.
Job hunting from the candidate side
Search postings with keyword, remote-policy and recency filters, then message people at the company.
Seeing who is paying attention to you
Read profile visitors and new followers, and check the engagement on your recent posts.
Booking the meeting the thread was heading toward
Check free time across the connected calendars and create the event without switching apps.
96 tools
Listed in project docs. Your client may show a different list.
get_accountconnect_accountreconnect_accountdelete_accountresync_accountrestart_accountsolve_checkpointresend_checkpointget_my_profilelist_chatsget_chatget_chat_messagesget_messagesend_messageforward_messageget_message_attachmentstart_chatupdate_chatsync_chatlist_all_messagesdelete_chatdelete_messagelist_chat_attendeeslist_attendeesget_attendeeget_attendee_picturelist_chats_by_attendeelist_messages_by_attendeeadd_message_reactionlist_emailsget_emailsend_emaildraft_emaildelete_emailget_email_attachmentlist_email_contactsupdate_emaillist_email_foldersget_email_folderlist_email_labelslist_calendarsget_calendarlist_eventsget_eventcreate_eventedit_eventdelete_eventsearch_peoplesearch_people_sales_navsearch_companiessearch_postssearch_jobsget_search_paramsget_profileget_company_profileedit_own_profilelist_followerslist_followinglist_user_commentslist_user_reactionssend_invitationaccept_invitationdecline_invitationcancel_invitationlist_invitations_sentlist_invitations_receivedlist_relationssend_inmailget_inmail_creditscreate_postget_postcomment_on_postreact_to_postlist_post_commentslist_post_reactionslist_jobsget_jobcreate_jobedit_jobpublish_jobclose_jobget_job_applicantsget_job_applicantget_applicant_resumeget_hiring_projectsget_hiring_projectperform_linkedin_actionsolve_job_checkpointlist_webhookscreate_webhookdelete_webhookget_profile_visitorsendorse_skillraw_linkedin_requestlist_user_postsBEFORE YOU INSTALL
What to know first
Tools you get
96 tools named in the project's documentation.
Requires
- uvx on PATH
- UNIPILE_API_KEY in your environment
- UNIPILE_BASE_URL in your environment
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx mcp-server-unipileMCP Clients
Claude Desktop
{
"mcpServers": {
"unipile": {
"command": "uvx",
"args": [
"mcp-server-unipile"
],
"env": {
"UNIPILE_BASE_URL": "<YOUR_UNIPILE_BASE_URL>",
"UNIPILE_API_KEY": "<YOUR_UNIPILE_API_KEY>",
"UNIPILE_LINKEDIN_ACCOUNT_ID": "<YOUR_UNIPILE_LINKEDIN_ACCOUNT_ID>",
"UNIPILE_EMAIL_ACCOUNT_ID": "<YOUR_UNIPILE_EMAIL_ACCOUNT_ID>"
}
}
}
}Claude Code
{
"mcpServers": {
"unipile": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-unipile"
],
"env": {
"UNIPILE_BASE_URL": "<YOUR_UNIPILE_BASE_URL>",
"UNIPILE_API_KEY": "<YOUR_UNIPILE_API_KEY>",
"UNIPILE_LINKEDIN_ACCOUNT_ID": "<YOUR_UNIPILE_LINKEDIN_ACCOUNT_ID>",
"UNIPILE_EMAIL_ACCOUNT_ID": "<YOUR_UNIPILE_EMAIL_ACCOUNT_ID>"
}
}
}
}VS Code
{
"servers": {
"unipile": {
"command": "uvx",
"args": [
"mcp-server-unipile"
],
"env": {
"UNIPILE_BASE_URL": "<YOUR_UNIPILE_BASE_URL>",
"UNIPILE_API_KEY": "<YOUR_UNIPILE_API_KEY>"
}
}
}
}Cursor
{
"mcpServers": {
"unipile": {
"command": "uvx",
"args": [
"mcp-server-unipile"
],
"env": {
"UNIPILE_BASE_URL": "<YOUR_UNIPILE_BASE_URL>",
"UNIPILE_API_KEY": "<YOUR_UNIPILE_API_KEY>"
}
}
}
}