What linkedin-mcp-server does
The linkedin-mcp-server MCP server lets an MCP-compatible LLM call selected LinkedIn API operations through a local Node.js application. The documented interface includes get-profile, which accepts a profile public ID or URN ID, and search-people, which accepts search keywords plus optional company, industry, and location filters.
This project fits workflows that need an agent to retrieve LinkedIn profile data or pass structured search criteria to LinkedIn. The repository also describes broader business scenarios, but the README examples and tool configuration specifically document profile retrieval and people search.
How it works
The application is implemented with TypeScript and uses the Model Context Protocol, LinkedIn's API, OAuth 2.0, Zod validation, and Axios HTTP requests. An MCP client starts the compiled server process, and the server uses the configured LinkedIn application credentials when making API requests.
A typical workflow is to build the project, start the server, and let the client invoke one of the exposed tools. For example, an agent can submit keywords, a current-company filter, industry values, and a location to search-people, or provide a LinkedIn public ID or URN ID to get-profile.
Setup and configuration
The linkedin-mcp-server MCP server requires Node.js 16 or newer, a LinkedIn Developer account, and an MCP-compatible LLM client. Clone the repository, install its npm dependencies, build it with npm run build, and start it with npm start.
Set these environment variables in a .env file or in the MCP client's server configuration:
LINKEDIN_CLIENT_ID
LINKEDIN_CLIENT_SECRET
The README includes a Claude Desktop configuration that runs dist/index.js with Node and passes both variables through the env object. LinkedIn access tokens and authorization should be configured according to LinkedIn's current API documentation.
Tools and capabilities
get-profile: retrieves detailed LinkedIn profile information using a public ID or URN ID.
search-people: sends keyword, company, industry, and location criteria to the repository's people-search implementation.
- MCP tool exposure: makes these operations available to a compatible language-model client.
- Typed request handling: uses Zod in the TypeScript implementation for validation.
Limitations and notes
LinkedIn access rules determine what the server can actually do. Most developer applications cannot use the client_credentials two-legged OAuth flow; a member authorization-code flow may be required instead. Application-token access is reserved for approved LinkedIn enterprise or partner products.
The search-people implementation calls /v2/search/people, which the README identifies as an undocumented public endpoint. It is not expected to work with a standard developer token and should be treated as experimental or partner-only. LinkedIn's documented access is more limited, while broader people search may require an appropriate Talent, Sales, or other partner product.
Credentials should be sent in the OAuth request body rather than placed in URL query parameters. API permissions, rate limits, and product restrictions remain LinkedIn requirements; installing the MCP server does not grant access to restricted products or endpoints.