Skip to main content
Glama

list_conversations

Read-onlyIdempotent

List LinkedIn messenger conversations (Voyager Messaging GraphQL), with optional archived, unread, starred filters and next_cursor paging — same as GET /api/linkedin/{account_id}/conversations. Each item returns conversation_id (the thread id — use this as conversation_linkedin_id when fetching messages or replying) and recipient_linkedin_id (the peer's fsd_profile id — use this as recipient_linkedin_id when sending a new message). Do not call this in a loop to wait for replies: the same read is refused if repeated within 60s, inbox reads are capped at 300 per account per day, and polling gets LinkedIn accounts restricted. Subscribe a webhook to message.received instead. Use for the classic LinkedIn inbox (this is the one that matters in 95% of cases); Sales Navigator threads are separate, see salesnav_list_messaging_threads.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoPage size.
unreadNoOnly conversations with unread messages.
starredNoOnly starred conversations.
archivedNoOnly archived conversations.
account_idYesReach id of the LinkedIn account to act on, from list_accounts.
next_cursorNoCursor returned by the previous page; omit for the first page.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoRequested page size (LinkedIn typically caps at 25).
itemsNo
unreadNoMatches query: unread filter (search query with ``read:false``).
starredNoMatches query: starred folder or client filter when combined.
archivedNoMatches query: archived folder (``category:ARCHIVE``) when not unread.
next_cursorNoPass as ``next_cursor`` for the following page when present.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, idempotent, and non-destructive, but the description adds critical behavioral context beyond them: a 60-second repeat-read refusal, a 300-read-per-day per-account cap, and the account-restriction risk of polling. It also explains how returned IDs should be reused downstream, which is not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The paragraph is front-loaded with the core listing action, followed by filter/paging scope, output-ID semantics, anti-polling guidance, and sibling routing. Every sentence carries operational weight, and no sentence is expendable for an agent deciding whether and how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description still adds necessary context about returned field usage and cross-tool references, while covering rate limits, polling alternatives, and sibling differentiation. Nothing an agent needs to invoke this correctly appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the six parameters. The description restates the filter set and paging cursor but adds no new semantic detail (defaults, interactions, validation) for the input parameters. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb (List) and resource (LinkedIn messenger conversations), then names the underlying GraphQL API and route. It explicitly distinguishes the classic inbox from Sales Navigator threads and points to the sibling tool for the latter, so an agent can route correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use, when-not-to-use, and alternative guidance: do not poll in a loop, subscribe to the message.received webhook instead, and use salesnav_list_messaging_threads for Sales Navigator. It also states rate-limit consequences, which directly shape safe invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources