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

@novi-ui/mcp

v0.1.6

Published

Novi UI MCP server — read-only and offline. Serves component API, slot contracts and per-theme design rules to AI agents.

Readme

@novi-ui/mcp

Novi UI の API を AI エージェントに渡す MCP サーバ。読み取り専用・オフライン。

コンポーネントの props / slot / 使用例 / アクセシビリティ注記と、 テーマのデザイン規則(数値定義・書いてはいけないクラス)を返します。

設定

{
  "mcpServers": {
    "novi-ui": {
      "command": "npx",
      "args": ["-y", "@novi-ui/mcp"]
    }
  }
}

Claude Code なら次の1行でも入ります。

claude mcp add novi-ui -- npx -y @novi-ui/mcp

ツール

| ツール | 入力 | 返すもの | |---|---|---| | list_components | なし | 全コンポーネントの名前・1行説明・実装テーマ | | get_component | name, theme? | props / slot / 使用例 / アクセシビリティ注記 | | get_design_rules | theme | 数値定義 / 禁止クラス / 色の扱い | | search_components | query | 自然文に一致する候補。無ければ「未実装」 |

未実装のものを代替提案しません

入力: 「日付を選ばせたい」
出力: 「日付を選ばせたい」に一致するコンポーネントは Novi UI にありません。
      実装済みは次の 29 件だけです: …
      近いコンポーネントで代用しないでください。
      react-aria-components に同等のものがあればそれを直接使ってください。

「近いもの」を返すと、AI はそれを実装済みの代替と解釈して誤ったコードを書きます。 親切に見える提案が、幻覚の直接の原因になります。

一次配布元だけを使ってください

このパッケージは Novi UI 本体と同じリポジトリから公開しています。 @novi-ui/mcp 以外の「Novi 対応」を名乗る MCP サーバは、私たちが配布したものではありません。

MCP サーバはエディタの中で動き、モデルへの入力を作ります。 そこに任意のコードを差し込めるということは、開発環境そのものを差し込めるということです。 公開レジストリには、開発ツールを装って認証情報を集める事例が実際にあります。

このサーバは、その risk を注意ではなく構造で潰しています。

| 方針 | 実装 | |---|---| | 資格情報を扱わない | 環境変数を読まない | | データを取りに行かない | ネットワークに出ない。ファイルも読まない | | データは同梱のみ | component-index.json をビルド時に JS へ埋め込み、それだけを返す | | 実行時依存は2つだけ | @modelcontextprotocol/sdkzod |

いずれも pnpm --filter @novi-ui/mcp check:security が CI で機械的に検査しています。 検査はソースと配布物の両方を走査します。

情報が更新されるのはパッケージを更新したときだけです。 返す内容には常にバージョンが入るので、古い情報を掴んでいれば判別できます。

データの出どころ

すべて実装から生成しています。手書きの API 情報はこのパッケージに含まれません。

packages/core/src/contracts/*.contract.ts   slot 契約 / props / JSDoc
packages/raster/scripts/design-rules.data.mjs   禁止クラス(CI の検査と同一の定義)
packages/raster/src/tokens/raster-tokens.ts     数値トークン
        ↓  scripts/generate-component-index.mjs
data/component-index.json

CI が検査している規則と、AI に説明する規則が同じ定義から出ています。 ここがズレると、AI は CI で落ちるコードを自信を持って書きます。

ライセンス

MIT