Skip to content

linkwarden-mcpYour bookmarks, readable by an assistant

An MCP server for Linkwarden — search a bookmark collection, keep it organised, and read the article text of a page Linkwarden has already preserved.

linkwarden-mcp
How linkwarden-mcp sits between an MCP client and LinkwardenAn MCP client speaks stdio to linkwarden-mcp, which calls the Linkwarden REST API over HTTPS. Linkwarden stores bookmarks and preserved copies of pages.MCP clientClaude, Codex, …linkwarden-mcp28 tools · allowlisted outputasks a personLinkwardenbookmarks + archivesstdioHTTPS/api/v1preserved pages: readable text, PDF,screenshot, single-file HTML
The server holds no state of its own beyond short-lived approvals.

See it run ​

Terminal recording: the tool count, a search paired with the preserved article text of a saved link, and a first delete_link call answered with a confirmation token instead of a deletion

In one command ​

sh
claude mcp add linkwarden \
  -e LINKWARDEN_URL=https://links.example.net \
  -e LINKWARDEN_TOKEN=… \
  -- npx -y linkwarden-mcp

Then ask for something you saved months ago:

"What did that article I bookmarked about the Model Context Protocol actually say about transports?"

The assistant searches your collection, finds the link, and reads the copy Linkwarden preserved — even if the original page has since changed or gone.

A token is an account, not a scope

Linkwarden has no per-token permissions: a token carries everything the account that created it can do. Create a dedicated account with access only to the collections this server should see. See Security.

Running it elsewhere ​

A client that cannot spawn a local process — ChatGPT connectors, Claude on the web, Cursor, LibreChat — cannot start linkwarden-mcp the way Claude Code does. mcp-hub is the bridge: one container serves many stdio MCP servers over Streamable HTTP, with an OAuth 2.1 login behind a single password and long-lived tokens for the clients that cannot do OAuth. Its /hub endpoint puts every server behind six meta-tools, so one connector reaches all of them without N×tool schemas in the model's context, and it speaks both protocol revisions — a question this server asks travels through it to the person at the far end instead of ending at the gateway.

Its configuration is Claude Code's mcpServers format, so the entry you already have is the entry it takes: Through mcp-hub.

Released under the MIT License.