Proxycurl MCP Server
A Node.js-based Model Context Protocol server that exposes Proxycurl's LinkedIn data API, allowing MCP-compatible clients to access LinkedIn profile data, company information, and search for employees.
README Documentation
Proxycurl MCP Server
This is a Node.js-based Model Context Protocol (MCP) server that exposes Proxycurl's LinkedIn data API. It can be used with any MCP-compatible client (e.g., Claude Desktop) to access LinkedIn profile data, company information, and search for employees.
Features
- Look up LinkedIn profiles by URL
- Look up LinkedIn companies by URL
- Find people by name and company
- Search for employees at a company by role or keyword
Prerequisites
- Node.js (v14 or higher)
- A Proxycurl API key (get one at https://nubela.co/proxycurl/)
- An MCP-compatible client (e.g., Claude Desktop)
Installation
-
Clone this repository:
git clone https://github.com/dbogardus/proxycurl-mcp-server.git cd proxycurl-mcp-server -
Install dependencies:
npm install -
Install the MCP server globally:
npm install -g .
API Key Configuration
There are two ways to configure your Proxycurl API key:
Option 1: Environment Variable (for CLI usage)
Set the PROXYCURL_API_KEY environment variable:
export PROXYCURL_API_KEY=your_api_key_here
This is useful for development or when running the CLI directly.
Option 2: Example: Claude Desktop Configuration (recommended for Claude Desktop users)
To configure Claude Desktop to use this MCP server:
-
Open Claude Desktop
-
Click the settings (⚙️) icon in the top right
-
Select the "Model Context Protocol" tab
-
Click "Add MCP Configuration"
-
Enter the following information:
- Name:
Proxycurl LinkedIn API - Command:
npx - Args:
["proxycurl-mcp", "--api-key", "YOUR_ACTUAL_API_KEY"]
Example configuration in claude_desktop_config.json:
{ "mcpServers": [ { "name": "Proxycurl LinkedIn API", "command": "npx", "args": ["proxycurl-mcp", "--api-key", "YOUR_ACTUAL_API_KEY"] } ] } - Name:
-
Replace
YOUR_ACTUAL_API_KEYwith your Proxycurl API key (get one at https://nubela.co/proxycurl/) -
Click "Save"
-
Restart Claude Desktop to apply changes
Usage
Once configured, your MCP client will be able to access LinkedIn data through the following tools:
-
get_person_profile: Get a person's LinkedIn profile by URL- Example:
linkedinUrl: "https://www.linkedin.com/in/williamhgates" - Returns comprehensive profile data including experience, education, skills, certifications
- Example:
-
get_company_profile: Get a company's LinkedIn profile by URL- Example:
linkedinUrl: "https://www.linkedin.com/company/microsoft" - Returns detailed company data including description, size, industry, and specialties
- Example:
-
lookup_person: Find a person's LinkedIn profile by name and company- Important: Requires both name and company parameters for best results
- Example:
name: "Bill Gates", company: "microsoft.com" - Returns LinkedIn URL for the person if found
-
search_employees: Search for employees at a company with role and keyword filters- Example:
linkedinUrl: "https://www.linkedin.com/company/microsoft", role: "Software Engineer" - Returns list of employees with basic profile information
- Example:
-
search_companies: Search for companies by name or domain- Example:
query: "Microsoft"orquery: "microsoft.com", limit: 5 - Use this to find LinkedIn company URLs when you only have the company name
- Example:
-
search_people: Search for people on LinkedIn by keywords, title, company, and location- Example:
query: "data science", title: "Lead", companyDomain: "microsoft.com", location: "Seattle" - Use this for finding professionals based on skills, job titles, or industries
- Example:
-
advanced_search_companies: Advanced search for companies with detailed filtering options- Example:
country: "US", industry: "technology", employee_count_min: 1000, founded_after_year: 2010 - Much more powerful than basic company search with many filtering options
- Supports Boolean search expressions (AND, OR, NOT) in name and description fields
- Can return up to 10,000,000 results per search
- Example:
Development
To modify the server or add new features:
- Edit
server.jsto add or modify API endpoints - Run
npm install -g .to install your changes globally
Local Test Environment (test.env)
For local development and running test scripts (e.g., those in the tests/ directory) directly, you can use a test.env file in the project root to manage your API key and debug settings. This file is typically included in .gitignore and should not be committed to the repository.
Create a test.env file with the following content:
PROXYCURL_API_KEY=your_actual_proxycurl_api_key_here
Replace your_actual_proxycurl_api_key_here with your Proxycurl API key. The test scripts are often configured to load environment variables from this file if it exists.
License
MIT