MCP Server
MCP Server
Voyager ships an MCP server that exposes 60+ LinkedIn tools over the Model Context Protocol. Any MCP-compatible client — Claude Code, Claude Desktop, Cursor, or your own agent — can call LinkedIn and Sales Navigator through natural tool use.
The MCP server is the primary agent surface for Voyager. REST is available, but if you’re building on top of an LLM, MCP is what you want.
Setup
One-command install (recommended)
The Voyager dashboard’s Connect MCP card gives you a ready-to-paste claude_desktop_config.json snippet — it includes your tenant API key and default user ID, so it’s zero-config after paste. See li.scaleabm.org/dashboard.html.
Manual install
Clone the repo, install deps, and point your MCP client at the stdio server:
Then add to your client’s MCP config:
Smoke test before wiring into your client:
The server speaks JSON-RPC over stdio — no network ports are opened.
Tool Categories
The catalogue lives in src/services/mcp-tools.ts and is the authoritative list. High-level breakdown:
Profile (4)
get_my_profile, get_profile, get_profile_viewers, get_member_badges
Search (5)
search_people, search_companies, search_jobs, search_groups, search_content
Messaging (9)
get_conversations, get_conversation_messages, send_message, mark_conversation_read, delete_message, edit_message, react_to_message, forward_message, get_affiliated_mailboxes
Connections & network (6)
send_connection_request, get_received_connections, accept_connection, get_relationship_status, follow_profile, withdraw_connection
Engagement & posts (9)
like_post, comment_on_post, create_post, delete_comment, delete_post, get_notifications, get_post_reactions, get_post_comments, get_posts
Feed (2)
get_feed, get_post
Companies (4)
get_company, get_company_employees, find_employee_by_title, get_company_posts
Groups (2)
get_groups, get_group_members
Batch (2)
batch_read_profiles, batch_read_relationships
Capabilities & session (5)
list_account_capabilities, get_account_capability, get_session_capabilities, get_network_summary, get_session_activity
Profile editing (3)
edit_my_profile, get_my_followers, get_my_following
Webhooks (2)
list_webhooks, get_webhook_deliveries
Sales Navigator (7)
salesnav_search, salesnav_get_lead, salesnav_typeahead, salesnav_get_account, salesnav_get_account_employees, salesnav_save_lead, salesnav_search_companies
Sales Navigator tools require li_a and li_ep_auth_context cookies synced in your session. See the SalesNav guide for details.
Tool Annotations
The DESTRUCTIVE_TOOLS set in src/mcp-server.ts flags mutations with destructiveHint: true so MCP clients (Claude Code, Claude Desktop) can prompt before running them. Current list:
send_messagesend_connection_requestaccept_connectionfollow_profilewithdraw_connectionlike_postcomment_on_postcreate_postdelete_postdelete_comment
Every other MCP tool carries readOnlyHint: true.
A few write-shaped tools (mark_conversation_read, edit_my_profile, salesnav_save_lead) are currently annotated as read-only because they’re not in DESTRUCTIVE_TOOLS. Treat them as mutations in your agent logic and gate them with your own confirmation — don’t rely on the MCP client prompting.
Destructive tools perform real actions on LinkedIn. There is no undo for sent messages, connection requests, or published posts. Your agent should still confirm with the human before calling these — MCP hints are a second line of defence, not the only one.
Architecture
The MCP server (src/mcp-server.ts) is a thin adapter over the REST API:
- Loads the
MCP_TOOLScatalogue fromsrc/services/mcp-tools.ts - Registers each tool with the
@modelcontextprotocol/sdkMcpServerclass - Routes tool calls to the Voyager HTTP API using your
VOYAGER_API_KEY - Returns result JSON as the tool’s text content
Example Session
With the MCP server configured, you can describe intent in natural language:
The LLM picks tools, chains them, and formats results — you never write an API call by hand.