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

vr-org-mcp

v0.3.2

Published

Read-only MCP server for VR.org. Gives AI agents one-call access to live VR, AR, and XR news, original editorial with full article text, the events calendar, headset deals, buyer guides, and top-game and top-app lists.

Readme

vr-org-mcp

Read-only Model Context Protocol server for VR.org, a dedicated VR / AR / XR news publication and aggregator.

It gives any MCP-compatible agent (Claude Desktop, Claude Code, Cursor, Continue, and others) one-call access to live VR, AR, and XR news, VR.org's original editorial (including full article text), the VR/AR/XR events calendar, curated headset deals, buyer-guide answers, and top-game and top-app lists.

Eleven tools, five resources, and three prompts. Zero keys. Zero writes. Zero payments.

Install

Run it directly with npx (no global install needed):

npx vr-org-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "vr-org": {
      "command": "npx",
      "args": ["-y", "vr-org-mcp"]
    }
  }
}

Claude Code

claude mcp add vr-org -- npx -y vr-org-mcp

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "vr-org": {
      "command": "npx",
      "args": ["-y", "vr-org-mcp"]
    }
  }
}

Hosted remote endpoint (no install)

VR.org also runs the same tools as a remote server over MCP's streamable-HTTP transport, so web clients (ChatGPT connectors, Claude.ai connectors) can use it with no local install:

https://vr.org/mcp

Tools

| Tool | What it returns | |------|-----------------| | search_vr_news | Latest VR / AR / XR headlines from the live feed, with optional category filter and keyword match | | get_vr_trending | Topics currently trending across the feed | | list_vr_originals | Summaries of VR.org's own editorial articles, newest first | | get_vr_article | Full content of one original by slug: metadata, canonical URL, and the article body HTML | | get_vr_events | Upcoming VR / AR / XR industry events (conferences, expos, launches), soonest first | | get_vr_deals | Curated product picks with prices, badges, and retailer links | | compare_vr_headsets | Side-by-side of two headsets (partial names accepted) | | get_top_vr_games | Current ranked top VR games list | | get_top_vr_apps | Current ranked top VR apps and utilities list | | list_vr_sources | The news sources VR.org aggregates, with counts | | vr_explain | Canonical short answer plus pillar-page link for a common question |

Resources

Browsable MCP resources an app can attach as context:

| Resource | Contents | |----------|----------| | vrorg://news/latest | Latest aggregated VR / AR / XR headlines | | vrorg://originals/latest | Index of VR.org's newest original articles | | vrorg://events/upcoming | Upcoming VR / AR / XR industry events | | vrorg://guides | VR.org's canonical pillar-guide answers in one doc | | vrorg://article/{slug} | Full HTML body of any original article (resource template) |

Prompts

| Prompt | What it does | |--------|--------------| | recommend_a_headset | Recommends a headset from VR.org's picks given a budget and use case | | this_week_in_vr | Drafts a weekly VR / AR / XR roundup from the feed and originals | | explain_vr_topic | Explains a VR topic grounded in VR.org's canonical answer |

How it works

Every tool composes VR.org's public JSON API (https://vr.org/api/*) into a single agent-friendly response. The server is a thin proxy: it holds no secrets, writes nothing, and cannot move money.

Threat model

VR.org's editorial is controlled, but the live feed also carries third-party RSS headlines. To keep a malicious or compromised upstream headline from manipulating the calling model, every tool output is:

  1. Sanitized. Control characters and zero-width / direction-override characters are stripped from every string.
  2. Capped. Serialized responses are limited to 50 KB so a large payload cannot flood the agent's context window.

Inputs are validated before any outbound request and every free-text parameter is length-capped at the schema layer. Errors are returned as structured, non-echoing objects rather than raw stack traces; on the rare path where an error string reaches the caller it runs through the same output scrub as a tool result, with any credential-shaped substring redacted and the text capped, and is flagged with isError.

Configuration

The API base URL is fixed to https://vr.org in source and cannot be overridden, so the server can only ever talk to VR.org.

| Env var | Default | Purpose | |---------|---------|---------| | VR_ORG_UA_SUFFIX | (none) | Optional suffix appended to the outbound User-Agent |

Development

npm install
npm run dev        # run from source over stdio
npm run build      # compile to dist/
npm test           # run the offline test suite
npm run typecheck  # type-check without emitting

Changelog

0.3.2

Error-path hardening: tool errors now pass through the same output scrub as tool results, with secrets redacted and error text capped. All free-text parameters gain schema-level max lengths. No behavior change for valid inputs.

License

MIT. A VR.org project.