Skip to main content
Glama

Configure Auto-Withdraw of Stale Invites

li_set_auto_withdraw
Destructive

Turn the daily automatic withdrawal of an account's still-pending invites on or off, and set the age at which an invite is withdrawn (7-180 days, default 60). It is OFF for a new account and is turned on deliberately: LinkedIn names invitations that are "ignored, left pending, or marked as spam" as a restriction trigger, so once an account has been sending for a while the pending pile is the risk and this cleanup is the protection — but on day one there is no pile, and the only invitations a sweep could reach are ones the person sent by hand before they ever used this product. Withdrawing does NOT notify the recipient, but you cannot re-invite the same person for ~3 weeks afterwards. Separately, untracked decides whether the sweep also retires invites this system never sent — outreach the person did by hand — which is OFF for new accounts and should only be turned on if they ask. Read the current settings and the last run with li_list_accounts.

Input Schema

NameRequiredDescriptionDefault
enabledNoTurn the daily cleanup on or off
maxPerDayNoCap on how many invites ONE daily sweep withdraws (default 50, max 100), and the SHARED daily budget a manual li_withdraw_invites draws from too. The sweep runs once per 24h, so this is also the per-day rate: a 900-invite backlog takes ~18 days at 50/day. Bounded because every withdrawal is a real click in a browser session, so ~50 is roughly 15 minutes of browser time during which this account cannot send. For a large existing backlog prefer li_withdraw_invites, which drains on demand from the same budget.
sessionIdNoSending account id (or use sessionLabel)
untrackedNoAlso withdraw pending invites this system never sent — the ones found on LinkedIn's own sent-invitations list, i.e. the person's own manual outreach from before they used this product. OFF for new accounts on purpose: measured on a live account, one pass retired 50 invites of which NONE were ours. Only turn this on when the account holder has asked for their existing backlog to be cleaned.
sessionLabelNoSending account label, e.g. "Deven"
olderThanDaysNoWithdraw invites once they are older than this many days (default 60)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/openWorldHint annotations: withdrawal does not notify the recipient, re-inviting the same person is blocked for ~3 weeks, and every withdrawal is a real browser click (~50 ≈ 15 minutes during which the account cannot send). These are exactly the side-effect facts an agent needs before enabling a destructive, shared-budget sweep.

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

Conciseness4/5

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

Front-loaded with the primary action and its defaults; every sentence carries operational weight. The middle paragraph is a single long em-dash-heavy run-on that could be split for scanability, which is the only reason it isn't a 5.

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 destructive, multi-param configuration tool with no output schema, the description supplies defaults, prerequisites, side effects, and cross-tool routing. An agent has everything needed to decide whether and how to call it.

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

Parameters4/5

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

Schema coverage is already 100% and the schema itself is verbose, so much of the parameter prose (maxPerDay cap, untracked measurement) is duplicated. Still, the description adds framing the schema lacks: defaults (off for new accounts, 60 days), the decision rule for `untracked`, and the shared-budget interaction with li_withdraw_invites, which raises it above the baseline 3.

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?

Opens with a precise verb+resource: toggling the daily automatic withdrawal of an account's pending invites and setting the withdrawal age. The manual alternative (li_withdraw_invites) and the read path (li_list_accounts) are named, so the agent can place this tool relative to its siblings without opening schemas.

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?

Explicit when-to-use reasoning: OFF by default for new accounts, turned on deliberately once the pending pile becomes the restriction risk, and `untracked` only when the account holder asks. It also names li_withdraw_invites as the better path for a large backlog, giving a clear routing rule.

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