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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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