Summary
Add LinkedIn messaging support with 4 new MCP tools:
| Tool |
Description |
readOnlyHint |
get_inbox |
List recent conversations from messaging inbox |
true |
get_conversation |
Read a specific thread by username or thread_id |
true |
search_conversations |
Search messages by keyword |
true |
send_message |
Send a message to a LinkedIn user |
false |
Motivation
The server currently has 7 tools — all read-only. Messaging is a natural extension that enables AI assistants to read and respond to LinkedIn conversations. send_message is the first write operation in the server.
Implementation Notes
- Messaging tools don't follow the section-config pattern in
fields.py — each tool method navigates directly
- All tools use
_goto_with_auth_checks() and _extract_root_content(["main"]) for consistency
send_message navigates to the user's profile, clicks the "Message" button, types into the contenteditable compose box, and clicks send
send_message uses readOnlyHint: false to signal MCP clients to confirm before sending
- LinkedIn may restrict messaging to 1st-degree connections — the tool handles "Message" button absence gracefully
Files Changed
linkedin_mcp_server/scraping/extractor.py — 4 new public methods
linkedin_mcp_server/tools/messaging.py — new file with tool registration
linkedin_mcp_server/server.py — import + register messaging tools
linkedin_mcp_server/scraping/link_metadata.py — "messaging" reference kind
tests/test_tools.py, tests/test_scraping.py, tests/test_link_metadata.py — test coverage
README.md, manifest.json — documentation
Summary
Add LinkedIn messaging support with 4 new MCP tools:
readOnlyHintget_inboxtrueget_conversationtruesearch_conversationstruesend_messagefalseMotivation
The server currently has 7 tools — all read-only. Messaging is a natural extension that enables AI assistants to read and respond to LinkedIn conversations.
send_messageis the first write operation in the server.Implementation Notes
fields.py— each tool method navigates directly_goto_with_auth_checks()and_extract_root_content(["main"])for consistencysend_messagenavigates to the user's profile, clicks the "Message" button, types into the contenteditable compose box, and clicks sendsend_messageusesreadOnlyHint: falseto signal MCP clients to confirm before sendingFiles Changed
linkedin_mcp_server/scraping/extractor.py— 4 new public methodslinkedin_mcp_server/tools/messaging.py— new file with tool registrationlinkedin_mcp_server/server.py— import + register messaging toolslinkedin_mcp_server/scraping/link_metadata.py—"messaging"reference kindtests/test_tools.py,tests/test_scraping.py,tests/test_link_metadata.py— test coverageREADME.md,manifest.json— documentation