bookmarks-mcp
A local, read-only MCP server that makes bookmarks from browsers, read-later apps, and export files accessible to AI assistants, enabling search, triage, and summarization without sending data anywhere.
README
bookmarks-mcp
Your bookmarks, wherever they live, readable by your AI.
Everyone saves. Browsers, read-later apps, that Pocket export from 2023 — capture is a solved problem. Processing is not: the average bookmark is saved once and never touched again. AI assistants are the first thing that can actually process a pile like that — summarize, triage, turn it into a to-do list — but they can't see it.
This is a local, read-only MCP server that fixes the "can't see it" part.
One command in your MCP client config. Zero accounts. Nothing is ever sent to us.
Sources
| Source | How | Notes |
|---|---|---|
| Chrome, Edge, Brave, Arc, Vivaldi, Chromium | reads each profile's local Bookmarks file |
every profile auto-detected |
| Safari (macOS) | reads ~/Library/Safari/Bookmarks.plist |
includes your Reading List; no extension can do this — Safari's extension API has no bookmarks surface |
| Firefox | reads places.sqlite per profile |
needs Node ≥ 22.5 (built-in sqlite); degrades gracefully below |
| Export files | Pocket CSV, Instapaper CSV, Raindrop CSV, browser HTML, URL lists | via parse-bookmarks |
Phone bookmarks: reachable once they sync to your desktop (iCloud → Safari on Mac, Chrome sync → desktop profile). There is no way for any third-party tool to read Safari bookmarks directly on iOS.
Install
No account, no API key, no configuration — the server works the moment it's installed.
Claude Code:
claude mcp add -s user bookmarks -- npx -y bookmarks-mcp
Use -s user. The scope defaults to local, which only registers the server
for the directory you ran the command in. Your bookmarks aren't tied to one
project, so register it account-wide.
Claude Desktop / Cursor / any MCP client (mcpServers JSON):
{
"mcpServers": {
"bookmarks": {
"command": "npx",
"args": ["-y", "bookmarks-mcp"]
}
}
}
To run from source instead (for development), clone this repo next to its
dependency parse-bookmarks (the two directories must be siblings), run
npm install in bookmarks-mcp, and point your client at
node /absolute/path/to/bookmarks-mcp/src/index.js.
macOS + Safari: the app hosting the server (Claude Desktop, your terminal)
needs Full Disk Access (System Settings → Privacy & Security), because
~/Library/Safari is protected. Chromium browsers and Firefox need nothing.
Tools
| Tool | What it does |
|---|---|
list_sources |
every bookmark source found on this machine |
list_bookmarks |
list, with folder filter + pagination |
search_bookmarks |
search titles / URLs / folders / tags |
recent_bookmarks |
"what did I save this week?" |
bookmark_stats |
the state of the pile: counts, age distribution, top domains |
parse_export_file |
parse a Pocket/Instapaper/Raindrop/HTML export from disk |
export_bookmarks |
everything out as Markdown, CSV, JSON, or importable browser HTML |
fetch_page_preview |
a few-hundred-token preview of a page (title, description, headings, excerpt) instead of the raw HTML — for when title/URL alone can't be triaged |
Turn the pile into a to-do list
The reason this exists. Ask your assistant:
Look at my bookmark stats, then help me triage: which of these become deep reads, which are tools to try, which feed a project I'm working on, and which should I finally let go? Give me a checklist for this week.
Or use the built-in triage_bookmarks prompt, which walks through exactly
that — including asking you to define what your saves usually become, so
the lanes are yours, not ours.
Guarantees
- Read-only. This server never writes to a browser file. There is no delete tool. Your bookmarks cannot be harmed.
- Zero phone-home. No telemetry, no accounts, and not a single byte sent to us. The server talks to exactly two places: your local bookmark files, and — only when you ask it to preview a page — the bookmarked site itself, directly from your machine.
- Clean output. Tool results are data. No ads, no upsells, ever.
Design boundaries
These are deliberate, not gaps waiting to be filled. PRs that cross them will be declined:
- Preview-level extraction only.
fetch_page_previewanswers "is this worth my time" — it is not a reader mode and never will be a full-fidelity content extractor. - Public web pages only. No proxies, no login walls, no special-casing for X/YouTube/WeChat/etc. If a page needs auth to read, this tool isn't the way in.
- On-demand only. Nothing fetches in the background, ever. Every network call is a direct response to a tool call you made.
Roadmap
- Cloud sources behind user-supplied tokens (Raindrop, Readwise, …) — one adapter per service. PRs welcome; an adapter is a single well-defined file.
- Services that already ship their own MCP server don't need us — run both servers and your assistant sees everything. We only cover the places that have no other bridge.
Who makes this
Built by the team behind Burn 451, a read-later app. This server is deliberately neutral: it reads your bookmarks for whatever assistant and whatever workflow you choose, and it never writes to them.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.