Skip to content

feat(messaging): Add inbox, conversation, search, and send message tools #234

@5queezer

Description

@5queezer

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.pynew 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions