HeyReach MCP Server
About
Integrates with the HeyReach API for LinkedIn automation and outreach management.
Details
- Author
- bcharleson
- Categories
- Communication, Other
Jump to
π Remote Usage (HTTP Streaming Transport)
# Via NPX npx heyreach-mcp-http # Via NPM Global Install npm install -g heyreach-mcp-server heyreach-mcp-http # Or with custom port heyreach-mcp-server --http --port=3001
# Health Check curl https://your-domain.com/health # MCP Endpoint with URL path authentication POST https://your-domain.com/mcp/{API_KEY} Headers: Content-Type: application/json Accept: application/json, text/event-stream # MCP Endpoint with header authentication (NEW!) POST https://your-domain.com/mcp Headers: Content-Type: application/json Accept: application/json, text/event-stream X-API-Key: YOUR_API_KEY # OR Authorization: Bearer YOUR_API_KEY
git clone https://github.com/bcharleson/heyreach-mcp-server.git cd heyreach-mcp-server npm install npm run build vercel --prod
docker build -t heyreach-mcp-server . docker run -p 3000:3000 heyreach-mcp-server
git clone https://github.com/bcharleson/heyreach-mcp-server.git cd heyreach-mcp-server npm install npm run build # Stdio mode npm start -- --api-key=YOUR_HEYREACH_API_KEY # HTTP mode npm run start:http
- --api-key=YOUR_API_KEY(required): Your HeyReach API key
- --base-url=CUSTOM_URL(optional): Custom base URL for the HeyReach API
heyreach-mcp-server --api-key=hr_1234567890abcdef --base-url=https://api.heyreach.io/api/public
- --httpor--http-server: Enable HTTP streaming transport
- --port=3000(optional): Port number (default: 3000)
# Start HTTP server heyreach-mcp-server --http --port=3001 # Or use dedicated HTTP binary heyreach-mcp-http --port=3001
NODE_ENV=production PORT=3000 CORS_ORIGIN=* ENABLE_DNS_REBINDING_PROTECTION=true
Add the following to your Claude Desktop configuration file:
macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "heyreach": { "command": "npx", "args": ](https://github.com/bcharleson/heyreach-mcp/blob/HEAD/deploy/DEPLOYMENT_GUIDE.md)[ "heyreach-mcp-server@2.0.0", "--api-key=YOUR_HEYREACH_API_KEY" ] } } }
β
CONFIRMED COMPATIBLE- All tools working with n8n community MCP node
- Install the community MCP node in n8n:n8n-nodes-mcp
- CreateMCP Client (STDIO)credentials in n8n:
{ "command": "npx", "args": [ "heyreach-mcp-server@2.0.0", "--api-key=YOUR_HEYREACH_API_KEY" ], "transport": "stdio" }
- AddMCP Clientnode to your workflows and select HeyReach credentials
- Choose from available tools for LinkedIn automation workflows
π NEW IN v2.0.0- For cloud-based n8n instances
- Deploy HeyReach MCP Server to cloud (Vercel, Railway, etc.)
- UseHTTP Requestnode in n8n:
{ "url": "https://your-deployment.vercel.app/mcp/{{$env.HEYREACH_API_KEY}}", "method": "POST", "headers": { "Content-Type": "application/json", "Accept": "application/json, text/event-stream" }, "body": { "jsonrpc": "2.0", "id": 1, "method": "tools/list" } }
Integrates with the HeyReach API for LinkedIn automation and outreach management.
AmodernModel Context Protocol (MCP) server withdual transport supportfor HeyReach LinkedIn automation. Supports both local (stdio) and remote (HTTP streaming) connections for maximum flexibility.
π HTTP Streaming Transport (Tested & Working)
- Header-based Authentication: SecureX-API-KEYheader authentication
- 83% Tool Success Rate: 5/6 core tools fully tested and working
- Session Management: Proper MCP session handling for HTTP transport
- One-Click Install: Cursor IDE integration with deeplink installation
- Docker Support: Multi-stage builds with security best practices
- Vercel & Railway: Ready-to-deploy configurations
- Health Monitoring: Built-in health check endpoints
- Session Management: Proper session handling for HTTP transport
- Latest MCP SDK: Updated to v1.17.0 with latest protocol support
- Security: DNS rebinding protection, CORS support, secure headers
- Backward Compatibility: Existing stdio usage unchanged
- Concurrent Sessions: Support for multiple simultaneous connections
Deploy your HeyReach MCP Server to the cloud instantly with automatic DNS rebinding protection configuration:
Perfect for n8n integration- Automatic environment configuration with${{RAILWAY_PUBLIC_DOMAIN}}.
π―Result:https://your-app.up.railway.appready for n8n integration
Global edge deployment- Instant HTTPS and custom domain support.
πPost-deployment: Follow theDeployment Guideto configure custom domains and test n8n integration.
β Available Tools (All Tested & Working)
- check-api-key- Verify API key validity
- get-all-campaigns- List all campaigns with pagination
- get-active-campaigns- Find campaigns ready for adding leads (ACTIVE status with LinkedIn senders)
- get-campaign-details- Get detailed campaign information(requires campaign ID)
- toggle-campaign-status- Pause or resume campaigns(requires campaign ID)
- add-leads-to-campaign- Add LinkedIn profiles to ACTIVE campaigns with comprehensive validation and personalization support
- get-lead-details- Get detailed lead profile information(requires LinkedIn profile URL)
- get-conversations- Retrieve LinkedIn conversations with advanced filtering
- get-overall-stats- Get comprehensive analytics and statistics
- get-all-lists- Retrieve all lead lists with pagination
- create-empty-list- Create new lead or company lists
- get-my-network-for-sender- Get network profiles for LinkedIn accounts(requires sender ID)
Get started instantly with Cursor's one-click MCP server installation:
Perfect for remote access and cloud deployment- Works with any deployed HeyReach MCP server.
- Click "Install in Cursor"button above
- Replace placeholdersin the generated config:
- YOUR_MCP_SERVER_URLβ Your deployed server URL (e.g.,https://your-app.up.railway.app)
- YOUR_HEYREACH_API_KEY_HEREβ Your actual HeyReach API key
For local development and testing- Runs HeyReach MCP server via npx.
- Click "Install Local in Cursor"button above
- Replace placeholderin the generated config:
- YOUR_HEYREACH_API_KEY_HEREβ Your actual HeyReach API key
π‘Tip: Use the Production HTTP setup for better performance and when sharing your MCP server with n8n or other tools.
npx heyreach-mcp-server --api-key=YOUR_HEYREACH_API_KEY
npm install -g heyreach-mcp-server heyreach-mcp-server --api-key=YOUR_HEYREACH_API_KEY
π Remote Usage (HTTP Streaming Transport)
# Via NPX npx heyreach-mcp-http # Via NPM Global Install npm install -g heyreach-mcp-server heyreach-mcp-http # Or with custom port heyreach-mcp-server --http --port=3001
# Health Check curl https://your-domain.com/health # MCP Endpoint with URL path authentication POST https://your-domain.com/mcp/{API_KEY} Headers: Content-Type: application/json Accept: application/json, text/event-stream # MCP Endpoint with header authentication (NEW!) POST https://your-domain.com/mcp Headers: Content-Type: application/json Accept: application/json, text/event-stream X-API-Key: YOUR_API_KEY # OR Authorization: Bearer YOUR_API_KEY
git clone https://github.com/bcharleson/heyreach-mcp-server.git cd heyreach-mcp-server npm install npm run build vercel --prod
docker build -t heyreach-mcp-server . docker run -p 3000:3000 heyreach-mcp-server
git clone https://github.com/bcharleson/heyreach-mcp-server.git cd heyreach-mcp-server npm install npm run build # Stdio mode npm start -- --api-key=YOUR_HEYREACH_API_KEY # HTTP mode npm run start:http
- --api-key=YOUR_API_KEY(required): Your HeyReach API key
- --base-url=CUSTOM_URL(optional): Custom base URL for the HeyReach API
heyreach-mcp-server --api-key=hr_1234567890abcdef --base-url=https://api.heyreach.io/api/public
- --httpor--http-server: Enable HTTP streaming transport
- --port=3000(optional): Port number (default: 3000)
# Start HTTP server heyreach-mcp-server --http --port=3001 # Or use dedicated HTTP binary heyreach-mcp-http --port=3001
NODE_ENV=production PORT=3000 CORS_ORIGIN=* ENABLE_DNS_REBINDING_PROTECTION=true
Add the following to your Claude Desktop configuration file:
macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "heyreach": { "command": "npx", "args": [ "heyreach-mcp-server@2.0.0", "--api-key=YOUR_HEYREACH_API_KEY" ] } } }
β
CONFIRMED COMPATIBLE- All tools working with n8n community MCP node
- Install the community MCP node in n8n:n8n-nodes-mcp
- CreateMCP Client (STDIO)credentials in n8n:
{ "command": "npx", "args": [ "heyreach-mcp-server@2.0.0", "--api-key=YOUR_HEYREACH_API_KEY" ], "transport": "stdio" }
- AddMCP Clientnode to your workflows and select HeyReach credentials
- Choose from available tools for LinkedIn automation workflows
π NEW IN v2.0.0- For cloud-based n8n instances
- Deploy HeyReach MCP Server to cloud (Vercel, Railway, etc.)
- UseHTTP Requestnode in n8n:
{ "url": "https://your-deployment.vercel.app/mcp/{{$env.HEYREACH_API_KEY}}", "method": "POST", "headers": { "Content-Type": "application/json", "Accept": "application/json, text/event-stream" }, "body": { "jsonrpc": "2.0", "id": 1, "method": "tools/list" } }
Option 3: MCP Client with Header Authentication (EASIEST!)
π NEW IN v2.0.3- Recommended for n8n users
- Deploy with one-click: Use theRailwayorVercelbuttons above
- Configure custom domain: Follow theDeployment Guide
- CreateMCP Client (HTTP)credentials in n8n:
- Endpoint:https://your-deployment.vercel.app/mcp
- Server Transport:HTTP Streamable
- Authentication:Header Auth
- Credential: Create a new credential with:
- Name:HeyReach MCP
- X-API-Key:YOUR_HEYREACH_API_KEY
Endpoint: https://heyreach-mcp-production.up.railway.app/mcp Server Transport: HTTP Streamable Authentication: Header Auth Credential: HeyReach MCP (X-API-Key: YOUR_API_KEY)
This method is much easier than URL path authentication and more secure!
π SeeN8N_AGENT_SETUP.mdfor complete workflow examples
For other MCP-compatible clients (Cursor, Windsurf, ChatGPT, etc.), use the following configuration:
{ "command": "npx", "args": [ "heyreach-mcp-server@2.0.0", "--api-key=YOUR_HEYREACH_API_KEY" ], "transport": "stdio" }
{ "mcp": { "servers": { "heyreach": { "command": "npx", "args": ["heyreach-mcp-server", "--api-key=YOUR_HEYREACH_API_KEY"] } } } }
{ "mcpServers": { "heyreach": { "command": "npx", "args": ["heyreach-mcp-server", "--api-key=YOUR_HEYREACH_API_KEY"] } } }
For n8n Agent compatibility, use environment variables for secure API key handling:
- Command:npx
- Arguments:heyreach-mcp-server@1.2.3
- Environment:HEYREACH_API_KEY=YOUR_HEYREACH_API_KEY
- Tool Parameters: Remove "Defined automatically by the model" and use:
={{ $fromAI('tool') === 'check-api-key' ? {} : $fromAI('Tool_Parameters', Based on the selected tool, provide the required parameters as a JSON object. If the tool requires no parameters, return an empty object {}, 'json') }}
- Log in to your HeyReach account
- Navigate to Settings > API Keys
- Generate a new API key
- Copy the API key and use it in the configuration
β οΈSecurity Note: Never commit your API key to version control. The server supports both:
- Command-line arguments(Claude Desktop):--api-key=YOUR_API_KEY
- Environment variables(n8n Agent):HEYREACH_API_KEY=YOUR_API_KEY
Verify that your HeyReach API key is valid and working.
{ "valid": true, "status": "API key is working correctly" }
Lists all campaigns in your HeyReach account with pagination.
- offset(number, optional, default: 0): Number of records to skip
- limit(number, optional, default: 50): Maximum campaigns to return (1-100)
{ "campaigns": [ { "id": 90486, "name": "Test Campaign", "status": "DRAFT", "creationTime": "2025-01-24T21:30:29.037886Z", "campaignAccountIds": [] } ], "pagination": { "page": 1, "limit": 50, "total": 6, "hasMore": false } }
Get detailed information about a specific campaign.
Prerequisites: Useget-all-campaignsfirst to get valid campaign IDs
- campaignId(number, required): Campaign ID from get-all-campaigns
Prerequisites: Useget-all-campaignsfirst to get valid campaign IDs
- campaignId(number, required): Campaign ID
- action(enum, required): "pause" or "resume"
- campaignId(string, required): Target campaign ID
- leads(array, required): Array of lead objects with:
- firstName(string, optional)
- lastName(string, optional)
- email(string, optional)
- linkedinUrl(string, optional)
- company(string, optional)
- position(string, optional)
Retrieve leads from a campaign with pagination.
- campaignId(string, required): Campaign ID
- page(number, optional, default: 1): Page number
- limit(number, optional, default: 50): Results per page
- leadId(string, required): Target lead ID
- message(string, required): Message content
- templateId(string, optional): Message template ID
- action(enum, required): "like", "follow", or "view"
- targetUrl(string, required): LinkedIn URL target
- leadId(string, optional): Associated lead ID
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




