Skip to main content
Glama

Accepted, Awaiting First Message

li_accepted_pending_message
Read-only

List contacts whose invite was ACCEPTED but whose first message has not gone out yet — the Day-1 starter queue. Normal for connectionWaitHours (24h by default) after acceptance, and longer outside the account's sending hours; the worker sends them by itself. DB-backed and instant; up to limit rows (default 100), and truncated says when there are more. Openers already past due are li_due_messages; every timed step is li_scheduled_steps; to record new acceptances first, li_poll_acceptances.

Input Schema

NameRequiredDescriptionDefault
limitNoMost rows to return (default 100); `truncated` says when there are more
sessionIdNoLimit to one account by id (li_list_accounts). Needed (or sessionLabel) when you have more than one account.
sessionLabelNoLimit to one account by label, LinkedIn name, profile slug or member id. Needed (or sessionId) when you have more than one account.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Most rows to return (default 100); `truncated` says when there are more"
    • changedInput schema / properties / sessionId / description
      Previous value: -"Scope to one account id"New value: +"Limit to one account by id (li_list_accounts). Needed (or sessionLabel) when you have more than one account."
    • changedInput schema / properties / sessionLabel / description
      Previous value: -"Scope to one account label (omit for all accounts)"New value: +"Limit to one account by label, LinkedIn name, profile slug or member id. Needed (or sessionId) when you have more than one account."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds genuinely useful behavior beyond that: DB-backed and instant, the worker sends these by itself (no manual send needed), and results are capped with a `truncated` signal. It stops short of describing row fields, but that is a minor gap.

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?

Front-loads the core purpose, then timing behavior, then the alternative-tool routing, in compact sentences with no filler. Every clause carries information an agent would otherwise have to infer.

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?

For a read-only list tool with no output schema, the description still discloses result sizing (limit default 100) and the truncation signal, plus the routing to sibling tools. Nothing needed to call it correctly is 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 documents limit, sessionId, and sessionLabel fully (including the default and how to resolve ids). The description restates the limit/truncated behavior but adds no syntax or format detail beyond the schema. Baseline 3 is correct when structured data 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?

States a specific verb and resource with an exact scope: contacts whose invite was ACCEPTED but first message not yet sent (the Day-1 starter queue). It names the sibling it is not (li_due_messages for past-due openers) so an agent can disambiguate 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?

Explicitly routes to alternatives with the selecting condition: past-due openers go to li_due_messages, timed steps to li_scheduled_steps, and new acceptances are recorded via li_poll_acceptances. It also explains when rows naturally appear (connectionWaitHours / sending hours), which is the 'when this is normal' context an agent needs.

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