Tool reference · LinkedIn

get_conversation

One LinkedIn conversation: who is in it (headline, degree) and its messages, oldest first

read-onlyreaches LinkedInrate limited

Updated 2026-09-18 · Server 2.0.0

What it does

Read the whole thread before answering in it.

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
conversation_idstringyesThe id from list_conversations
limitnumbernoHow many latest messages, 1–250 (default 30)
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": {
    "conversation_id": {
      "type": "string",
      "description": "The id from list_conversations"
    },
    "limit": {
      "type": "number",
      "description": "How many latest messages, 1–250 (default 30)"
    },
    "account": {
      "type": "string",
      "description": "Sender account id or name to act as. Defaults to the healthiest connected account."
    }
  },
  "required": [
    "conversation_id"
  ]
}

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": "get_conversation",
      "arguments": { "conversation_id": "1lb3…" }
    }
  }'

Returns

{ conversation, attendees: [{ providerId, name, isSelf, profileUrl, headline, networkDistance }], messages: [{ id, text, at, fromMe, senderProviderId, type, seen, edited, deleted, reactions, attachments }], cursor }

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
{ "conversation": { "id": "1lb3…", "name": "Dana Whitfield", "inbox": "classic", "unread": 1 }, "attendees": [{ "providerId": "ACoAAB1x…", "name": "Dana Whitfield", "isSelf": false }], "messages": [{ "id": "7Hq…", "text": "Sounds interesting — send me the deck?", "at": 1790000000000, "fromMe": false }], "cursor": null }

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.