135 lines
6.3 KiB
JSON
135 lines
6.3 KiB
JSON
{
|
|
"id": "linkedin",
|
|
"name": "LinkedIn",
|
|
"type": "mcp_local",
|
|
"scope": "user",
|
|
"launch_command": "python3 server.py",
|
|
"transport": "stdio",
|
|
"requires": [
|
|
"PYTHON",
|
|
"ENV"
|
|
],
|
|
"dependencies": [
|
|
"mcp-server-linkedin==4.20.1"
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "LINKEDIN_LI_AT",
|
|
"label": "LinkedIn session cookie (li_at)",
|
|
"description": "Sign in to LinkedIn in your browser, then open DevTools > Application > Cookies > https://www.linkedin.com and copy the VALUE of the li_at cookie. This is a full credential for your account: anyone holding it is signed in as you. Signing out of that browser invalidates it.",
|
|
"required": true,
|
|
"secret": true,
|
|
"example": "AQEDAT...."
|
|
},
|
|
{
|
|
"name": "LINKEDIN_USER_AGENT",
|
|
"label": "Browser user agent (recommended)",
|
|
"description": "The user agent of the browser you copied the cookie from — paste what navigator.userAgent prints in that browser's console. LinkedIn ties a session to the browser fingerprint it was issued to, so matching it makes the session far less likely to be challenged.",
|
|
"required": false,
|
|
"secret": false,
|
|
"example": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "LINKEDIN_JSESSIONID",
|
|
"label": "JSESSIONID cookie (optional)",
|
|
"description": "The JSESSIONID cookie from the same browser. Not required — supply it only if some actions are refused without it.",
|
|
"required": false,
|
|
"secret": true,
|
|
"example": "ajax:1234567890123456789"
|
|
},
|
|
{
|
|
"name": "LINKEDIN_TOOL_TIMEOUT",
|
|
"label": "Tool timeout (seconds)",
|
|
"description": "Max time one LinkedIn tool call may run before being aborted. Page scrapes are slower than API calls; raise this if searches time out. Default: 180.",
|
|
"required": false,
|
|
"secret": false,
|
|
"default": "180",
|
|
"example": "180"
|
|
},
|
|
{
|
|
"name": "LINKEDIN_LOG_LEVEL",
|
|
"label": "Log level",
|
|
"description": "Verbosity of the server's own diagnostics on stderr. Raise to DEBUG when troubleshooting a session that will not authenticate. Default: WARNING.",
|
|
"required": false,
|
|
"secret": false,
|
|
"default": "WARNING",
|
|
"example": "WARNING"
|
|
}
|
|
],
|
|
"verify": {
|
|
"command": "python3 verify.py",
|
|
"timeout_secs": 30
|
|
},
|
|
"setup_instructions": [
|
|
"Skald installs the dependencies automatically (pip install -r requirements.txt).",
|
|
"Sign in to LinkedIn in your normal browser.",
|
|
"Open DevTools (F12) > Application > Cookies > https://www.linkedin.com, find li_at and copy its value into the form. Copy the value only, without the 'li_at=' prefix.",
|
|
"Recommended: in the same browser's console run navigator.userAgent and paste the result into the user agent field, so the session is replayed under the fingerprint it was issued to.",
|
|
"Skald checks the cookie against LinkedIn before saving; an expired or mistyped cookie is rejected while the form is still open.",
|
|
"On the first tool call the connector downloads its own Chromium (~350 MB) into browsers/ and replays the session into a browser profile derived for this machine.",
|
|
"The cookie is invalidated when you sign out of the browser you copied it from, and expires on its own after some months — paste a fresh one when tools start failing to authenticate."
|
|
],
|
|
"docs": [
|
|
{
|
|
"lang": "en",
|
|
"description": "Read and act on LinkedIn through your own logged-in session: people and company profiles, job search and details, saved jobs, the feed, post search, and the full messaging inbox (read, search and send). Runs a real headless Chromium against linkedin.com rather than an API, so it sees exactly what you see, and authenticates from a session cookie you paste into the settings — no browser window ever opens on the server. Note that automating LinkedIn is against its Terms of Service and carries a real risk of account restriction; use an account you are willing to lose.",
|
|
"llm_short_description": "LinkedIn — search and read people, companies, jobs and posts, browse the feed, and read, search and send messages, all through the user's own LinkedIn session."
|
|
}
|
|
],
|
|
"tools": [
|
|
{ "name": "get_person_profile", "display_name": "Get Person Profile" },
|
|
{ "name": "get_my_profile", "display_name": "Get My Profile" },
|
|
{ "name": "search_people", "display_name": "Search People" },
|
|
{ "name": "get_sidebar_profiles", "display_name": "Get Suggested Profiles" },
|
|
{ "name": "connect_with_person", "display_name": "Send Connection Request" },
|
|
{ "name": "get_company_profile", "display_name": "Get Company Profile" },
|
|
{ "name": "search_companies", "display_name": "Search Companies" },
|
|
{ "name": "get_company_posts", "display_name": "Get Company Posts" },
|
|
{ "name": "get_company_employees", "display_name": "List Company Employees" },
|
|
{ "name": "search_jobs", "display_name": "Search Jobs" },
|
|
{ "name": "get_job_details", "display_name": "Get Job Details" },
|
|
{ "name": "get_saved_jobs", "display_name": "Get Saved Jobs" },
|
|
{ "name": "get_feed", "display_name": "Get Feed" },
|
|
{ "name": "search_posts", "display_name": "Search Posts" },
|
|
{ "name": "get_inbox", "display_name": "Get Inbox" },
|
|
{ "name": "get_conversation", "display_name": "Read Conversation" },
|
|
{ "name": "search_conversations", "display_name": "Search Messages" },
|
|
{ "name": "send_message", "display_name": "Send Message" },
|
|
{ "name": "close_session", "display_name": "Close Browser Session" }
|
|
],
|
|
"mcp_config": {
|
|
"command": "python3",
|
|
"args": [
|
|
"server.py"
|
|
],
|
|
"transport": "stdio",
|
|
"env": {
|
|
"LINKEDIN_LI_AT": "{SECRET:LINKEDIN_LI_AT}",
|
|
"LINKEDIN_JSESSIONID": "{SECRET:LINKEDIN_JSESSIONID}",
|
|
"LINKEDIN_USER_AGENT": "{ENV:LINKEDIN_USER_AGENT}",
|
|
"TOOL_TIMEOUT": "{ENV:LINKEDIN_TOOL_TIMEOUT}",
|
|
"LOG_LEVEL": "{ENV:LINKEDIN_LOG_LEVEL}"
|
|
}
|
|
},
|
|
"auth": {
|
|
"type": "api_key",
|
|
"delivery": "env",
|
|
"param": "LINKEDIN_LI_AT"
|
|
},
|
|
"homepage": "https://github.com/stickerdaniel/linkedin-mcp-server",
|
|
"icon_small": "icon_sm.png",
|
|
"icon_large": "icon_lg.png",
|
|
"tags": [
|
|
"linkedin",
|
|
"mcp",
|
|
"local",
|
|
"social",
|
|
"jobs",
|
|
"messaging",
|
|
"browser"
|
|
],
|
|
"version": 1,
|
|
"version_string": "1.0.0",
|
|
"version_release_date": "2026-08-07"
|
|
}
|