secintel-mcp 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,9 @@
1
+ """MCP server for public vulnerability intelligence."""
2
+
3
+ __version__ = "0.0.1"
4
+
5
+
6
+ def main() -> None:
7
+ from secintel_mcp.server import main as _main
8
+
9
+ _main()
secintel_mcp/server.py ADDED
@@ -0,0 +1,27 @@
1
+ """secintel-mcp 서버 진입점."""
2
+
3
+ from mcp.server.mcpserver import MCPServer
4
+ from mcp.types import ToolAnnotations
5
+
6
+ from secintel_mcp import __version__
7
+
8
+ mcp = MCPServer(
9
+ name="secintel-mcp",
10
+ version=__version__,
11
+ instructions=(
12
+ "공개 취약점 인텔리전스(NVD, OSV, FIRST EPSS, CISA KEV)를 조회하고 "
13
+ "CVE 패치 우선순위를 판단 근거와 함께 반환한다."
14
+ ),
15
+ )
16
+
17
+ READ_ONLY = ToolAnnotations(readOnlyHint=True, openWorldHint=False)
18
+
19
+
20
+ @mcp.tool(annotations=READ_ONLY)
21
+ def ping() -> str:
22
+ """서버 연결 상태를 확인한다. 외부 API는 호출하지 않는다."""
23
+ return f"pong (secintel-mcp {__version__})"
24
+
25
+
26
+ def main() -> None:
27
+ mcp.run() # stdio
@@ -0,0 +1,104 @@
1
+ Metadata-Version: 2.4
2
+ Name: secintel-mcp
3
+ Version: 0.0.1
4
+ Summary: MCP server for public vulnerability intelligence (NVD, OSV, FIRST EPSS, CISA KEV) with CVE patch prioritization
5
+ Keywords: mcp,security,cve,vulnerability,epss,kev,nvd,osv
6
+ Author: Changhyun Kim
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 2 - Pre-Alpha
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Topic :: Security
12
+ Requires-Dist: httpx>=0.28.1
13
+ Requires-Dist: mcp>=2.3.0
14
+ Requires-Python: >=3.11
15
+ Description-Content-Type: text/markdown
16
+
17
+ # secintel-mcp
18
+
19
+ > 🚧 개발 중입니다. 아래 도구와 설치 방법은 목표 사양이며, 아직 배포되지 않았습니다.
20
+
21
+ 공개 취약점 인텔리전스(NVD, OSV, FIRST EPSS, CISA KEV)를 AI 에이전트가 사용할 수 있도록 제공하는 [MCP(Model Context Protocol)](https://modelcontextprotocol.io) 서버입니다.
22
+
23
+ CVE 정보 조회, 패키지 버전별 취약점 확인, 실제 악용 여부와 악용 가능성 점수 확인에 더해, 여러 CVE 중 **무엇부터 패치해야 하는지**를 판단 근거와 함께 알려 줍니다.
24
+
25
+ ## 이런 질문에 답합니다
26
+
27
+ - "log4j-core 2.14.1을 쓰고 있는데 위험한가요?"
28
+ - "CVE-2022-22965(Spring4Shell)가 실제로 악용되고 있나요?"
29
+ - "이 CVE 5개 중 무엇부터 패치해야 하나요?"
30
+
31
+ ## 도구
32
+
33
+ | 도구 | 데이터 소스 | 역할 |
34
+ |---|---|---|
35
+ | `lookup_cve` | NVD API 2.0 | CVE 설명, CVSS, CWE, 참조 링크 |
36
+ | `query_package_vulns` | OSV API | 생태계·패키지·버전 기준 취약점 조회 |
37
+ | `get_epss` | FIRST EPSS | 악용 가능성 점수 (일괄 조회) |
38
+ | `check_kev` | CISA KEV | 실제 악용 확인 여부 |
39
+ | `prioritize_cves` | 위 4개 조합 | 우선순위 등급과 판단 근거 반환 |
40
+
41
+ 모든 도구는 읽기 전용이며, 공개 API만 호출합니다.
42
+
43
+ ## 우선순위 규칙
44
+
45
+ `prioritize_cves`는 다음 순서로 등급을 매기고, 어떤 조건에 해당했는지를 결과에 함께 반환합니다.
46
+
47
+ | 등급 | 조건 |
48
+ |---|---|
49
+ | P1 | CISA KEV에 등재됨 (실제 악용이 확인됨) |
50
+ | P2 | EPSS ≥ 0.1 또는 EPSS percentile ≥ 0.95 |
51
+ | P3 | CVSS ≥ 7.0 |
52
+ | P4 | 그 외 |
53
+
54
+ - 임계값은 설정이나 도구 인자로 변경할 수 있습니다.
55
+ - KEV와 EPSS만으로 등급이 정해진 CVE는 NVD를 조회하지 않습니다. 따라서 NVD 요청 한도에 걸리지 않고 더 빨리 응답합니다.
56
+
57
+ 패키지 단위로 우선순위를 매기려면 에이전트가 `query_package_vulns`로 CVE 목록을 얻은 뒤 `prioritize_cves`에 넘기면 됩니다.
58
+
59
+ ## 설치 (예정)
60
+
61
+ ```bash
62
+ uvx secintel-mcp
63
+ ```
64
+
65
+ Claude Desktop 설정 예시 (`claude_desktop_config.json`):
66
+
67
+ ```json
68
+ {
69
+ "mcpServers": {
70
+ "secintel": {
71
+ "command": "uvx",
72
+ "args": ["secintel-mcp"],
73
+ "env": { "NVD_API_KEY": "<선택: NVD API 키>" }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ NVD API 키가 없어도 동작합니다. 다만 키가 없으면 NVD 요청 한도가 30초당 5회로 제한되므로, [NVD에서 무료 키를 발급](https://nvd.nist.gov/developers/request-an-api-key)받아 쓰는 것을 권장합니다.
80
+
81
+ ## 기술 스택
82
+
83
+ Python 3.11+, [uv](https://docs.astral.sh/uv/), [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) 2.x (`MCPServer`), httpx, pytest
84
+
85
+ ## 로드맵
86
+
87
+ - [ ] 도구 5개 최소 동작 버전
88
+ - [ ] KEV·EPSS 일 단위 캐시, NVD 재시도·백오프
89
+ - [ ] 공개 CVE 기반 평가셋과 CI
90
+ - [ ] PyPI 배포
91
+ - [ ] Semgrep·Trivy 결과 파싱 도구 (취약점 트리아지 에이전트로 확장)
92
+
93
+ ## 데이터 출처
94
+
95
+ - [NVD](https://nvd.nist.gov/) — This product uses the NVD API but is not endorsed or certified by the NVD.
96
+ - [OSV](https://osv.dev/)
97
+ - [FIRST EPSS](https://www.first.org/epss/)
98
+ - [CISA Known Exploited Vulnerabilities Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
99
+
100
+ 이 도구의 결과는 패치 우선순위를 판단하는 데 참고하는 자료입니다. 실제 조치는 각 환경에 맞게 검토한 뒤 결정하세요.
101
+
102
+ ## 라이선스
103
+
104
+ MIT
@@ -0,0 +1,7 @@
1
+ secintel_mcp/__init__.py,sha256=dNmwD7gflJC9ION4HRLS4wPfJrxNsA7lPN15sliMH7s,164
2
+ secintel_mcp/server.py,sha256=FJKasU4G-byyA7MzTHBie-mgqmAXEG1tKqvaOTAQN6E,722
3
+ secintel_mcp-0.0.1.dist-info/licenses/LICENSE,sha256=mNcS_HekLiLbBWGbPEJ-yrDcLt6NIAyuZGDNbCAO4hI,1070
4
+ secintel_mcp-0.0.1.dist-info/WHEEL,sha256=3iQx15CyXwGi4dbygedzA4M5T1eqO_SjwdPfUmqt2Cw,81
5
+ secintel_mcp-0.0.1.dist-info/entry_points.txt,sha256=HsgKfeapJpSZ05RrL9AFqn7PsMbsNKfoRKJ-OjbzQ6s,59
6
+ secintel_mcp-0.0.1.dist-info/METADATA,sha256=0d9a0pR1OqQuqVrHXfKwn_KaT-JB2_Cwkud9Kls4lkA,4036
7
+ secintel_mcp-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.12.24
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ secintel-mcp = secintel_mcp.server:main
3
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Changhyun Kim
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.