Tool reference · LinkedIn

search_linkedin_posts

Search LinkedIn posts by keywords — the conversations a market is having this week

read-onlyreaches LinkedInrate limited

Updated 2026-09-18 · Server 2.0.0

What it does

Find who is talking about a problem right now. A comment on that post is a warmer opening than a cold invite.

This tool drives a real LinkedIn account

It runs through a connected sender account in your workspace — not through a scraper and not through your own profile. Call list_sender_accounts first to see which identities are connected and healthy. If the workspace has none, this tool returns an error telling you so; accounts for agents covers how teams get one without risking their own profile.

Arguments

NameTypeRequiredMeaning
keywordsstringyesFree text
sort_bystringnorelevance (default) or date
date_postedstringnopast_day, past_week or past_month
content_typestringnovideos, images, documents, jobs, live_videos or collaborative_articles
limitnumberno1–49 (LinkedIn's default is 3)
cursorstringnoThe `cursor` from the previous page, to continue
accountstringnoSender account id or name to act as. Defaults to the healthiest connected account.

This table is generated from the literal inputSchema that tools/list returns, so what your client sees and what this page says are the same object:

inputSchema
{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "string",
      "description": "Free text"
    },
    "sort_by": {
      "type": "string",
      "description": "relevance (default) or date"
    },
    "date_posted": {
      "type": "string",
      "description": "past_day, past_week or past_month"
    },
    "content_type": {
      "type": "string",
      "description": "videos, images, documents, jobs, live_videos or collaborative_articles"
    },
    "limit": {
      "type": "number",
      "description": "1–49 (LinkedIn's default is 3)"
    },
    "cursor": {
      "type": "string",
      "description": "The `cursor` from the previous page, to continue"
    },
    "account": {
      "type": "string",
      "description": "Sender account id or name to act as. Defaults to the healthiest connected account."
    }
  },
  "required": [
    "keywords"
  ]
}

Request

Paste this, swap the key, and you have called the tool.

curl
curl -s https://topclozer.com/api/mcp \
  -H "Authorization: Bearer tcz_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_linkedin_posts",
      "arguments": { "keywords": "SOC 2 audit", "date_posted": "past_week", "sort_by": "date" }
    }
  }'

Returns

{ searchedAs, count, cursor, posts: [{ id, socialId, url, text, postedAt, author, counts }] }

The payload arrives inside an MCP content block — one text block whose body is this JSON, pretty-printed. Parse the string; there is no structured-content field.

payload
{ "searchedAs": "Marcus Feld", "count": 1, "cursor": "…", "posts": [{ "id": "7332…", "socialId": "urn:li:activity:7332…", "text": "Our SOC 2 audit took 4 months…", "author": { "name": "Dana Whitfield", "providerId": "ACoAAB1x…" }, "counts": { "reactions": 88, "comments": 21 } }] }

Rate limit

30 LinkedIn tool calls per 5 minutes, per workspace. Exceeding it returns HTTP 429 with JSON-RPC error -32002 and a Retry-After header. The budget is shared by every LinkedIn tool and counted per workspace, so minting a second key does not buy a second allowance.

The limit exists because an agent retrying in a loop is the request pattern that gets a LinkedIn account restricted, and a restricted account is a much worse outcome for you than a 429. Workspace tools do not spend this budget.

Related tools

All 65 tools are listed on the tool index. Connecting a client is on the Claude setup page, and the protocol details are on the server page.