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

hf-papers-mcp

v1.1.0

Published

MCP server for Hugging Face papers — search, daily digests, metadata, citations, and indexing. Pure Node, no Python required.

Readme

An MCP server that lets your assistant read Hugging Face Papers — search them, pull the daily curated list, fetch metadata, and generate citations.

Ask "what shipped on speculative decoding this week?" and get real papers with upvote counts and abstracts, instead of whatever was in the model's training data.

Demo: daily papers, keyword search, and BibTeX citation over MCP

(Recorded with vhs via vhs demo.tape — the session runs bin/demo.js, a real MCP client against the live API.)

Install

Point your MCP client (Claude Desktop, Claude Code, or any MCP host) at it:

{
  "mcpServers": {
    "hf-papers": {
      "command": "npx",
      "args": ["-y", "hf-papers-mcp"]
    }
  }
}

Or from source: git clone https://github.com/QEbellavita/hf-papers-mcp and point command: node, args: [/absolute/path/to/hf-papers-mcp/server.js] at the checkout.

Pure Node (>= 18), one dependency (@modelcontextprotocol/sdk), no Python. No API key needed — everything is a public read. If HF_TOKEN is set (or you're logged in via hf auth login), it's sent along, which helps with rate limits.

Tools

| Tool | What it does | |---|---| | hf_papers_search | Search papers by keyword | | hf_papers_daily | The daily curated list, optionally for a past date | | hf_papers_info | Full metadata for an arXiv ID — title, authors, abstract, URLs | | hf_papers_citation | BibTeX, APA or MLA | | hf_papers_check | Whether a paper is indexed on HF | | hf_papers_index | Trigger indexing of an arXiv paper on HF |

Example

> what were the top papers on Hugging Face yesterday?

  [1] Domino: Decoupling Causal Modeling from Autoregressive Drafting
      in Speculative Decoding
      arXiv: 2605.29707  |  Upvotes: 152

Bulk digests

Pull a date range in one go:

node bin/daily.js 2026-07-01 2026-07-14

Writes JSON keyed by date to /tmp/, and records the window in .hf_papers_last_run.json so a bare node bin/daily.js picks up where the last run finished.

Tests

npm test                      # hermetic — no network
HF_PAPERS_E2E=1 npm test      # adds live API tests

The default suite is offline and covers tool definitions plus a real MCP handshake over stdio. The live tests hit the Hugging Face API and assert that responses come back as parsed JSON — a regression guard, because diagnostics written to stdout used to corrupt the JSON stream and silently degrade structured responses into raw strings.

Notes

Every call is a direct HTTPS request to the public Hugging Face / arXiv APIs — no daemon, no cached state, nothing persisted beyond the optional bin/daily.js run marker. Diagnostics go to stderr, since stdout is the MCP transport and anything else written there breaks the protocol.

Earlier versions shelled out to a Python sidecar (scripts/paper_manager.py via uv); v1.1.0 ported the six exposed operations to native Node, so cold-start latency dropped from ~12s to nothing and the uv/Python requirement is gone.

Citing

If this server is useful in your research workflow, cite it via the repo's CITATION.cff (GitHub's "Cite this repository" button), or the Zenodo DOI once archived.

Licence

MIT — see LICENSE.