npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

bookmarks-mcp

v0.1.0

Published

Your bookmarks, wherever they live, readable by your AI. Local read-only MCP server for Chrome, Edge, Brave, Arc, Vivaldi, Firefox, Safari (incl. Reading List) bookmarks and Pocket/Instapaper/Raindrop export files.

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_preview answers "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