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

@retrograde-labs/lune-mcp-server

v2.2.0

Published

Lune Research MCP server (stdio + Streamable HTTP) proxying api.luneresearch.com

Readme

@retrograde-labs/lune-mcp-server

Official Model Context Protocol server for Lune Research.

Exposes 12 tools and 6 guided research workflows (prompts) for searching, retrieving, comparing, and fact-checking academic papers across security, ML, NLP, CV, and systems venues, plus retrieval over your own uploaded workspace documents. Two transports:

  • stdio: run locally via npx @retrograde-labs/lune-mcp-server. Reads LUNE_API_KEY from the environment.
  • Streamable HTTP: hosted at https://mcp.luneresearch.com. Pass your PAT or OAuth token as Authorization: Bearer ....

Quick start (Claude Desktop, Cursor, etc.)

{
  "mcpServers": {
    "lune-research": {
      "command": "npx",
      "args": ["-y", "@retrograde-labs/lune-mcp-server"],
      "env": {
        "LUNE_API_KEY": "lune_your_personal_access_token"
      }
    }
  }
}

Get your token at https://luneresearch.com/dashboard/settings/credentials.

Tools

| Tool | Description | | --------------------------- | --------------------------------------------------------------- | | search_papers | Hybrid vector + BM25 search across the corpus | | search_papers_many | Run many query variants in one call, RRF-merged | | search_related_papers | Semantically nearest papers to a given paper | | get_paper_fulltext | Parsed full text (markdown or JSON) | | get_paper_citations | Citation graph (cited_by or cites) | | list_conferences | Indexed venues, optionally by category | | get_conference_papers | Paginated papers for a venue | | extract_from_papers | Structured field extraction across many papers | | verify_claims | Fact-check claims against the corpus with quotes | | gather_evidence | Judge evidence sufficiency for a task, with gaps + next queries | | search_research_guidance | Curated reproducibility / methodology corpus | | get_research_guidance_doc | Full text of a guidance document |

Prompts

Reusable research workflows, surfaced by MCP clients as slash commands (e.g. /literature_review). Each runs a guided, multi-tool sequence grounded in the corpus, so common research tasks are one command instead of hand-orchestrating the tools.

| Prompt | What it does | Key arguments | | ----------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------- | | /literature_review | Survey a topic and synthesise themes, foundational vs recent work, and open gaps | topic (+ optional venues, since_year) | | /find_related_work | From your abstract, find and organise prior work to cite and distinguish your contribution from | abstract (+ optional venues) | | /compare_papers | Build a structured comparison table across papers, read from full text | topic (+ optional columns) | | /verify_draft | Fact-check a draft or list of claims against the corpus, with a verbatim quote per claim | draft | | /trace_citations | Trace a paper's lineage: its foundations, what built on it, and adjacent work | paper | | /research_methodology | Grounded advice on experiment design, ablations, evaluation, rebuttals, or venue choice | question |

Debugging with MCP Inspector

The repository pins MCP Inspector 2.3.0 and checks in a read-only server configuration for both protocol eras. Node 24 from .nvmrc satisfies the Inspector requirement.

With a PAT in LUNE_API_KEY, this builds the stdio server and opens the Inspector catalog with the PAT available to local processes. Select lune-stdio-modern to exercise 2026-07-28:

export LUNE_API_KEY=lune_xxxxxxxxxxxxxxxxxxxxxxxx
bun run mcp:inspect

With no LUNE_API_KEY, the same command opens the server catalog without an environment override. Select lune-remote-modern; Inspector starts OAuth when you connect. The launcher never passes an empty -e assignment.

The printed URL contains a one-time Inspector token. Open that URL instead of typing the port manually. The Inspector stays on loopback with authentication enabled.

The hosted-server mnemonic opens the same catalog without building stdio:

bun run mcp:inspect:remote

The web, CLI, and TUI clients share OAuth state on disk. After signing in once, the CLI can check the hosted server without opening another browser:

bun run mcp:inspect:remote:check

The local stdio checks use a non-production test token and a deliberately dead API URL. They validate connection, version negotiation, and the tool catalog without consuming quota:

bun run mcp:inspect:check
bun run mcp:inspect:check:legacy
bun run mcp:inspect:tui

The local and remote configs at apps/mcp/inspector.*.config.json pin protocolEra explicitly. Inspector defaults to the legacy era, so an unconfigured launch does not prove 2026-07-28 behavior. During debugging, pin Protocol beside Console for stdio or Network for HTTP. Test invalid tool arguments, missing prompt arguments, both protocol eras, and expired OAuth tokens as well as successful calls.

Run the frozen official 2026-07-28 server requirements with:

bun run mcp:conformance

The conformance harness binds only 127.0.0.1 and injects a local test token. Its baseline names individual checks for diagnostic capabilities Lune does not advertise, such as image tools and readable resources. Every applicable check still gates the run, and a stale baseline entry fails when support is added. Never write diagnostics to stdout on stdio. The server and its cache write diagnostics to stderr so JSON-RPC framing stays intact.

License

MIT