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

@ahtmljs/webmcp

v0.9.5

Published

Register AHTML page actions as WebMCP browser tools — the bridge between AHTML's structured action contracts and the W3C WebML CG WebMCP API.

Readme

@ahtmljs/webmcp

Register AHTML page actions as WebMCP browser tools — the bridge between AHTML's structured action contracts and the W3C WebML CG WebMCP API.

What is WebMCP?

WebMCP is a W3C WebML Community Group proposal that lets web pages register JavaScript functions as AI agent tools callable by browser-embedded AI assistants. Chrome 149 launched an origin trial on 2026-05-19; Edge ships it natively. AHTML's action metadata (cost, reversibility, confirmation requirements, side-effects) is richer than WebMCP's baseline descriptor — @ahtmljs/webmcp surfaces all of it as tool annotations (x-ahtml-cost, x-ahtml-reversible, x-ahtml-side-effects, etc.) so browser AI can make informed, safe decisions before invoking actions.

Installation

npm i @ahtmljs/webmcp

Usage

1. Register actions from a snapshot

import { registerAhtmlTools } from '@ahtmljs/webmcp';

// After fetching the AHTML snapshot for the current page:
const res = await fetch('/.well-known/ahtml.json');
const snap = await res.json();

const tools = registerAhtmlTools(snap);
// tools is an array of { name, unregister() } handles.

// In SPAs, call unregister when the route changes:
// tools.forEach(t => t.unregister());

2. Unregister all tools at once (SPAs)

import { registerAhtmlTools, unregisterAll } from '@ahtmljs/webmcp';

registerAhtmlTools(snap);

// On route change:
unregisterAll();

3. Bookmarklet — inspect any AHTML-enabled page

The bookmarklet works in any browser, with or without the Chrome 149 origin trial. It reads window.__AHTML_TOOLS__ (populated automatically by registerAhtmlTools()) and renders a floating inspector panel.

import { getBookmarkletHref, getBookmarkletSource } from '@ahtmljs/webmcp/bookmarklet';

// Get a javascript: URI to paste into a browser bookmark:
console.log(getBookmarkletHref());

// Or embed the bookmarklet in a docs page:
const link = document.createElement('a');
link.href = getBookmarkletHref();
link.textContent = 'AHTML Inspector';
document.body.appendChild(link);

Drag the link to your bookmarks bar, then click it on any page that uses @ahtmljs/webmcp to see all registered tools, their cost annotations, and auth requirements.

Chrome 149 Origin Trial

To enable the native WebMCP API in Chrome 149+, register at: https://developer.chrome.com/origintrials/#/trials/webmcp

@ahtmljs/webmcp detects both proposed API shapes (navigator.ml.tools.register and window.registerMCPTool) automatically and falls back to window.__AHTML_TOOLS__ when neither is present.

License

MIT