Skip to main content
Glama

NVD データベース MCP サーバー

PyPI - バージョン

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, default 10 ): CVE レコードの最大数 (1-2000)。

    • 返される値: 一致する CVE とその合計数のリスト。

構成

  1. 次の場所にある Claude Desktop 構成ファイルを作成または編集します。

    • macOSの場合: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows の場合: %APPDATA%/Claude/claude_desktop_config.json

  2. 以下を追加します。

{ "mcpServers": { "mcp-nvd": { "command": "/path/to/uvx", "args": ["mcp-nvd"], "env": { "NVD_API_KEY": "your-api-key" } } } }
  1. /path/to/uvxuvx実行ファイルへの絶対パスに置き換えます。ターミナルでwhich uvxコマンドのパスを確認してください。これにより、サーバーの起動時に正しいバージョンのuvxが使用されるようになります。

  2. 変更を適用するには、Claude Desktop を再起動します。

発達

設定

  1. 前提条件:

  2. リポジトリのクローンを作成します:

git clone https://github.com/marcoeg/mcp-nvd cd mcp-nvd
  1. 環境変数を設定する:

    • プロジェクト ルートに.envファイルを作成します。

      NVD_API_KEY=your-api-key
    • your-api-key NVD API キーに置き換えます。

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

uv sync uv pip install -e .

MCPインスペクターで実行する

cd /path/to/the/repo source .env npx @modelcontextprotocol/inspector uv \ --directory /path/to/repo/mcp-nvd run mcp-nvd

次に、MCP インスペクターによって示された URL (通常はhttp://localhost:8077?proxyPort=8078をブラウザで開きます。

インスペクターでstdiosseトランスポート タイプを自由に切り替えます。

SSEクライアントでのテスト

サーバーを実行します。

cd /path/to/the/repo source .env uv run mcp-nvd --transport sse --port 9090
  • デフォルトではポート9090で SSE トランスポートを使用して実行されます。

クライアントを実行します。

get_cveをテストします:

uv run client.py http://localhost:9090/sse CVE-2019-1010218

テストsearch_cve (デフォルト 10 件の結果):

uv run client.py http://localhost:9090/sse "search:Red Hat"

テストsearch_cve (完全一致、5 件の結果):

uv run client.py http://localhost:9090/sse "search:Microsoft Windows:exact:5"

Dockerのセットアップ

建てる

docker build -t mcp-nvd:latest .

走る

.envの場合:

docker run -d -p 9090:9090 -v /path/to/.env:/app/.env mcp-nvd:latest

env var の場合:

docker run -d -p 9090:9090 -e NVD_API_KEY="your-key" mcp-nvd:latest

カスタム ポート:

docker run -d -p 8080:8080 -v /path/to/.env:/app/.env mcp-nvd:latest uv run mcp-nvd --transport sse --port 8080 --host 0.0.0.0

確認する

docker logs <container_id> # Expect: INFO: Uvicorn running on http://0.0.0.0:9090

テスト:

uv run client.py http://localhost:9090/sse CVE-2019-1010218

注記

  • .envNVD_API_KEY=your-keyがあることを確認するか、 -eを使用してください。

  • デフォルトポート: 9090


以下は、コード ブロック内の Markdown コメントとしてフォーマットされた概要です。これは、 docker-compose.yamlREADME.mdなどのファイルに含めるのに適しています。

テストに Docker Compose を使用する

このdocker-compose.yamltests/ディレクトリにあり、ビルド済みのDockerイメージを用いてMCP-NVDサーバーをテストするためのサービスを定義します。これは、 clickhouseのようなスタンドアロンサービスと同様に、テストユースケース向けに設計されており、イメージは毎回再構築されるのではなく、事前にビルドされることを前提としています。

仮定

  • ビルド済みイメージ:このサービスは、ローカルまたはレジストリで利用可能なmcp-nvd:testタグ付きのビルド済みイメージを使用します。このイメージは親ディレクトリにあるDockerfileに基づいており、 uvを使用して MCP-NVD サーバーをセットアップし、ポート 9090 で SSE モードで実行します。

イメージの構築方法

mcp-nvd:testイメージを作成するには:

  1. プロジェクト ルートに移動します。

    cd ./mcp-nvd
  2. Dockerfile を使用してイメージをビルドします。

    docker build -t mcp-nvd:test .
    • これにより、 pyproject.tomlmcp_nvd/モジュールからのすべての依存関係を含むイメージがビルドされ、サーバーを実行するためのデフォルトのコマンドが設定されます。

サービスの実行

tests/ディレクトリから:

cd tests docker-compose up
  • アクセス: サーバーは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 ) を実行するには:

  1. サービスを開始します。docker docker-compose upを実行して、 mcp-nvdサービスが実行されていることを確認します。

  2. コンテナ内で実行:

    • コンテナ名 (例: 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 .を使用してイメージを再構築します。

  3. 代替案: コンテナ化されたサービスに対してローカルでテストを実行します。

    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

-
security - not tested
-
license - not tested
-
quality - not tested

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A 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 -
    14
    MIT License
    • Linux
    • Apple
  • A
    security
    -
    license
    A
    quality
    A Model Context Protocol server designed for testing backend APIs for security vulnerabilities like authentication bypass, injection attacks, and data leakage.
    Last updated -
    14
    11
    MIT License
  • A
    security
    -
    license
    A
    quality
    A 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 -
    19
    183
    8
    TypeScript
    MIT License
    • Apple
    • Linux
  • A
    security
    -
    license
    A
    quality
    A 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 -
    1
    7
    Apache 2.0
    • Linux

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcoeg/mcp-nvd'

If you have feedback or need assistance with the MCP directory API, please join our Discord server