OneLin Bridge (MCP Server)
Bridge server for the OneLin LinkedIn Extension. This server allows AI agents (via the Model Context Protocol) to interact with a user's LinkedIn messaging tabs in real-time.
Protocol Contract
The bridge manages communication between an MCP Client (e.g. OpenClaw) and the Chrome Extension via a local WebSocket.
MCP Tools (Agent Interface)
get_status | None | Checks if the extension is connected and lists open LinkedIn tabs. |
get_conversation_context | tabId? | Retrieves conversation messages and prospect profile info from the current chat. |
get_draft | tabId? | Reads the current text in the LinkedIn message input field. |
write_reply | text, tabId? | Injects text into the message editor. |
send_message | tabId? | Clicks the LinkedIn 'Send' button. |
generate_reply | modeType?, modeName?, customInstruction?, tabId? | Delegate to the extension's built-in specialized LLM generation logic. |
list_linkedin_tabs | None | Lists all open LinkedIn tabs (id, url, title). |
Setup for Agents (e.g. Claude Desktop, OpenClaw)
Once this package is published to npm, it can be added to your client configuration:
{
"mcpServers": {
"onelin": {
"command": "npx",
"args": ["-y", "@crelora/onelin-bridge"]
}
}
}
How it works
- The Bridge (this server) runs locally and listens on
ws://localhost:3003.
- The Extension (via its offscreen doc) connects to the bridge.
- The Agent calls an MCP tool on the bridge.
- The Bridge serializes the command and sends it over the WebSocket to the extension.
- The Extension executes DOM actions on LinkedIn and returns the data back to the bridge.
Security
- The WebSocket server only binds to
localhost.
- Commands only affect tabs with
linkedin.com URLs.
- No LinkedIn credentials/cookies ever leave the browser.