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

@act-spec/mcp-server

v0.2.0-rc.1

Published

Universal MCP server for any ACT-emitting site. Point at a URL; expose ACT tools to any MCP-capable agent.

Downloads

50

Readme

@act-spec/mcp-server

Universal MCP server for any ACT-emitting site. Point it at a URL; expose ACT tools to any MCP-capable agent (Claude Desktop, Cursor, Continue, …) over stdio.

What it is

Most ACT sites are static — a .well-known/act.json manifest pointing at an index and per-node JSON files. AI agents that don't natively speak ACT can still browse those sites if you put a thin MCP shim in front. That's what this package is.

The server is stateless and universal: it doesn't ship its own content, it just fetches whatever ACT site the user (or the agent's configuration) points it at.

Status

ACT v0.1 internal hand-test candidate. Public release lands at v0.2.

Quick start

npx @act-spec/mcp-server https://act-spec.org

The optional positional URL becomes the default site for tool calls that omit url. Without it, every tool call must supply url explicitly.

Claude Desktop

Add this to claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "act-spec": {
      "command": "npx",
      "args": ["-y", "@act-spec/mcp-server", "https://act-spec.org"]
    }
  }
}

Restart Claude Desktop. The four tools (act_load_site, act_walk_subtree, act_get_node, act_search) appear in the tool picker.

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "act-spec": {
      "command": "npx",
      "args": ["-y", "@act-spec/mcp-server", "https://act-spec.org"]
    }
  }
}

Tool reference

act_load_site(url)

Fetches <url>/.well-known/act.json and returns the parsed manifest plus any structural findings.

  • url (string, required when no default site is configured) — origin or any URL on the site.

Returns { url, manifest, findings }.

act_walk_subtree(url, node_id, depth?)

Walks descendants of node_id up to depth levels (default 3, max 8). Useful for browsing a documentation section without fetching the whole tree.

  • url (string)
  • node_id (string, required)
  • depth (number, optional, default 3, clamped to [0, 8])

Returns { url, root_id, depth, nodes, truncated, findings } where each node is { id, type, parent, children, title?, summary? }.

act_get_node(url, node_id)

Fetches a single ACT node envelope by id.

  • url (string)
  • node_id (string, required)

Returns { url, node, findings }.

act_search(url, query)

Case-insensitive substring search across title, summary, and prose blocks in content[].

  • url (string)
  • query (string, required)

Returns { url, query, hits, truncated, findings } where each hit is { id, type, title, matched_in: 'title' | 'summary' | 'body', excerpt? }.

Limitations

act_search is a deliberately naive implementation:

  • Substring match only. No tokenization, no stemming.
  • No relevance ranking. Hits appear in walk order.
  • No operators, no quoting, no fuzzy matching.
  • It walks the entire index and fetches every node body that doesn't match on title or summary. On large sites this is slow.

If your producer advertises a search_url_template (Strict conformance level), prefer their endpoint directly. A future release will route through it transparently when present.

Self-hosting

For a self-hosted deployment that does NOT use this npm package, point clients at a hosted MCP endpoint instead — see examples/hybrid-static-runtime-mcp/ in this repo. The hosted endpoint runs the same code in a Cloudflare Worker.

Hosted alternative

The reference impl runs at mcp.act-spec.org (Streamable HTTP). Any MCP-capable agent that supports remote servers can connect without a local install.