Skip to content
Agentmart
Submit a tool

LinkedIn Toolkit

LinkedIn for AI agents from your own Chrome session: search, profiles, lists, outreach queue.

Connector by FormatixAI · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 13
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/formatixai-linkedin-toolkit

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

LinkedIn for AI agents from your own Chrome session: search, profiles, lists, outreach queue.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
24 read · 10 write · 0 delete · 6 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 40

Read from the source code; the running server may list different tools.

Read 24 · Look things up without changing anything.

  • linkedin_campaign_get
  • linkedin_campaign_list
  • linkedin_endpoints_check
  • linkedin_export_profiles
  • linkedin_get_company
  • linkedin_get_company_employees
  • linkedin_get_connection_status
  • linkedin_get_connections
  • linkedin_get_conversations
  • linkedin_get_event_attendees
  • linkedin_get_group_members
  • linkedin_get_messages
Show 12 more tools
  • linkedin_get_post_engagers
  • linkedin_get_profile
  • linkedin_get_status
  • linkedin_list_all
  • linkedin_list_get
  • linkedin_list_members
  • linkedin_queue_list
  • linkedin_research_get
  • linkedin_research_pack
  • linkedin_research_resolve
  • linkedin_search_people
  • linkedin_view_profile

Write 10 · Create, change, send or run things.

  • linkedin_campaign_create
  • linkedin_comment_post
  • linkedin_follow
  • linkedin_like_post
  • linkedin_queue_approve
  • linkedin_queue_reject
  • linkedin_send_inmail
  • linkedin_send_invite
  • linkedin_send_message
  • linkedin_sync

Not yet classified 6 · We could not tell from the name and description.

  • linkedin_campaign_enroll
  • linkedin_campaign_pause
  • linkedin_campaign_resume
  • linkedin_list_add
  • linkedin_list_create
  • linkedin_query_sql

Secrets and settings it asks for

Other settings (environment variables or headers).

  • LINKEDIN_TOOLKIT_HOME

Files it touches

  • Any path the agent passes to its tools

Tools (40)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • linkedin_campaign_create

    Create a multi-step outreach sequence (view, follow, invite, message, inmail, like, comment, wait, branch) over a list or explicit publicIds. Use it instead of firing individual writes when the touches should be spaced over days. Returns the Campaign; steps still obey every quota and the approval queue.

  • linkedin_campaign_enroll

    Enroll publicIds into an existing campaign. Use it to top up a running sequence with newly sourced people. Already-enrolled people are skipped; returns {enrolled, skipped}.

  • linkedin_campaign_get

    Fetch one campaign by campaignId including its stats. Use it to report on enrolled, sent, accepted, replied and positive counts per step.

  • linkedin_campaign_list

    List every campaign with its status. Use it to find campaignIds and see what is currently running or paused.

  • linkedin_campaign_pause

    Pause a campaign so no further steps execute. Use it immediately if replies look negative or a challenge was detected. Returns the updated Campaign.

  • linkedin_campaign_resume

    Resume a paused campaign from where it stopped. Returns the updated Campaign.

  • linkedin_comment_post

    Comment on a post by URL. Use it for public engagement before outreach; comments are queued for approval in Copilot mode because they are visible to everyone. Returns a WriteResult; pass dry_run to preview.

  • linkedin_endpoints_check

    Self-test every LinkedIn endpoint the extension uses; run this first when a tool returns LINKEDIN_ERROR. One read-only call per endpoint reports ok, failed, unverified or skipped, plus the LinkedIn client version the endpoint table was captured against, so you can tell "LinkedIn moved" from "the toolkit is broken". The search and profile reads it makes count against the normal daily caps.

  • linkedin_export_profiles

    Fetch many profiles in one call from a list of LinkedIn URLs. Use it to hydrate a list you already have URLs for. Returns profiles plus a failed array of {url, error}; each profile counts against the 500 visits/day cap, so keep batches modest.

  • linkedin_follow

    Follow a person without sending a connection invite. Use it when an invite would be too strong a first touch. This is a direct, metered action: it is paced and drawn from the visit bucket but never queued for approval, so the result status is "sent". Pass dry_run to preview.

  • linkedin_get_company

    Fetch a company page by URL or universalName. Use it for account research before outreach. Returns name, industry, size, HQ, website, description and follower count.

  • linkedin_get_company_employees

    List people who work at a company, by universalName. Use it for account-based sourcing once you know the company. Returns a page of profiles plus nextStart; results count against the daily search cap.

  • linkedin_get_connection_status

    Check whether the user is already connected to, or has a pending invite with, each of the given publicIds. Always call this before sending invites so you do not re-invite existing connections. Returns a map publicId to connected | pending | none.

  • linkedin_get_connections

    List the user's own first-degree connections. Use it to work an existing network rather than sending new invites. Returns a page of profiles plus nextStart.

  • linkedin_get_conversations

    List LinkedIn inbox threads, optionally only those since a timestamp or only unread. Use it to triage replies. Returns threads with participants, snippet, unread flag and sentiment when the extension has an AI provider configured.

Show 25 more tools
  • linkedin_get_event_attendees

    List attendees of a LinkedIn event you can see. Use it to source people around a conference or webinar. Returns a page of profiles plus nextStart.

  • linkedin_get_group_members

    List members of a LinkedIn group you belong to. Use it for niche sourcing. Returns a page of profiles plus nextStart.

  • linkedin_get_messages

    Fetch the messages in one thread by threadId. Use it after linkedin_get_conversations to read the full exchange before replying. Returns messages with sender publicId, body and sentAt.

  • linkedin_get_post_engagers

    List the people who liked or commented on a LinkedIn post. Use it to source warm leads who have shown intent. Returns engagers (a profile plus reaction or comment text) and nextStart.

  • linkedin_get_profile

    Fetch one profile by URL or publicId. Use it before writing an invite or message so the copy can reference real detail. Returns the Profile; with full=true it also captures the rendered page text, photo and experience/education, which costs one profile visit against the 500/day cap.

  • linkedin_get_status

    Check that the Chrome extension is connected and the user is logged in to LinkedIn. Call this first in any session and again after a rate-limit error; returns extension version, autopilot on/off, business-hours flag, per-quota usage (invite, message, visit, search), pending approval-queue size and campaign counts.

  • linkedin_like_post

    Like a post by URL. Use it as a low-risk warm-up touch before inviting the author. This is a direct, metered action: it is paced and drawn from the visit bucket but never queued for approval, so the result status is "sent". Unlike a comment, a like carries no words of yours. Pass dry_run to preview.

  • linkedin_list_add

    Add profiles (or bare publicIds) to a list. Use it to save search or engager results for later outreach. Duplicates are skipped; returns {added, duplicates}.

  • linkedin_list_all

    List every local list. Use it to discover listIds before adding members or creating a campaign. Returns all List records with their member counts.

  • linkedin_list_create

    Create a named local list to hold prospects. Use it as the container for search results before enrolling them in a campaign. Returns the List with its listId. Lists live only in the local extension storage.

  • linkedin_list_get

    Fetch one list by listId. Use it to confirm a list exists and how many members it holds. Returns the List record.

  • linkedin_list_members

    Page through the members of a list. Use it to read back what is in a list, including tags, whether each person was contacted before and any signals. Returns members plus total.

  • linkedin_query_sql

    Run a read-only SQL query against the local SQLite mirror of everything the toolkit has captured (tables: profiles, companies, searches, search_results, lists, list_members, campaigns, enrollments, actions, conversations, messages, events, packs). Use it for counting, filtering and joining across past work instead of re-scraping LinkedIn. Only a single SELECT or WITH statement is allowed and at most 1,000 rows are returned.

  • linkedin_queue_approve

    Approve queued writes by id so the extension sends them, optionally editing the note or body first. This works only when the user has turned Autopilot on: in the default Copilot mode approval is a human action and the extension answers UNAUTHORIZED, so show the queue with linkedin_queue_list and ask the user to approve in the popup. Returns {approved} immediately — the count marked approved, not sent. The extension then sends them one at a time at human pace, which takes seconds to minutes, so watch queue_item_sent events or poll linkedin_queue_list (status "sent" or "failed") rather than assu…

  • linkedin_queue_list

    List items in the human-approval queue, optionally filtered by status ("pending", "approved", "rejected", "sent" or "failed"). In Copilot mode every agent-originated write lands here first, so call this to show the user what is waiting, and poll it after linkedin_queue_approve to see what actually sent. Returns queue items with their action, params and target profile; a failed item carries result.error.

  • linkedin_queue_reject

    Reject queued writes by id so they are never sent. Like approving, this works only when the user has turned Autopilot on; in the default Copilot mode the extension answers UNAUTHORIZED and the user rejects in the popup. Returns {rejected}.

  • linkedin_research_get

    Poll a research job by jobId. Use it after linkedin_research_pack returned status "running". Returns {jobId, status, done, total, packs} with the packs finished so far.

  • linkedin_research_pack

    Turn a list of rows (name, LinkedIn URL, email, domain or company) into full research packs: resolved profile, company, recent posts, mutual connections, connection status, signals and a ready-to-read markdown brief per row. Use it as the one-shot "research these people for me" tool. The server waits for the job to finish and returns the packs; if it takes longer than the research timeout it returns {jobId, status:"running"} and you should poll linkedin_research_get.

  • linkedin_research_resolve

    Resolve messy rows (a name, an email, a company domain) to LinkedIn people or companies without doing the full research gather. Use it as a cheap first pass to check match quality before spending visits on linkedin_research_pack. Returns each row with kind, publicId or universalName, a confidence score and candidate profiles.

  • linkedin_search_people

    Search LinkedIn people and return structured profiles. Use it to build a candidate or prospect list from keywords plus optional title, company and location filters. Returns up to 100 profiles per call with nextStart for paging; the extension caps search results at 1,000 per day.

  • linkedin_send_inmail

    Send an InMail with a subject line (requires Premium, Sales Navigator or Recruiter). Counts against the message cap and queues for approval in Copilot mode. Returns a WriteResult; pass dry_run to preview.

  • linkedin_send_invite

    Send a connection invite, optionally with a note of at most 200 characters (LinkedIn's own limit; a longer note is refused with INVALID_PARAMS, so aim for 180 or fewer). Check linkedin_get_connection_status first. Hard cap 100 invites/day; in Copilot mode (the default) the invite is queued for human approval and the result status is "queued" rather than "sent". Note that on a free account LinkedIn allows only a few personalised (with-note) invitations a month, so prefer a note where it will count. Pass dry_run to preview the exact payload.

  • linkedin_send_message

    Send a direct message to a first-degree connection. Hard cap 150 messages/day; in Copilot mode it is queued for approval. Returns a WriteResult; pass dry_run to preview.

  • linkedin_sync

    Pull everything changed in the extension since the last sync into the local SQLite mirror. Call it before linkedin_query_sql so the database is current. Returns per-table row counts and the new sync timestamp.

  • linkedin_view_profile

    Visit a profile so the visit shows up in their "who viewed your profile". Use it as a light warm-up touch before an invite. This is a direct, metered action: it is paced and drawn from the visit bucket (500 visits/day) but never queued for approval, so the result status is "sent". Pass dry_run to preview.

Signals

Stars
13
Forks
5
Open issues
14
Last commit
Oct 9, 2026 (19 days ago)
Last release
Sep 30, 2026 (28 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.FormatixAI/linkedin-toolkit
Version
2.1.0
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from FormatixAI

Cite this page

LinkedIn Toolkit MCP server. Agent Mart. https://agentmart.dev/connectors/formatixai-linkedin-toolkit (last updated 2026-10-24)