What it does
What a person has been saying, newest first. Separate from get_linkedin_profile because content research wants a history, not just the latest post, and paying for the profile fetch to get it is wasteful.
This tool drives a real LinkedIn account
Arguments
| Name | Type | Required | Meaning |
|---|---|---|---|
| profile | string | yes | Profile URL, public identifier or provider id |
| limit | number | no | How many posts, 1–20 (default 5) |
| account | string | no | Sender account id or name to read as. |
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:
{
"type": "object",
"properties": {
"profile": {
"type": "string",
"description": "Profile URL, public identifier or provider id"
},
"limit": {
"type": "number",
"description": "How many posts, 1–20 (default 5)"
},
"account": {
"type": "string",
"description": "Sender account id or name to read as."
}
},
"required": [
"profile"
]
}Request
Paste this, swap the key, and you have called the tool.
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": "get_linkedin_posts",
"arguments": { "profile": "example", "limit": 10 }
}
}'Returns
{ providerId, count, posts }. Each post: id, text, postedAt (epoch ms), isRepost, and reactions/comments when LinkedIn returns counters.
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.
{
"providerId": "ACoAAB1x…",
"count": 1,
"posts": [
{
"id": "urn:li:activity:7…",
"text": "We finally cut our p99 in half. The fix was not the database…",
"postedAt": 1789084800000,
"isRepost": false,
"reactions": 214,
"comments": 31
}
]
}Worth knowing
Returns an empty array — not an error — for a profile with no visible activity, which is the common case for senior buyers. Text is whitespace-collapsed. Reposts are included and flagged; filter on isRepost if you want original writing only.
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
get_linkedin_profile
Read one LinkedIn profile: identity, current role, followers, job-change signal and latest post
search_linkedin_people
Search LinkedIn for people matching an ICP, through a connected sender account
All 21 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.