remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Enables searching for vulnerabilities related to Red Hat products in the NVD database using keyword search functionality
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.json
- Windows の場合:
%APPDATA%/Claude/claude_desktop_config.json
- macOSの場合:
- 以下を追加します。
/path/to/uvx
をuvx
実行ファイルへの絶対パスに置き換えます。ターミナルでwhich uvx
コマンドのパスを確認してください。これにより、サーバーの起動時に正しいバージョンのuvx
が使用されるようになります。- 変更を適用するには、Claude Desktop を再起動します。
発達
設定
- 前提条件:
- Python 3.10 以上。
- NVD API キー (こちらからリクエスト)。
uv
パッケージ マネージャー (インストール)。
- リポジトリのクローンを作成します:
- 環境変数を設定する:
- プロジェクト ルートに
.env
ファイルを作成します。Copy your-api-key
NVD 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
イメージを作成するには:
- プロジェクト ルートに移動します。Copy
- Dockerfile を使用してイメージをビルドします。Copy
- これにより、
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
) を次のように識別します。Copy - コンテナ内でテストを実行します。Copy
- 注:
test_tools.py
がイメージの/app/tests/
にコピーされていることを前提としています。コピーされていない場合は、Dockerfileに以下を追加してください。次に、ルートからCopydocker build -t mcp-nvd:test .
を使用してイメージを再構築します。
- コンテナ名 (例:
- 代替案: コンテナ化されたサービスに対してローカルでテストを実行します。Copy
- これは、サービスの実行中に
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
API を介して NIST 国家脆弱性データベース (NVD) を照会するためのモデル コンテキスト プロトコル サーバーの実装。