mcpField
M
Mcp Npm_docs Server

Mcp Npm_docs Server

ローカル
github.com/bsmi021メモリ・ナレッジ382 週間前に更新

Mcp Npm_docs Server について

Mcp Npm_docs Serverは、開発者向けにNPMパッケージのメタデータとREADMEを取得し、SQLiteにローカルキャッシュします。

主な機能

  1. 01パッケージ情報とREADMEの取得
  2. 02npms.io経由での情報取得
  3. 03SQLiteへのローカルキャッシュ
  4. 04キャッシュを迂回した再取得

活用シーン

  1. 01依存パッケージのバージョンと説明の確認
  2. 02パッケージREADMEの閲覧
  3. 03依存関係とライセンスの確認

MCP 対応

パッケージ名を指定してNPMのドキュメントとメタデータを取得するgetNpmPackageDocsツールを、MCPクライアントに公開します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

NPM ドキュメント MCP サーバー

NPM パッケージのメタデータとドキュメント(README の内容を含む)を取得するツールを提供する MCP サーバーです。ローカルキャッシュを使用してパフォーマンスを向上させます。

機能

  • npms.io API を使用して、パッケージのメタデータと README の内容を取得します。
  • SQLite(better-sqlite3)を使用して、結果をローカルにキャッシュします。
  • getNpmPackageDocs MCP ツールを提供します。
  • 標準的な MCP サーバー構成に従っています。

プロジェクト構成

  • /src:すべてのソースコードが含まれています。
    • /config:設定管理(ConfigurationManager)。
    • /services:コアロジック(NpmDocService、CacheService)。
    • /tools:MCP ツールの定義(npmDocsTool.ts、npmDocsToolParams.ts)。
    • /types:TypeScript インターフェースとカスタムエラー(npmDocsTypes.ts)。
    • /utils:共有ユーティリティ関数(logger.ts、errors.ts)。
    • createServer.ts:サーバーインスタンスの作成とツールの登録。
    • server.ts:アプリケーションのメインエントリーポイント。
  • /dist:コンパイル済み JavaScript の出力先(npm run build で生成)。デフォルトのキャッシュ DB ファイル(npm-docs-cache.db)が含まれています。
  • package.json:プロジェクトのメタデータと依存関係。
  • tsconfig.json:TypeScript コンパイラーのオプション。
  • .eslintrc.json:ESLint の設定。
  • .prettierrc.json:Prettier の設定。
  • .gitignore:Git の無視ルール。

インストールとセットアップ

  1. リポジトリをクローンします(該当する場合)。

  2. 依存関係をインストールします:

    npm install
    
  3. サーバーをビルドします:

    npm run build
    

    TypeScript コードが dist/ ディレクトリにコンパイルされます。

設定

サーバーは環境変数を使用して設定できます:

  • NPM_CACHE_TTL:キャッシュの有効期間(秒)。デフォルト:86400(24 時間)
  • NPM_CACHE_DB_PATH:SQLite データベースファイルへのパス。デフォルト:./dist/npm-docs-cache.db(ビルド後のプロジェクトルートからの相対パス)。設定すると、デフォルト値が上書きされます。絶対パス、またはサーバーの起動時における現在の作業ディレクトリからの相対パスを指定できます。
  • LOG_LEVEL:詳細なログを出力するには debug に設定します。デフォルト:info 注:NPM_REGISTRY_URL 設定変数も存在しますが、サーバーは npms.io API を使用するため、現在は無視されます。

サーバーの実行

コンパイル済みサーバーは、Node を使用して直接実行できます:

node dist/server.js

開発時は、ホットリロードに dev スクリプトを使用します:

npm run dev

MCP 連携

このサーバーを MCP クライアント(Cline など)で使用するには、MCP 設定ファイル(例:cline_mcp_settings.json)に設定を追加します:

{
  "mcpServers": {
    // ... other servers
    "npm-docs-server": {
      "command": "node",
      "args": [
        "/path/to/mcp-npm_docs-server/dist/server.js" // <-- IMPORTANT: Use the absolute path to the compiled server.js
      ],
      "env": {
        // Optional: Set environment variables here if needed
        // "NPM_CACHE_TTL": "3600",
        // "NPM_CACHE_DB_PATH": "/path/to/your/cache.db",
        // "LOG_LEVEL": "debug"
      },
      "disabled": false, // Ensure it's enabled
      "autoApprove": [
          "getNpmPackageDocs" // Optional: Auto-approve the tool
       ]
    }
    // ... other servers
  }
}

/path/to/mcp-npm_docs-server を、お使いのシステム上にあるこのプロジェクトディレクトリの実際の絶対パスに置き換えてください。

提供する MCP ツール

getNpmPackageDocs

指定した NPM パッケージのドキュメントとメタデータを取得します。

パラメーター:

  • packageName(string、必須):NPM パッケージの正確な名前(例:'react'、'axios'、'@azure/storage-blob')。大文字と小文字を区別します。
  • forceFresh(boolean、任意、デフォルト:false):true の場合、ローカルキャッシュを使わずに、npms.io API から最新データを取得します。

戻り値:

NpmDocumentation インターフェースに準拠した JSON オブジェクト。以下が含まれます:

  • name
  • version
  • description
  • homepage(利用可能な場合)
  • repository(URL。利用可能な場合)
  • author(名前。利用可能な場合)
  • license(利用可能な場合)
  • keywords(利用可能な場合)
  • dependencies
  • devDependencies
  • readmeContent(npms.io から取得できる場合、README の Markdown を含む文字列)

使用例(MCP ツール呼び出し):

<use_mcp_tool>
  <server_name>npm-docs-server</server_name>
  <tool_name>getNpmPackageDocs</tool_name>
  <arguments>
  {
    "packageName": "lodash",
    "forceFresh": false
  }
  </arguments>
</use_mcp_tool>

Lint とフォーマット

  • Lint: npm run lint
  • フォーマット: npm run format

Husky と lint-staged(Husky がインストールされている場合)により、コミット時にコードの lint とフォーマットが自動的に行われます。

コメント

MCP は初めてですか?

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

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