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 Desktop 앱 및 기타 MCP 호환 호스트와 클라이언트와 함께 작동합니다.
특징
- 자세한 취약성 데이터를 사용하여 ID로 특정 CVE를 쿼리합니다.
- 사용자 정의 가능한 결과 옵션을 사용하여 키워드로 NVD 데이터베이스를 검색하세요.
- 실시간 통신을 위해 SSE(Server-Sent Events) 전송을 지원합니다.
- 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
(정수, 기본값10
): CVE 레코드의 최대 수(1-2000).
- 반환 : 총 개수와 일치하는 CVE 목록입니다.
구성
- 다음 위치에 있는 Claude Desktop 구성 파일을 만들거나 편집하세요.
- macOS의 경우:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows의 경우:
%APPDATA%/Claude/claude_desktop_config.json
- macOS의 경우:
- 다음을 추가합니다.
지엑스피1
/path/to/uvx``uvx
실행 파일의 절대 경로로 바꾸세요. 터미널에서which uvx
명령이 실행되는 경로를 찾으세요. 이렇게 하면 서버를 시작할 때 올바른 버전의uvx
사용됩니다.- 변경 사항을 적용하려면 Claude Desktop을 다시 시작하세요.
개발
설정
- 환경 변수 설정 :
- 프로젝트 루트에
.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개):
도커 설정
짓다
달리다
.env
사용하여:
env var를 사용하여:
사용자 지정 포트:
확인하다
시험:
노트
.env
에NVD_API_KEY=your-key
있는지 확인하거나-e
사용하세요.- 기본 포트:
9090
.
다음은 docker-compose.yaml
이나 README.md
와 같은 파일에 포함하기에 적합한 코드 블록 내의 마크다운 주석 형식으로 요약한 것입니다.
테스트를 위해 Docker Compose 사용
tests/
디렉터리에 있는 이 docker-compose.yaml
파일은 미리 빌드된 Docker 이미지를 사용하여 MCP-NVD 서버를 테스트하는 서비스를 정의합니다. 이 파일은 clickhouse
와 같은 독립형 서비스와 유사한 테스트 사용 사례용으로 설계되었으며, 이미지가 매번 다시 빌드되는 대신 미리 빌드된다고 가정합니다.
가정
- 미리 빌드된 이미지 : 이 서비스는 로컬 또는 레지스트리에서 사용할 수 있는
mcp-nvd:test
태그가 지정된 미리 빌드된 이미지를 사용합니다. 이미지는 상위 디렉터리의Dockerfile
기반으로 하며, 이 파일은 MCP-NVD 서버를uv
로 설정하고 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-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)를 쿼리하기 위한 모델 컨텍스트 프로토콜 서버 구현입니다.