# linkedincli MCP server

> Lets an AI client manage a LinkedIn account from the terminal: read profiles, post content, message, connect, and search.

- Repository: https://github.com/bcharleson/linkedincli
- Page: https://hostedmcp.org/servers/bcharleson/linkedincli
- Transport: —
- Stars: 74
- License: MIT

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `LINKEDIN_CURL_IMPERSONATE_BIN` | no | no |  |
| `LINKEDIN_FROM_CHROME` | no | no |  |
| `LINKEDIN_HTTP` | no | no |  |
| `LINKEDIN_JSESSIONID` | no | no |  |
| `LINKEDIN_LI_AT` | no | no |  |

## FAQ

### How do I authenticate linkedincli to LinkedIn?

It uses cookie session auth: either read cookies from a local Chrome profile, or paste the li_at and JSESSIONID cookies manually. Credentials resolve from flags, environment variables, or ~/.linkedin-cli/config.json.

### Can I use linkedincli from a cloud VM or remote agent?

No. A live LinkedIn session must run on a local machine; cloud agents may only install the CLI or call an MCP server already running locally.

### What can I do with the linkedincli MCP server?

All 43 commands are exposed as MCP tools for Claude Code, Cursor, and Windsurf, covering profiles, posts, messaging, connections, search, feed, and analytics.

### Why does my LinkedIn session get invalidated?

LinkedIn often rejects the default Node fetch TLS fingerprint and kills the li_at cookie on the first call. Two local-only workarounds are curl-impersonate transport and reading cookies from Chrome.

### Can I search LinkedIn posts with linkedincli?

No, post search is unavailable because LinkedIn's CONTENT result type only returns a feedback card. You can list posts from a known author with profile posts instead.
