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 savedonce and never touched again. AI assistants are the first thing that canactually process a pile like that — summarize, triage, turn it into a to-dolist — 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 onMac, Chrome sync → desktop profile). There is no way for any third-party toolto read Safari bookmarks directly on iOS.
Install
No account, no API key, no configuration — the server works the moment it'sinstalled.
Claude Code:
claude mcp add -s user bookmarks -- npx -y bookmarks-mcp
Use -s user. The scope defaults to local, which only registers the serverfor the directory you ran the command in. Your bookmarks aren't tied to oneproject, 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 itsdependency parse-bookmarks (the two directories must be siblings), runnpm install in bookmarks-mcp, and point your client atnode /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 deepreads, which are tools to try, which feed a project I'm working on, andwhich should I finally let go? Give me a checklist for this week.
Or use the built-in triage_bookmarks prompt, which walks through exactlythat — including asking you to define what your saves usually become, sothe lanes are yours, not ours.
Guarantees
- Read-only. This server never writes to a browser file. There is nodelete tool. Your bookmarks cannot be harmed.
- Zero phone-home. No telemetry, no accounts, and not a single byte sentto 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 willbe declined:
- Preview-level extraction only.
fetch_page_previewanswers "is thisworth my time" — it is not a reader mode and never will be a full-fidelitycontent extractor. - Public web pages only. No proxies, no login walls, no special-casingfor X/YouTube/WeChat/etc. If a page needs auth to read, this tool isn't theway in.
- On-demand only. Nothing fetches in the background, ever. Every networkcall is a direct response to a tool call you made.
Roadmap
- Cloud sources behind user-supplied tokens (Raindrop, Readwise, …) — oneadapter 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 bothservers and your assistant sees everything. We only cover the places thathave no other bridge.
Who makes this
Built by the team behind Burn 451, a read-laterapp. This server is deliberately neutral: it reads your bookmarks for whateverassistant and whatever workflow you choose, and it never writes to them.
License
MIT