Mcp Npm_docs Server について
Mcp Npm_docs Serverは、開発者向けにNPMパッケージのメタデータとREADMEを取得し、SQLiteにローカルキャッシュします。
主な機能
- 01パッケージ情報とREADMEの取得
- 02npms.io経由での情報取得
- 03SQLiteへのローカルキャッシュ
- 04キャッシュを迂回した再取得
活用シーン
- 01依存パッケージのバージョンと説明の確認
- 02パッケージREADMEの閲覧
- 03依存関係とライセンスの確認
MCP 対応
パッケージ名を指定してNPMのドキュメントとメタデータを取得するgetNpmPackageDocsツールを、MCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
NPM ドキュメント MCP サーバー
NPM パッケージのメタデータとドキュメント(README の内容を含む)を取得するツールを提供する MCP サーバーです。ローカルキャッシュを使用してパフォーマンスを向上させます。
機能
- npms.io API を使用して、パッケージのメタデータと README の内容を取得します。
- SQLite(
better-sqlite3)を使用して、結果をローカルにキャッシュします。 getNpmPackageDocsMCP ツールを提供します。- 標準的な 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 の無視ルール。
インストールとセットアップ
-
リポジトリをクローンします(該当する場合)。
-
依存関係をインストールします:
npm install -
サーバーをビルドします:
npm run buildTypeScript コードが
dist/ディレクトリにコンパイルされます。
設定
サーバーは環境変数を使用して設定できます:
NPM_CACHE_TTL:キャッシュの有効期間(秒)。デフォルト:86400(24 時間)NPM_CACHE_DB_PATH:SQLite データベースファイルへのパス。デフォルト:./dist/npm-docs-cache.db(ビルド後のプロジェクトルートからの相対パス)。設定すると、デフォルト値が上書きされます。絶対パス、またはサーバーの起動時における現在の作業ディレクトリからの相対パスを指定できます。LOG_LEVEL:詳細なログを出力するにはdebugに設定します。デフォルト:info注:NPM_REGISTRY_URL設定変数も存在しますが、サーバーはnpms.ioAPI を使用するため、現在は無視されます。
サーバーの実行
コンパイル済みサーバーは、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 オブジェクト。以下が含まれます:
nameversiondescriptionhomepage(利用可能な場合)repository(URL。利用可能な場合)author(名前。利用可能な場合)license(利用可能な場合)keywords(利用可能な場合)dependenciesdevDependenciesreadmeContent(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 とフォーマットが自動的に行われます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。