Send Message
send_messageCompose and send a new LinkedIn direct message to a messageable recipient via profile-based targeting; not for replying in existing recruiter, InMail, or messaging threads.
Instructions
Compose and send a new message to a LinkedIn user.
Profile-based targeting opens LinkedIn's compose flow. It is not a safe reply path for an existing recruiter/InMail or messaging thread: it may create a separate DM even after you inspect that thread with get_conversation or search_conversations. Those tools only read an existing thread; they do not send a reply. Until a thread-targeted send path is available, do not treat profile-based send_message as a reply.
The recipient must be directly messageable from the profile page. If LinkedIn does not expose a normal Message action, use connect_with_person first, then retry send_message only after the connection request is accepted. Recipient authorization comes from validating one recipient-specific Message action carrying the target URN, then following its browser navigation and pinning the exact final route. Visible profile links or recipient URNs in the composer are optional corroboration; any contradiction fails closed. No Voyager or other private API is used. This is a write operation when confirm_send is True.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"linkedin_username": "<linkedin_username>",
"message": "<message>",
"confirm_send": "<confirm_send>"
},
"name": "send_message"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Single-line message text to send. C0 control characters and DEL are rejected, including CR, LF, and tab. | |
| profile_urn | No | Optional profile URN (e.g. ACoAAB...) to verify against the URN exposed by the loaded profile before opening its Message action. It never bypasses recipient verification. Obtain via get_person_profile. Note: inbox may not always show all messages; use search_conversations as a fallback. | |
| confirm_send | Yes | Must be True to send the message | |
| linkedin_username | Yes | LinkedIn username of the recipient; a full profile URL is accepted too |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||