NVD データベース MCP サーバー
API を介して NIST 国家脆弱性データベース (NVD) を照会するためのモデル コンテキスト プロトコルサーバーの実装。https ://nvd.nist.gov/
前提条件として、NVD API キーが必要です。(こちらからリクエストしてください)。
状態
stdioおよびsseトランスポートの両方を使用して、Claude デスクトップ アプリおよびその他の MCP 準拠のホストおよびクライアントで動作します。
特徴
詳細な脆弱性データを使用して、ID で特定の CVE をクエリします。
カスタマイズ可能な結果オプションを使用して、キーワードで NVD データベースを検索します。
リアルタイム通信のための Server-Sent Events (SSE) トランスポートをサポートします。
Claude Desktop などの MCP 準拠クライアントと互換性があります。
ツール
サーバーは、NVD データベースを照会するために次のツールを実装します。
get_cve:説明: ID で CVE レコードを取得します。
パラメータ:
cve_id(str): CVE ID (例:CVE-2019-1010218)。concise(bool、デフォルトはFalse):Trueの場合は、より短い形式を返します。
返されるもの: スコア、弱点、参照を含む詳細な CVE 情報。
search_cve:説明: キーワードで NVD データベースを検索します。
パラメータ:
keyword(str): 検索用語 (例:Red Hat)。exact_match(bool、デフォルトはFalse):Trueの場合は、正確なフレーズ一致が必要です。concise(bool、デフォルトはFalse):Trueの場合は、短い CVE レコードを返します。results(int, default10): CVE レコードの最大数 (1-2000)。
返される値: 一致する CVE とその合計数のリスト。
構成
次の場所にある Claude Desktop 構成ファイルを作成または編集します。
macOSの場合:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows の場合:
%APPDATA%/Claude/claude_desktop_config.json
以下を追加します。
/path/to/uvxをuvx実行ファイルへの絶対パスに置き換えます。ターミナルでwhich uvxコマンドのパスを確認してください。これにより、サーバーの起動時に正しいバージョンのuvxが使用されるようになります。変更を適用するには、Claude Desktop を再起動します。
発達
設定
前提条件:
Python 3.10 以上。
NVD API キー (こちらからリクエスト)。
uvパッケージ マネージャー (インストール)。
リポジトリのクローンを作成します:
環境変数を設定する:
プロジェクト ルートに
.envファイルを作成します。NVD_API_KEY=your-api-keyyour-api-keyNVD API キーに置き換えます。
依存関係をインストール:
MCPインスペクターで実行する
次に、MCP インスペクターによって示された URL (通常はhttp://localhost:8077?proxyPort=8078をブラウザで開きます。
インスペクターで
stdioとsseトランスポート タイプを自由に切り替えます。
SSEクライアントでのテスト
サーバーを実行します。
デフォルトではポート
9090で SSE トランスポートを使用して実行されます。
クライアントを実行します。
get_cveをテストします:
テストsearch_cve (デフォルト 10 件の結果):
テストsearch_cve (完全一致、5 件の結果):
Dockerのセットアップ
建てる
走る
.envの場合:
env var の場合:
カスタム ポート:
確認する
テスト:
注記
.envにNVD_API_KEY=your-keyがあることを確認するか、-eを使用してください。デフォルトポート:
9090。
以下は、コード ブロック内の Markdown コメントとしてフォーマットされた概要です。これは、 docker-compose.yamlやREADME.mdなどのファイルに含めるのに適しています。
テストに Docker Compose を使用する
このdocker-compose.yaml 、 tests/ディレクトリにあり、ビルド済みのDockerイメージを用いてMCP-NVDサーバーをテストするためのサービスを定義します。これは、 clickhouseのようなスタンドアロンサービスと同様に、テストユースケース向けに設計されており、イメージは毎回再構築されるのではなく、事前にビルドされることを前提としています。
仮定
ビルド済みイメージ:このサービスは、ローカルまたはレジストリで利用可能な
mcp-nvd:testタグ付きのビルド済みイメージを使用します。このイメージは親ディレクトリにあるDockerfileに基づいており、uvを使用して MCP-NVD サーバーをセットアップし、ポート 9090 で SSE モードで実行します。
イメージの構築方法
mcp-nvd:testイメージを作成するには:
プロジェクト ルートに移動します。
cd ./mcp-nvdDockerfile を使用してイメージをビルドします。
docker build -t mcp-nvd:test .これにより、
pyproject.tomlとmcp_nvd/モジュールからのすべての依存関係を含むイメージがビルドされ、サーバーを実行するためのデフォルトのコマンドが設定されます。
サービスの実行
tests/ディレクトリから:
アクセス: サーバーは
http://localhost:9090で実行されます。停止:
docker-compose down。環境:
NVD_API_KEYが../.envにあることを確認するか、docker-compose --env-file ../.env upを使用します。
Docker Compose シナリオでtest_tools.pyを実行する
Docker 環境内でユニット テスト ( test_tools.py ) を実行するには:
サービスを開始します。docker
docker-compose upを実行して、mcp-nvdサービスが実行されていることを確認します。コンテナ内で実行:
コンテナ名 (例:
mcp-nvd-mcp-nvd-1) を次のように識別します。docker psコンテナ内でテストを実行します。
docker exec -it mcp-nvd-mcp-nvd-1 python /app/tests/test_tools.py注:
test_tools.pyがイメージの/app/tests/にコピーされていることを前提としています。コピーされていない場合は、Dockerfileに以下を追加してください。COPY tests/ ./tests/次に、ルートから
docker build -t mcp-nvd:test .を使用してイメージを再構築します。
代替案: コンテナ化されたサービスに対してローカルでテストを実行します。
cd tests python test_tools.pyこれは、サービスの実行中に
http://localhost:9090に対してテストを行います。
主な詳細
ポート: 9090 は SSE アクセス用に公開されています。
ログ:
log-dataボリュームに保存されます (オプション)。イメージ:
docker-composeを実行する前に、一度ビルドしてmcp-nvd:testとしてタグ付けする必要があります。
SSE ベースの MCP クライアントとサーバーの動作パターンを提供してくれた@sidharthrajaramに感謝します: https://github.com/sidharthrajaram/mcp-sse
This server cannot be installed
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants to search and retrieve information about security exploits and vulnerabilities from the Exploit Database, enhancing cybersecurity research capabilities.Last updated -14MIT License
- Asecurity-licenseAqualityA Model Context Protocol server designed for testing backend APIs for security vulnerabilities like authentication bypass, injection attacks, and data leakage.Last updated -1411MIT License
- Asecurity-licenseAqualityA Model Context Protocol server that enables AI-powered analysis of NPM packages through multiple tools for security vulnerability scanning, dependency analysis, package comparison, and quality assessment.Last updated -191838TypeScriptMIT License
- Asecurity-licenseAqualityA Model Context Protocol server that retrieves CVE information from the National Vulnerability Database, allowing AI models to access up-to-date vulnerability data.Last updated -17Apache 2.0