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

@3dpolygen/mcp

v0.1.0

Published

Polygen MCP server — drive the Concept → 3D Models → Textures pipeline from any MCP host. Dual-era (2026-07-28 modern + legacy).

Downloads

36

Readme

@3dpolygen/mcp

The Polygen MCP server, over stdio — drive the Concept → 3D Models → Textures pipeline from Claude Code, Claude Desktop, Cursor, Codex, or any MCP host.

Requires a Polygen account on Indie or higher and an API key.

Install

Nothing to install — point your host at npx.

{
  "mcpServers": {
    "polygen": {
      "command": "npx",
      "args": ["--yes", "@3dpolygen/mcp"],
      "env": { "POLYGEN_API_KEY": "plg_live_…" }
    }
  }
}

Codex (~/.codex/config.toml):

[mcp_servers.polygen]
command = "npx"
args = ["--yes", "@3dpolygen/mcp"]

[mcp_servers.polygen.env]
POLYGEN_API_KEY = "plg_live_…"

Configuration

| Variable | Required | Default | Notes | |---|---|---|---| | POLYGEN_API_KEY | yes | — | Scoped, revocable key (plg_live_…), minted in Account → API keys. Shown once. | | POLYGEN_API_URL | no | https://www.3dpolygen.com | Override only for staging or a self-hosted origin. | | POLYGEN_REQUEST_TIMEOUT_MS | no | 120000 | Generation is async — poll polygen_run rather than raising this. |

The server writes the origin it is serving to stderr on startup, so your host's MCP log shows which Polygen it is talking to. Startup failures exit 78 with the reason and a remedy rather than starting a server that would fail every call.

There is also a remote Streamable HTTP endpoint at https://www.3dpolygen.com/api/agent/mcp, which needs no install and cannot go stale. Both transports serve the same implementation.

What it exposes

Tools — polygen_onboard, polygen_contracts, polygen_elevate, polygen_generate, polygen_run, polygen_price, polygen_style, polygen_projects, polygen_assets.

Prompts — polygen-concept, polygen-kit-sheet, polygen-style-from-image, polygen-elevate-check.

Resources — polygen://product-map, polygen://craft/concept, polygen://craft/kit-sheets, polygen://craft/style-aspects, polygen://capabilities, polygen://contracts, polygen://projects, polygen://styles.

Reads, polygen_price, polygen_contracts and polygen_elevate cost no image credits; only polygen_generate spends.

The order that works

  1. Bind a style — persistent art direction is the point. Generating before binding is the most common way to get mediocre output from a capable pipeline.
  2. Read the contracts (polygen_contracts, free) — returned whole.
  3. Elevate (polygen_elevate, free) — returns the prompt that would generate, plus a spendable handle.
  4. Read the opening clause — it decides camera, framing, and whether the result reads as an extractable asset.
  5. Generate with the handle — the resolved input is re-checked; if anything moved, the call fails and names the field rather than spending.

Protocol

Dual-era. Serves the 2026-07-28 revision (per-request _meta, server/discover, no handshake) and clients still opening with initialize on 2025-11-25. An unsupported version is refused with -32022 naming the supported set rather than being silently downgraded.

Development

This package is a distribution shell, not a second implementation. The server lives in website/lib/mcp/ so the Next.js route can mount the same code as the HTTP transport; npm run build bundles it here with esbuild. See scripts/build.mjs for why tsc cannot build this package.

npm run build      # bundle → dist/bin/stdio.js
npm run typecheck  # tsc --noEmit over the bundled graph
npm test           # build, then the dual-era protocol smoke

POLYGEN_MCP_BIN=/path/to/stdio.js npm run smoke points the smoke at a packed-and-installed binary, which is the only thing that proves the distribution rather than the working tree.