unipile-linkedin-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UNIPILE_API_KEY | Yes | Your Unipile API key | |
| UNIPILE_BASE_URL | Yes | Base URL for Unipile API (e.g., https://api13.unipile.com:14376/api/v1) | |
| UNIPILE_ACCOUNT_ID | Yes | Your Unipile account ID |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | List all connected LinkedIn accounts. Returns information about all accounts linked to your Unipile integration, including account IDs, status, and provider information. |
| get_my_profileA | Get the authenticated user's full LinkedIn profile. Returns comprehensive profile data including name, headline, summary, experience, education, skills, and more for the currently connected account. |
| search_peopleA | Search for people on LinkedIn using Classic LinkedIn filters. This is the standard LinkedIn search available to all users. Use get_search_params() to find valid IDs for location, industry, and company filters. Args: keywords: Free text search (name, title, company, etc.) location: List of location IDs (use get_search_params to find IDs) industry: List of industry IDs company: List of current company IDs past_company: List of past company IDs network_distance: Connection degree [1, 2, 3] - 1=1st degree, 2=2nd degree, 3=3rd+ profile_language: ISO language codes (e.g., ["en", "fr"]) limit: Max results per page (1-50, default 25) cursor: Pagination cursor from previous response Returns: Search results with profiles and pagination cursor |
| search_people_sales_navA | Search for people using LinkedIn Sales Navigator (requires Sales Nav subscription). Sales Navigator provides advanced filters not available in Classic LinkedIn. Use get_search_params() to find valid IDs for filters. Args: keywords: Free text search location: List of location IDs industry: List of industry IDs company: List of current company IDs past_company: List of past company IDs network_distance: Connection degree [1, 2, 3] profile_language: ISO language codes tenure: Years at current company, e.g., {"min": 1, "max": 5} seniority_level: Job levels (e.g., ["Director", "VP", "CXO"]) function: Job functions (e.g., ["Engineering", "Sales"]) company_headcount: Company size ranges, e.g., [{"min": 51, "max": 200}] changed_jobs: True to find people who recently changed jobs posted_on_linkedin: True to find active LinkedIn posters limit: Max results per page (1-100, default 25) cursor: Pagination cursor from previous response Returns: Search results with profiles and pagination cursor |
| search_companiesA | Search for companies on LinkedIn. Use get_search_params() to find valid IDs for industry and location filters. Args: keywords: Company name or description keywords industry: List of industry IDs location: List of location IDs (headquarters) headcount_min: Minimum employee count headcount_max: Maximum employee count has_job_offers: True to find companies currently hiring limit: Max results per page (1-50, default 25) cursor: Pagination cursor from previous response Returns: Search results with company profiles and pagination cursor |
| search_postsA | Search for LinkedIn posts/content. Args: keywords: Content keywords to search for (required) sort_by: "relevance" or "date" (default: relevance) date_posted: "past_day", "past_week", or "past_month" content_type: "videos", "images", or "documents" limit: Max results per page (1-50, default 25) cursor: Pagination cursor from previous response Returns: Search results with posts and pagination cursor |
| get_search_paramsA | Get valid parameter IDs for search filters. LinkedIn search filters require specific IDs (not names). Use this tool to look up the IDs for locations, industries, companies, etc. Args: param_type: Parameter type (case-insensitive) - one of: Common parameters: - "LOCATION" - Geographic locations - "INDUSTRY" - Industry categories - "COMPANY" - Companies - "SCHOOL" - Educational institutions - "PEOPLE" - People - "CONNECTIONS" - Connections - "SERVICE" - Services - "JOB_FUNCTION" - Job functions - "JOB_TITLE" - Job titles - "EMPLOYMENT_TYPE" - Employment types - "SKILL" - Skills Returns: List of valid parameter IDs and names for the specified type |
| get_profileA | Get a LinkedIn user's full profile by their provider ID. Args: provider_id: The LinkedIn provider ID (from search results or profile URL) sections: Optional list of sections to include. Available sections: - about - experience - education - skills - certifications - languages - volunteering_experience - projects - recommendations_received - recommendations_given If not specified, returns all available sections. Returns: Full profile data including requested sections |
| get_company_profileA | Get a company's LinkedIn profile/page details. Args: company_id: The LinkedIn company ID or vanity URL name Returns: Company profile data including description, industry, size, specialties, etc. |
| send_invitationA | Send a connection request to a LinkedIn user. Note: LinkedIn limits invitation messages to 300 characters. Daily limits apply: ~80-100/day for paid accounts, ~15/week for free. Args: provider_id: The LinkedIn provider ID of the person to connect with message: Optional personalized message (max 300 characters) Returns: Confirmation of invitation sent or error |
| list_invitations_sentA | List pending outbound connection requests. Args: limit: Max results per page (default 50) cursor: Pagination cursor from previous response Returns: List of pending sent invitations with recipient details |
| list_invitations_receivedA | List inbound connection requests awaiting response. Args: limit: Max results per page (default 50) cursor: Pagination cursor from previous response Returns: List of pending received invitations with sender details |
| accept_invitationA | Accept a received connection request. Args: invitation_id: The ID of the invitation to accept (from list_invitations_received) Returns: Confirmation of acceptance |
| decline_invitationA | Decline a received connection request. Args: invitation_id: The ID of the invitation to decline (from list_invitations_received) Returns: Confirmation of decline |
| cancel_invitationA | Withdraw a sent connection request that hasn't been accepted yet. Args: invitation_id: The ID of the sent invitation to cancel (from list_invitations_sent) Returns: Confirmation of cancellation |
| list_relationsA | List your 1st degree connections on LinkedIn. Args: limit: Max results per page (default 50) cursor: Pagination cursor from previous response Returns: List of connections with profile summaries |
| list_chatsA | List LinkedIn message conversations. Args: limit: Max results per page (default 50) cursor: Pagination cursor from previous response unread_only: If True, only return chats with unread messages Returns: List of chat conversations with latest message preview |
| get_chat_messagesA | Get messages from a specific chat conversation. Args: chat_id: The chat/conversation ID (from list_chats) limit: Max messages per page (default 50) cursor: Pagination cursor from previous response Returns: List of messages in the chat with sender info and timestamps |
| send_messageA | Send a message in an existing chat conversation. Use this for ongoing conversations with existing connections. For new conversations, use start_chat instead. Args: chat_id: The chat/conversation ID (from list_chats) text: The message content to send Returns: Confirmation with sent message details |
| start_chatA | Start a new conversation with one or more LinkedIn users. Use this to initiate messaging with 1st degree connections. For non-connections (2nd/3rd degree), use send_inmail instead. Args: attendees_ids: List of LinkedIn provider IDs to message text: The initial message content Returns: New chat details including chat_id for follow-up messages |
| send_inmailA | Send an InMail message to non-connections (requires LinkedIn Premium or Sales Navigator). InMail allows you to message 2nd and 3rd degree connections without connecting first. Uses InMail credits - check get_inmail_credits() first. Args: attendees_ids: List of LinkedIn provider IDs to message subject: InMail subject line (required for InMail) text: The message body content Returns: Confirmation with sent InMail details |
| get_inmail_creditsA | Check remaining InMail credits for the connected LinkedIn account. InMail credits are used when messaging non-connections. Premium users get a monthly allocation that varies by subscription tier. Returns: Current InMail credit balance and any additional quota info |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bhaktatejas922/unipile-linkedin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server