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.
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.
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.
The catalogue lives in src/services/mcp-tools.ts and is the authoritative list. High-level breakdown:
get_my_profile, get_profile, get_profile_viewers, get_member_badges
search_people, search_companies, search_jobs, search_groups, search_content
get_conversations, get_conversation_messages, send_message, mark_conversation_read, delete_message, edit_message, react_to_message, forward_message, get_affiliated_mailboxes
send_connection_request, get_received_connections, accept_connection, get_relationship_status, follow_profile, withdraw_connection
like_post, comment_on_post, create_post, delete_comment, delete_post, get_notifications, get_post_reactions, get_post_comments, get_posts
get_feed, get_post
get_company, get_company_employees, find_employee_by_title, get_company_posts
get_groups, get_group_members
batch_read_profiles, batch_read_relationships
list_account_capabilities, get_account_capability, get_session_capabilities, get_network_summary, get_session_activity
edit_my_profile, get_my_followers, get_my_following
list_webhooks, get_webhook_deliveries
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.
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_commentEvery 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.
The MCP server (src/mcp-server.ts) is a thin adapter over the REST API:
MCP_TOOLS catalogue from src/services/mcp-tools.ts@modelcontextprotocol/sdk McpServer classVOYAGER_API_KEYWith 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.