Skip to main content
Glama

LinkMCP: hosted LinkedIn MCP server

Send Message

linkedin_send_message
Destructive

Send a LinkedIn message from the user's own account. Use this to write to a person (pass recipient_identifier: their profile URL, public ID or URN) or to reply in an existing conversation (pass chat_id from linkedin_list_conversations). Supports InMail for people who are not connections. A Sales Navigator InMail (linkedin_api: sales_navigator) has a subject line: pass subject, or LinkMCP uses the first words of the message. A new conversation returns its chat_id, so you can reply in it later.

Input Schema

NameRequiredDescriptionDefault
textYesMessage text. Must not be empty.
inmailNoSend as InMail for non-connections. Only with recipient_identifier.
chat_idNoChat ID for replying to existing conversation. Mutually exclusive with recipient_identifier.
subjectNoSubject line of a Sales Navigator InMail (linkedin_api: sales_navigator). Only with recipient_identifier. If you leave it out, LinkMCP uses the first words of the message (up to 60 characters). Other messages have no subject.
linkedin_apiNoLinkedIn API to use. Only with recipient_identifier.
recipient_identifierNoLinkedIn profile URL, public ID, or URN. For starting a new conversation. Mutually exclusive with chat_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / subject
      Added value: +{
      +  "description": "Subject line of a Sales Navigator InMail (linkedin_api: sales_navigator). Only with recipient_identifier. If you leave it out, LinkMCP uses the first words of the message (up to 60 characters). Other messages have no subject.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: InMail eligibility for non-connections, the automatic subject derivation (first words of the message, up to 60 characters) when subject is omitted, and that a new conversation returns a chat_id for later replies. It does not mention irreversibility of a sent message or any rate limiting, which keeps it from a 5.

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?

The definition is front-loaded with purpose and mode selection, then moves to the Sales Navigator edge case and the return value. Nearly every sentence carries information, though the subject-derivation rule is stated twice (description and schema), which is mild waste.

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

Completeness4/5

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

For a six-parameter mutation tool with no output schema, the description covers both call paths, the InMail/Sales Navigator special case, and the returned chat_id. What remains unaddressed is failure behavior — what happens when InMail is unavailable or the recipient cannot be resolved — which would help an agent recover from errors.

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 meaning on top: it enumerates the accepted forms of recipient_identifier (profile URL, public ID, URN), ties chat_id to its source tool, and scopes subject to Sales Navigator InMail only while explaining the fallback. The duplication of the subject fallback with the schema text is the only redundancy.

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 first sentence gives a specific verb and resource (send a LinkedIn message) scoped to the user's own account. It then explicitly separates the two operating modes — new message to a person vs. reply in an existing chat — and names the sibling tool (linkedin_list_conversations) that supplies the chat_id. An agent can distinguish this from linkedin_send_connection_request or linkedin_comment_on_post without opening the schema.

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

Usage Guidelines4/5

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

It clearly routes between the two modes: pass recipient_identifier to write to a person, pass chat_id to reply, and the schema confirms they are mutually exclusive. It also flags InMail as the path for people who are not connections. It stops short of naming alternatives for the non-connected case (e.g. sending a connection request first) or stating when not to send at all.

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.