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

cyborg-mcp

v0.1.3

Published

MCP server for the Cyborg Skill catalog: search, read provenance and rights, and install into your agent.

Readme

{{mcpPackage}}

The {{name}} Skill catalog, as an MCP server. Your agent searches the catalog, reads a Skill's provenance and rights, reads a Stack, and installs a Skill into its own skill directory, without a terminal and without an account.

It is the third door into the same catalog. The other two are the web surface at {{host}} and the CLI, {{npmPackage}}.

Add it to your agent

Claude Code:

claude mcp add {{lower}} -- npx -y {{mcpPackage}}

Anything that reads an mcpServers block, which is Cursor, Windsurf, Codex, Claude Desktop and most others, paste this:

{
  "mcpServers": {
    "{{lower}}": {
      "command": "npx",
      "args": ["-y", "{{mcpPackage}}"]
    }
  }
}

No API key, no login. Every read route it uses is public and unauthenticated.

Tools

| Tool | What it does | | --- | --- | | {{lower}}_search_skills | Search published Skills by keyword, capability, runtime, integration or publisher. Lexical ranking. | | {{lower}}_get_skill | One Skill: release and content hash, upstream source and exact revision, labels, declared permissions, compatibility, rights basis. | | {{lower}}_get_stack | One Stack: curator, rationale, and the ordered Skills with the exact release each item pins. | | {{lower}}_install_skill | Writes one Skill into an agent's skill directory on this machine. |

{{lower}}_install_skill takes slug, an optional agent (claude, codex, cursor, gemini, opencode) and an optional scope (global, the default, or project). It names the agent back to you in the result, and it refuses to guess when more than one agent is present.

How the install writes

It does not have its own copy of the write path. It imports the one {{npmPackage}} uses, so both obey the same rules:

  • the catalog origin is allowlisted, not merely https;
  • every file path in the response is rejected if it is absolute, contains .., or contains a control character;
  • files are staged in <skillsDir>/.floom/tmp/ and moved into place with a single atomic rename, so an interrupted install never leaves a half-written Skill where the agent will read it;
  • each level of the staging path is lstated and refused if it is a symlink, so a planted .floom cannot relocate the write outside the agent directory;
  • an existing copy is backed up under .floom/backups/<slug>/<timestamp>/ before it is replaced.

What this catalog does and does not claim

{{name}} is in private preview, and the Skills in it passed a deliberately narrow offline check. The exact claim is:

A deterministic offline static planning or composition artifact passed the candidate-specific conformance contract.

No complete upstream workflow ran. Nothing here holds a Tested, Evaluated, Signed, Recommended or Verified Publisher state, and this server never reports one. It reports the catalog's trust field exactly as the catalog holds it, which for the preview is empty.

No tool here returns an install count, a popularity signal, or a ranking by either, and none exists to return: search order is lexical relevance and is not a quality ranking. The one thing this server does send is the self-reported install described below, which the catalog keeps privately and marks unverified. It is a claim, it is not exposed by any tool, and it reaches no public counter.

Attribution and rights are exactly as recorded in each Skill's own ATTRIBUTION.json, which carries the source repository, the exact pinned revision, the Skill body hash, the license hash, and endorsement: false. Listing a Skill in this catalog is not an endorsement by the source repository, by its authors, or by any company named in it.

Installing records two things, and the result says what each one is.

The catalog records, server-side, that an install link was fetched:

Preview install-link fetch recorded. Private preview only; a link fetch is not an install, not a Verified Agent Upgrade, and is not counted publicly.

Then, after the files are written and only then, this server reports the install itself. A fetch is not an install — a fetch can be followed by a failed write, and a crawler can fetch and install nothing — so the report is the only thing that states one. It sends exactly three values: slug (which Skill), agent (which agent's skill directory), and installer ({{mcpPackage}}/<version>). No path, no home directory, no username, no hostname, no machine identifier, no file count, no timing.

Nothing on the catalog's side can observe a write to your disk, so the row is stored and displayed as a self-reported claim, permanently, and reaches no public counter:

Recorded as a self-reported install. You told us this; we did not observe it. It is not an install receipt, not a Verified Agent Upgrade, and it is not counted publicly.

A failed or refused report never fails an install.

Configuration

| Variable | Default | Meaning | | --- | --- | --- | | CYBORG_CATALOG_URL | {{origin}} | Catalog origin. Subject to the same allowlist as everything else: an arbitrary host is refused rather than trusted because it was typed. | | CYBORG_NO_INSTALL_REPORT | unset | Set to 1 to send no self-reported install report. Read before any request is built, so nothing is sent rather than sent and discarded. | | FLOOM_DEV | unset | Set to 1 to allow a loopback catalog origin, for local development only. |

Verifying it yourself

From a checkout of this repository:

node packages/mcp/scripts/proof-round-trip.mjs

It launches the published package the way an agent does (npx -y {{mcpPackage}}), connects a real MCP client over stdio, lists the tools, searches, reads a Skill and a Stack, and installs into a throwaway HOME that is deleted afterwards.

Requirements

Node 20 or newer.

License

MIT. The Skills it installs carry their own licenses, recorded in each Skill's ATTRIBUTION.json.