mcpField
N
Nekzus MCP Server

Nekzus MCP Server

ローカル
npmjs.com開発ツール199 週間前に更新

Nekzus MCP Server について

Nekzus MCP Server(別名 NPM Sentinel MCP)は、NPM開発者やAIクライアント向けにパッケージを調査・分析します。セキュリティ、依存関係、健全性、サイズ、傾向を扱い、入力制御と信頼できないコンテンツへの対策も備えています。

主な機能

  1. 01パッケージのバージョンとメタデータ
  2. 02依存関係と脆弱性の分析
  3. 03品質、保守状況、リポジトリ指標
  4. 04パッケージサイズとダウンロード傾向
  5. 05入力検証とバッチ上限
  6. 06信頼できないコンテンツへの対策

活用シーン

  1. 01パッケージの安全性と依存関係ツリーの確認
  2. 02パッケージの健全性と保守状況の比較
  3. 03パッケージサイズとダウンロード傾向の確認
  4. 04プロンプトインジェクション対策を伴うパッケージ文書の確認

MCP 対応

MCPを通じて、NPMパッケージ分析用の19種類のツール、リソース、プロンプトを提供します。STDIOとStreamable HTTPに対応し、MCP v1およびv2クライアントとの互換性を記載しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"nekzus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

19

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
packagesarrayはいバージョンを取得するパッケージ名の一覧
ignoreCachebooleanいいえキャッシュを無視して最新情報を強制的に取得します

詳細

NPM Sentinel MCP

smithery badge Github Workflow npm version npm-month npm-total Docker Hub Ask DeepWiki Donate

@modelcontextprotocol/server と @modelcontextprotocol/core(v2)を基盤に構築された、強力な Model Context Protocol(MCP v2) サーバーです。AI を活用して NPM パッケージ分析に革新をもたらします。Claude、Anthropic AI、および MCP v2 互換のあらゆるクライアントとシームレスに統合でき、パッケージのセキュリティ、依存関係、パフォーマンスに関するリアルタイムの情報を提供します。

このサーバーは、モジュール式 ESM アーキテクチャ(src/)、デュアル出力プロトコル応答(content + structuredContent)、Zod 出力スキーマ(outputSchema)、埋め込み SVG Data URI アイコン、リアルタイムのコンテキストログ記録を備えています。

主な機能

  • MCP v2 ネイティブプロトコル:outputSchema による Zod 検証、structuredContent のデュアル返却、診断コンテキストのログ記録(ctx.mcpReq.log)を備えた MCP v2 に完全にアップグレードされています。
  • 自己完結型ベクターアイコン:クライアント UI の表示を強化するため、全 19 のツール、リソース、プロンプトに、あらかじめ設定した SVG Data URI(data:image/svg+xml)を埋め込んでいます。
  • 高度なセキュリティスキャン:Google の deps.dev と OSV.dev を活用した再帰的な依存関係チェック、エコシステムの認識、正確なバージョン解決を提供します。
  • スマートな代替パッケージのフィルタリング(npmAlternatives):機能ドメインのキーワードに基づくインテリジェントな検索と、エコシステムのプラグイン/拡張機能を厳密に除外するフィルタリングを行います(例:express の代替を検索する際に express-rate-limit を除外)。
  • 厳密な入力検証とバッチレート制御:パストラバーサル、SSRF、コマンドインジェクションに対して、Zod で入力をサニタイズします。検索クエリ(npmSearch)は 100 文字までに制限され、制御文字が除外されます。バッチ分析ツールでは、レジストリ列挙による DoS を防ぐため、リクエストあたり 25 パッケージまでに厳しく制限します。
  • 依存関係と推移的依存関係のマッピング:deps.dev を通じて依存関係ツリー全体を分析し、マッピングします。
  • パッケージの品質とメンテナンス指標:OpenSSF Scorecard、GitHub リポジトリの指標、npms.io を用いてリアルタイムにスコアを算出します。
  • ダウンロード傾向とパフォーマンス:ダウンロード統計とバンドルサイズをリアルタイムで分析します。
  • スマートな SemVer の略記と範囲の解決:メジャーバージョンの略記、プレフィックス、範囲(例:express@2、express@v4、[email protected]、react@^18、lodash@~4.17)を、完全一致するバージョンキーが見つからない場合も失敗せず、条件に一致する最も新しいリリースへ透過的に解決します。
  • 間接的なプロンプトインジェクションへの防御(OWASP LLM01):未加工のサードパーティ製 Markdown/テキストを返すすべてのツール(npmPackageReadme、npmChangelogAnalysis)で、信頼できないコンテンツを <untrusted_external_content> タグで囲み、_meta.untrustedExternalContent = true フラグを付け、ツールスキーマに厳格な警告を適用します。
  • 効率的なキャッシュシステム:ワークスペースのロックファイル(pnpm-lock.yaml、package-lock.json、yarn.lock)が変更されるとキャッシュを自動的に無効化し、手動でキャッシュを回避することもできます(ignoreCache: true)。

セキュリティとOWASP LLM01への準拠

このサーバーは、OWASP LLM01:2025(間接的なプロンプトインジェクション)に準拠した多層防御コントロールを実装しています。

  1. XMLによるデータの区分:外部パッケージ(README.md、GitHubの変更履歴、リリースノート)のコンテンツは、<untrusted_external_content source="..." package="..." type="..."> タグで囲まれます。これにより、利用するLLMモデルは信頼できないデータと指示を区別できます。
  2. メタデータによる通知(_meta):レスポンスには、プログラムからのクライアント側検出とポリシー適用に使用する _meta.untrustedExternalContent = true と _meta.sources 配列が含まれます。
  3. ツールとプロンプトの安全性に関する警告:ツールの説明とプロンプト定義では、ドキュメントを受動的なデータとして扱い、埋め込まれた実行コマンドを無視するよう、LLM エージェントに明示的に指示します。
  4. バッチサイズの上限設定とクエリのサニタイズ:18 個すべての複数パッケージ分析ツールで、リクエストあたりのパッケージ数を 25 個に制限しています(PackageListSchema)。検索クエリはサニタイズされ、100 文字に制限されます(SearchQuerySchema)。
  5. プロトタイプ汚染対策:辞書の検索で Object.hasOwn() によるチェックを適用し、constructor や __proto__ などの予約済みプロパティをブロックします。

高いパフォーマンスを維持しながらデータの正確性を確保するために、次の機能を備えています。

  • 自動無効化:ワークスペース内の pnpm-lock.yaml、package-lock.json、または yarn.lock が変更されるたびに、キャッシュが自動的に無効化されます。
  • 強制更新:すべてのツールで、任意の ignoreCache: true パラメーターを指定してキャッシュをバイパスし、NPM レジストリから最新の情報を取得できます。
使用例(JSON-RPC)
{
  "name": "npmVersions",
  "arguments": {
    "packages": ["react"],
    "ignoreCache": true
  }
}

インストールとトランスポート

デュアル世代 MCP アーキテクチャ(v1 2025-11-25 + v2 2026-07-28)

この MCP サーバーはネイティブのデュアル世代プロトコル互換性を備えており、STDIO と Streamable HTTP の両トランスポートで、最新の MCP v2 クライアント(2026-07-28)と従来の MCP v1 クライアント(2025-11-25)の両方に、すぐに対応できます。

  • STDIO モード(npx @nekzus/mcp-server):serveStdio({ legacy: "serve" }) を使用します。最新の server/discover プローブをセッションレスで処理し、ローカル実行(Claude Desktop、Cursor、Docker)では従来の initialize ハンドシェイクとシームレスに連携します。
  • Streamable HTTP / SSE モード(@nekzus/mcp-server/http):createMcpHandler({ legacy: "stateless" }) を使用します。サーバーレス環境と Web 標準ランタイム(Cloudflare Workers、Hono、Express、Vercel API Routes、Smithery.ai)向けに設計されています。

例:HTTP ハンドラーのマウント(Cloudflare Workers / Hono / Express)

import { createMcpHttpHandler } from '@nekzus/mcp-server/http';

const handleRequest = createMcpHttpHandler();

export default {
  async fetch(request, env, ctx) {
    return handleRequest(request);
  }
};

開発コマンド:

# Install dependencies
pnpm install

# Compile TypeScript to dist/
pnpm run build

# Start STDIO server (Dual-Era)
pnpm run start

# Development server with Smithery CLI playground
pnpm run dev

# Run full unit and integration test suite (238 tests)
pnpm test -- --run

# Run full E2E tarball verification
node __tests__/full-e2e-pack-validation.js
VS Code / Cursor へのインストール

以下を VS Code / Cursor の MCP 設定に追加してください。

{
  "inputs": [],
  "servers": {
    "npm-sentinel": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@nekzus/mcp-server@latest"]
    }
  }
}
Claude Desktop へのインストール

以下を claude_desktop_config.json に追加してください。

{
  "mcpServers": {
    "npm-sentinel": {
      "command": "npx",
      "args": ["-y", "@nekzus/mcp-server@latest"]
    }
  }
}

設定ファイルの場所:

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json
Smithery.ai へのデプロイ
{
  "mcpServers": {
    "npm-sentinel": {
      "type": "http",
      "url": "https://smithery.ai/server/@Nekzus/npm-sentinel-mcp"
    }
  }
}
Docker の使用方法
# Build Docker image
docker build -t nekzus/npm-sentinel-mcp .

# Run with local volume mount
docker run -i --rm -w /projects -v ${PWD}:/projects nekzus/npm-sentinel-mcp node dist/index.js
Web 標準 Streamable HTTP と Cloudflare Workers の統合

このパッケージは、MCP v2 の公式 Web 標準 Streamable HTTP トランスポートを必要とするサーバーレスプラットフォーム(Cloudflare Workers、Hono、Vercel、Express、Fastify、Next.js API routes)向けに、createMcpHttpHandler と WebStandardStreamableHTTPServerTransport をエクスポートします。

import { createMcpHttpHandler } from '@nekzus/mcp-server/http';

const handleMcpRequest = createMcpHttpHandler();

export default {
  async fetch(request: Request): Promise<Response> {
    return handleMcpRequest(request);
  },
};

MCP v2 に 100%準拠:WebStandardStreamableHTTPServerTransport を使用するこのハンドラーは、パフォーマンスを最大限に高めながら、3 つすべての MCP プリミティブ(ツール、リソース、プロンプト)をネイティブに有効化し、SSE ストリーミングをサポートするとともに、Web 標準の Request $\rightarrow$ Response との完全な互換性を備えています。

設定

サーバーは以下の設定パラメーターをサポートしています。

環境変数設定オブジェクトのプロパティデフォルト説明
NPM_REGISTRY_URLconfig.NPM_REGISTRY_URLhttps://registry.npmjs.orgすべてのリクエストで使用する NPM レジストリの URL

MCP サーバーの機能(v2 API)

すべてのツールの応答は MCP v2 のデュアル出力形式に準拠しており、content に人間が読みやすいテキストを、structuredContent に解析済みの JSON オブジェクトをそれぞれ提供します。

{
  "content": [
    {
      "type": "text",
      "text": "{\n  \"queryPackages\": [\"express\"],\n  \"results\": [...]\n}"
    }
  ],
  "structuredContent": {
    "queryPackages": ["express"],
    "results": [...]
  }
}
サーバーリソース

MCP の readResource リクエストからアクセスできます。

  • doc://server/readme
    • 説明:NPM Sentinel MCP サーバーのメインドキュメントファイルです。
    • MIME タイプ:text/markdown
    • アイコン:埋め込みドキュメント SVG データ URI。
  • doc://mcp/specification
    • 説明:Model Context Protocol の仕様ファイル(llms-full.txt)全体です。
    • MIME タイプ:text/plain
    • アイコン:埋め込みドキュメント SVG データ URI。
サーバープロンプト

MCP の getPrompt リクエストからアクセスできます。

  • analyze-package
    • 説明:セキュリティ、パフォーマンス、依存関係、健全性指標を含む、NPM パッケージの AI 分析用の包括的なプロンプトテンプレートを生成します。
    • 引数:package(string、必須)
    • アイコン:埋め込みセキュリティ SVG データ URI。

ツールカタログ(19 個のツール)

19 個すべてのツールで、inputSchema、outputSchema、annotations(title、readOnlyHint)、および icons が定義されています。

1. npmLatest
  • 最新バージョン情報、リリース日、SRI 整合性ハッシュ、dist-tag を取得します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
2. npmVersions
  • リリース日と非推奨ステータスを含む、完全なバージョン履歴を取得します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
3. npmDeps
  • 直接依存関係と deps.dev を介した完全な推移的依存関係グラフのマッピングを含む、依存関係ツリーの詳細な分析を行います。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
4. npmTypes
  • TypeScript のサポート状況を確認します(ネイティブの index.d.ts 宣言ファイルと @types/* DefinitelyTyped パッケージを比較します)。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
5. npmSize
  • パッケージのバンドルサイズ、圧縮後のサイズ、gzip による影響を分析します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
6. npmVulnerabilities
  • Google の deps.dev と OSV.dev のアドバイザリを活用して、推移的依存関係の脆弱性を即座にスキャンします。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
7. npmTrends
  • カスタマイズ可能な期間(last-week、last-month、last-year)における過去のダウンロード統計を取得します。
  • 入力:packages(string[])、period("last-week" | "last-month" | "last-year")、ignoreCache(boolean、任意)
8. npmCompare
  • 複数のパッケージの指標を並べて比較します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
9. npmMaintainers
  • パッケージのメンテナー、公開メールアドレス、公開活動の一覧を取得します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
10. npmScore
  • 品質、人気度、メンテナンス状況、OpenSSF Scorecard を組み合わせた総合スコアを取得します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
11. npmPackageReadme
  • NPM レジストリまたは CDN から、整形済みの README Markdown の全文を取得します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
12. npmSearch
  • スコア、発行者、キーワードなどの詳細なメタデータを含め、クエリで NPM レジストリのパッケージを検索します。
  • 入力:query(string)、limit(number、任意)
13. npmLicenseCompatibility
  • 複数のパッケージ間のライセンス互換性(MIT、Apache-2.0、GPL など)を分析します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
14. npmRepoStats
  • OpenSSF Scorecard のチェック結果と組み合わせた、リポジトリの統計情報(GitHub のスター数、フォーク数、オープン中の Issue 数)。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
15. npmDeprecated
  • パッケージおよび再帰的な依存関係にあるサブ依存関係の非推奨ステータスを検出します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
16. npmChangelogAnalysis
  • リリースノートと GitHub のリリース履歴を抽出します。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
17. npmAlternatives
  • エコシステムのプラグインを除外して、機能面での代替候補をスマートに提案します(例:express に対する express-rate-limit を除外)。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
18. npmQuality
  • パッケージのコード品質スコア(0~1)。
  • 入力:packages(string[])、ignoreCache(boolean、任意)
19. npmMaintenance
  • パッケージのメンテナンス活動スコア(0~1)。
  • 入力:packages(string[])、ignoreCache(boolean、任意)

ライセンス

この MCP サーバーは MIT ライセンスの下でライセンスされています。詳細は LICENSE を参照してください。

MIT © nekzus

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。