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

widget-mcp

v0.1.0

Published

UI widget for your LLM

Readme

⚙️ Widget MCP

Add simple widgets to you LLM chat for common situations like timers, conversions and more.

widget-mcp

Motivation

MCP-UI opens the door to breaking the text wall from chat UIs we've been using the last few years. The full extent of what's possible is

This project shows the floor of what's possible by providing a few simple widgets for common situations.

If you've ever google "convert X to Y" or "2 minute timer" and see the custom UI results, this should feel very familiar.

Current widgets

  • Timer - Editable timer with a chime.
  • Stopwatch - Timer that just counts up.
  • Conversion - Convert between set of units for which the LLM can write a formula.
  • Display Fact - When the answer is simple, just show it in an easy to read card.

Supported MCP Clients

MCP-UI is new and as of August 2025 is only supported by a few clients.

Smithery

Try widget-mcp in the Smithery playground.

Goose

  1. Install Goose
  2. Click Extensions and Add custom extension
  3. Fill in name as Widgets and command npx widget-mcp
  4. Verify it's working by clicking Chat and prompting 2 minute timer

Goose Setup

Contributions welcome!

Here's a few examples of widgets that could be fun to add.

  • Color Picker - Interactive color selection and palette tools. Could be parameterized to allow the LLM to suggest a color and let the user tweak and explore.
  • Calculator - Basic and scientific calculator functionality. Initial function seeded by LLM.
  • Dice Roller - Custom set of dice based on what you ask the agent for.

I'm sure you have some cool ideas!

Development

To add new widgets, add an template file to the html directory and a new tool to index.ts

# Install dependencies
npm install

# Iterate on the html with hot-reloads
npm run dev:html

# Launch the MCP server with Smithery's web inspector
npm run dev:mcp

Links

  • MCP-UI - UI over MCP.
  • Smithery - Easiest way to find and try MCP servers.
  • Goose - Block's opensource MCP client.
  • PulseMCP - The best way to stay up-to-date on MCP.
  • Maintained by Ref. - Context for your coding agent.