Give AI agents the LinkedIn tools to find, qualify, engage, and follow up with prospects.
io.salestouch/salestouch — Model Context Protocol (MCP) Server
This MCP server provides AI agents access to LinkedIn tools for prospecting workflows. It supports finding, qualifying, engaging, and following up with prospects, including research and audience building. Tool access is provided via an OAuth-protected remote endpoint, exposing multiple prospecting and outreach capabilities.
🛠️ Key Features
AI-native GTM prospecting functions
Tools for research and prospect qualification
Account, conversation, lookup, outreach, engagement, and publishing tools
Durable scheduling, queue, and paginated extraction
OAuth-protected remote endpoint
🚀 Use Cases
Research and qualify prospects
Build audiences for outreach
Start and manage conversations
Execute controlled LinkedIn outreach
Manage follow-ups after engagement
⚡ Developer Benefits
Structured tool support across the prospecting lifecycle
Paginated extraction for handling result sets
Durable scheduling and queued execution for follow-up workflows
⚠️ Limitations
Not affiliated with, endorsed by, or sponsored by LinkedIn
LinkedIn outreach for AI agents. SalesTouch is a LinkedIn MCP connecting Claude, Codex,
ChatGPT, Cursor, and other MCP-compatible agents to LinkedIn search, research,
conversations, messaging, engagement, publishing, durable scheduling, queues,
account controls, and paginated extraction through an OAuth-protected remote
endpoint.
SalesTouch is not affiliated with, endorsed by, or sponsored by LinkedIn.
Install
Claude Desktop, Cowork, or Claude Code
See the Claude installation guide, available in
English, French, German, Spanish, Brazilian Portuguese and Italian.
For local plugin installation, clone this public repository into
~/.cursor/plugins/local/salestouch, then reload Cursor. Open Settings →
Tools & MCPs, find salestouch, click Connect, and complete the SalesTouch
OAuth flow in your browser. Local plugin availability depends on organization
policy. Marketplace listing remains subject to Cursor review.
Alternatively, add this remote MCP configuration to .cursor/mcp.json in your
project or ~/.cursor/mcp.json for your user profile:
Authorize promptly: Cursor may stop waiting after 30 seconds. If that happens,
click Connect again and complete the new authorization flow. Once connected,
use the read-only account prompt below. Keep tool approvals enabled and review
recipients and content before allowing external actions.
The MIT plugin is free to install. The hosted SalesTouch service requires a
separate subscription. No LinkedIn credentials belong in the MCP configuration.
Use https://www.salestouch.io/api/mcp and name the server salestouch. The
client discovers the SalesTouch OAuth flow automatically; no static API key or
LinkedIn credential belongs in the MCP configuration.
OAuth and first check
The browser authorization flow grants scoped SalesTouch access. LinkedIn
passwords, cookies, and authentication secrets are never shared with the AI
client.
Verify the connection with a read-only request:
List the LinkedIn accounts connected to my SalesTouch workspace.
Example workflows
1. Research a lead without changing external state
Ask SalesTouch to look up a profile URL.
Ask for the profile's recent posts, then continue with next_cursor when older history is needed.
Ask the agent to summarize useful context and draft a message.
Review the draft; no message is sent until a mutation tool is authorized.
2. Review a conversation and send an exact reply
Search the conversation by profile URL.
Read the bounded message history.
Ask the agent to draft a reply without sending.
Confirm the recipient and exact text, then authorize linkedin_message.
3. Build a Sales Navigator audience from structured filters
Resolve ambiguous filter values with linkedin_sales_navigator_search_parameters.
Run scrape_sales_navigator_companies or scrape_sales_navigator_people with the returned ids.
To restrict people to extracted companies, pass the company result_id to scrape_sales_navigator_people as company_result_id.
Inspect the bounded preview, page with scrape_result_page, or use the signed CSV/JSONL export.
4. Turn post engagement into a paginated result
Provide a LinkedIn post URL.
Run scrape_linkedin_post_reactions or
scrape_linkedin_post_comments. Comment scraping extracts root commenters by default; pass include_replies: true only when reply authors are needed.
Read the bounded preview and stored result id.
If a comment result returns source_paging.exhausted: false, call scrape_linkedin_post_comments again with source_paging.arguments to continue the LinkedIn source extraction in the same reply mode. Large sources pause automatically after a bounded provider-request budget, so a call may return fewer profiles than limit without losing progress.
Use scrape_result_page only to page through profiles already stored by one scrape call.
Safety and limitations
Read tools are non-destructive and idempotent.
Messages, invitations, likes, comments, and publications modify LinkedIn and
are non-idempotent.
These write tools accept scheduled_for; SalesTouch persists the action and
reconnects a sleeping credential-based account when execution becomes due.
Cancelling a queued action modifies SalesTouch state and cannot be assumed
idempotent.
Availability depends on an active SalesTouch plan, a connected LinkedIn
account, platform availability, permissions, and usage limits.
SalesTouch does not bypass LinkedIn safeguards. Users are responsible for
reviewing targets and content and for complying with applicable platform
rules and law.
Troubleshooting
If OAuth fails, reconnect from the MCP client, confirm the endpoint, verify the
SalesTouch plan and connected account, then retry the read-only account check.
Never paste credentials, cookies, OAuth tokens, private messages, or prospect
data into a support request.