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

glyphforge-mcp-server

v0.1.0

Published

MCP server for Glyphforge — teaches a coding agent the library, recommends a hero that suits the site it is looking at, and finds the 3D model to put in it.

Readme

glyphforge-mcp-server

An MCP server for Glyphforge — drop-in WebGL ASCII hero sections for React.

Point a coding agent at it and the agent stops guessing: it learns the library, recommends a hero that suits the site it is actually looking at, says where on the page it belongs and why, and finds the 3D model to put in it.


Add it to your agent

Claude Code

claude mcp add glyphforge -- npx -y glyphforge-mcp

Cursor — .cursor/mcp.json

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

Codex — ~/.codex/config.toml

[mcp_servers.glyphforge]
command = "npx"
args = ["-y", "glyphforge-mcp"]

Anything else that speaks MCP — run npx -y glyphforge-mcp over stdio.

No API key, no account, no configuration. The catalogues it searches are public and CORS-open, and there is no Glyphforge server for anything to phone home to.


What it can do

Learn the library

glyphforge_get_started is the entry point: what Glyphforge is, the peer dependencies, the shape of the API, and which tool to reach for next. glyphforge_get_docs goes deep on one topic at a time — the text forge, post-effects, transparency, performance, accessibility, placement, troubleshooting — so an agent that only needs the image forge doesn't spend context on the CLI.

Recommend a hero for a specific site

glyphforge_recommend_setup takes a description and returns a considered answer, not a default:

"a CLI for database migrations, open source", dark ground, full hero, brand #5AC8FA

→ preset terminal, the word MIGRATE extruded into real geometry, tinted to the brand colour, with the reasoning for each choice and the UX rules that apply to a full-viewport hero.

It infers tone from the description, and a light background overrides that choice — a dark-ground preset dropped onto a white page renders as a black box, so paper wins and says why.

Read the project and recommend from what's there

glyphforge_inspect_project opens the project on disk — read-only, node_modules skipped, the walk capped — and reports the framework and router style, which peer dependencies are missing, the install command pinned to the installed React major, version conflicts, the site's own palette and whether its ground is light or dark, and the files the hero probably belongs in. Pass site_description too and the recommendation comes back grounded in all of that rather than in a guess.

Find a 3D model, including the ones it can't download

glyphforge_search_models searches five catalogues in one call — Objaverse (~46,200), Poly Haven (521, CC0), Khronos glTF samples (119), three.js examples (24), and Sketchfab (millions).

Four of them come back with a direct, loadable URL. Sketchfab cannot: downloading needs an OAuth token tied to a real account. Rather than pretend, those results carry the model's page link straight into the agent's chat so the user can click through, download the glTF, and drop it in — with the steps spelled out. glyphforge_get_model_import turns any result id into either a loadable URL or that download link.

Licences are reported exactly as each catalogue states them and are never inferred.

Generate the component

glyphforge_generate_component runs the same generator as the Studio's copy button, so what the agent pastes and what the website hands you are byte-identical. Only props that actually differ from the preset are emitted, so the snippet stays short.


Tools

| Tool | What it does | | --- | --- | | glyphforge_get_started | Learn the library — start here | | glyphforge_get_docs | Documentation by topic (20 topics) | | glyphforge_list_presets | The seven looks and their exact prop values | | glyphforge_recommend_setup | Pick a preset, model and layout for a described site | | glyphforge_inspect_project | Read a project on disk and recommend from what's there | | glyphforge_generate_component | Turn an explicit config into paste-ready TSX | | glyphforge_search_models | Search five 3D catalogues | | glyphforge_get_model_import | Resolve a catalogue id to a loadable URL or a download page |

Every tool is read-only and takes response_format: "markdown" | "json". Nothing here writes to disk, and the only network calls are to the public model catalogues.


Environment

| Variable | Default | | --- | --- | | GLYPHFORGE_OBJAVERSE_INDEX | Path or URL for the Objaverse category index. Falls back to the 1.6 MB copy bundled with this package, then to the copy in the repo. |


Development

npm install
npm run build --workspace=glyphforge        # the MCP server imports the library's build output
npm run build --workspace=glyphforge-mcp-server
node packages/glyphforge-mcp/dist/index.js --help

Inspect it interactively:

npm run inspect --workspace=glyphforge-mcp-server

The server shares its brains with the website: asset search lives in glyphforge/catalog and component generation in glyphforge/codegen, both consumed by the Studio and by this server, so the two cannot drift.


Licence

MIT — see LICENSE and NOTICE.