Skip to main content
Glama

Give an Account Complimentary Access (operator only)

li_set_account_complimentary

OPERATOR ONLY. Grants (complimentary: true) or ends (false) COMPLIMENTARY access on ONE LinkedIn account — the same control as the "Complimentary" plan on the account's Plan tab. A complimentary account has every paid ability with no payment and no end date: it is always entitled, carries the paid lookup allowance, is never billed (the subscription's paid seats and the seat minimum count only the other accounts) but still COUNTS toward the team's account limit, and is never sent a trial-end, renewal or subscribe notice; the Razorpay webhook never changes it. To make a whole customer free use li_set_team_complimentary; an account of a free team cannot be ended here until the team's Free is turned off. reason is stored as the plan note (who/why) — give one. Ending it moves the account to what its dates say: still paid through a future date → active, a trial not yet over → trial, otherwise past due from now (new invites stop, follow-ups finish in the 14-day grace, and the team is asked to subscribe). Name the account explicitly by sessionLabel or sessionId; it never falls back to a default, and a name matching two accounts is refused. Current state is plan.complimentary in li_list_accounts.

Input Schema

NameRequiredDescriptionDefault
reasonNoWhy — stored on the account as the plan note, e.g. "internal account"
sessionIdNoAccount id (or use sessionLabel)
sessionLabelNoAccount label, LinkedIn name or profile slug, e.g. "Deven"
complimentaryYestrue = grant complimentary access, false = end it

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?

Annotations only supply readOnly=false, openWorld=false, destructive=false; the description goes far beyond by disclosing the full entitlement model on grant (always entitled, paid lookup allowance, never billed, seats counted only for other accounts, still counts toward team limit, no trial-end/renewal notices, Razorpay webhook never mutates it) and the exact state transition on end (active / trial / past due with 14-day grace and new invites stopping). This is exactly the behavioral context annotations cannot carry.

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 OPERATOR ONLY and the toggle semantics, then the entitlement consequences, then the alternative tool, then the naming rules — a sensible priority order. It is a dense single block (~150 words) and could be broken into bullets, but nearly every clause carries non-obvious operational meaning rather than filler.

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 4-parameter mutation tool with no output schema, the description covers granting, revoking, side effects, prerequisites, discovery of current state (plan.complimentary in li_list_accounts), and the sibling alternative route. An agent has everything needed to call it correctly and predict the outcome.

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 100%, so the baseline is 3, but the description adds semantics the schema does not: `reason` is stored as the plan note and should always be supplied, `complimentary` is a grant/end toggle, and account naming via sessionLabel/sessionId never falls back to a default and is refused if a name matches two accounts. That naming-ambiguity rule is genuinely beyond the schema text.

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 (grants/ends), a specific resource (COMPLIMENTARY access), and the exact scope (ONE LinkedIn account), then anchors it to a concrete UI equivalent (the 'Complimentary' plan on the account's Plan tab). It explicitly contrasts with li_set_team_complimentary, so an agent can distinguish it from the nearest sibling 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?

Names when to use it, when not to (use li_set_team_complimentary to make a whole customer free), and a concrete precondition ('an account of a free team cannot be ended here until the team's Free is turned off'). The OPERATOR ONLY constraint is front-loaded as the first words, so the agent knows the access requirement before deciding.

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