Token导航 LogoToken导航TokenDH.com
Maven Dep Vuln Scan Remediator AI Rag logo
安全风控stdio官方级别未说明来源级核验

Maven Dep Vuln Scan Remediator AI Rag

MCP Server

基于AI和Neo4j图数据库的Java项目依赖漏洞扫描与修复系统,支持OWASP依赖检查、可视化分析和自动修复建议。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
安全分析Python图数据库依赖管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

baturorkun

提供方

baturorkun

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -d \

详细介绍

支持Maven依赖扫描和修复以及AI RAG

一个基于人工智能的安全分析系统,用于使用Neo4j图形数据库、MCP(模型上下文协议)工具和LLM代理分析OWASP依赖性检查报告。

🎯 概述

该项目为以下方面提供了全面的解决方案:

  • 🔍 使用OWASP依赖性检查扫描Java项目的依赖性漏洞
  • 📊 将漏洞数据导入Neo4j图形数据库
  • 🤖 使用LLM代理和MCP工具进行人工智能分析
  • 📈 用于可视化和分析的交互式仪表板
  • 🔗 基于可用安全版本的自动修复建议

🏗️ 建筑

┌─────────────────────┐
│  Java Project       │
│  (Maven/Gradle)     │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ OWASP Dependency    │
│ Check Scanner       │
│ (Container)  │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ Import Script       │
│ (import_odc_to_     │
│  neo4j.py)          │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐         ┌─────────────────┐
│     Neo4j Graph     │◄────────┤   MCP Tools     │
│     Database        │         │   (server.py)   │
└──────────┬──────────┘         └────────┬────────┘
           │                             │
           ▼                             ▼
┌─────────────────────┐         ┌─────────────────┐
│  Streamlit          │         │   LLM Agent     │
│  Dashboard          │         │   (agent.py)    │
└─────────────────────┘         └─────────────────┘

👤 用户流程

选项1:Web仪表板(建议大多数用户使用)

┌──────────────────────────────────────────────────────────────────┐
│ 1. USER OPENS BROWSER                                            │
│    → streamlit run dashboard.py                                  │
│    → Opens http://localhost:8501                                 │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│ 2. USER SEES DASHBOARD TABS                                      │
│    [Overview] [Risk Analysis] [Dependency Graph] [CVE] [AI Chat] │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                ┌───────────┴──────────┬────────────┬──────────────┐
                ▼                      ▼            ▼              ▼
    ┌───────────────────┐  ┌──────────────────┐  ┌────────┐  ┌─────────┐
    │ Overview Tab      │  │ Risk Analysis    │  │ Graph  │  │ AI Chat │
    │                   │  │                  │  │        │  │         │
    │ • Total CVEs      │  │ • Top 10 Risky   │  │ Visual │  │ Natural │
    │ • Severity Chart  │  │   Dependencies   │  │ Graph  │  │ Language│
    │ • Module Summary  │  │ • Risk Scores    │  │        │  │ Queries │
    └───────────────────┘  └──────────────────┘  └────────┘  └─────────┘
                                                                    │
                                                                    ▼
                                                    ┌────────────────────────┐
                                                    │ USER ASKS QUESTIONS:   │
                                                    │                        │
                                                    │ "What are the top 10   │
                                                    │  riskiest deps?"       │
                                                    │                        │
                                                    │ "Show me all CRITICAL  │
                                                    │  CVEs in log4j"        │
                                                    │                        │
                                                    │ "What's the safe       │
                                                    │  version for X?"       │
                                                    └───────────┬────────────┘
                                                                │
                                                                ▼
                                        ┌───────────────────────────────────┐
                                        │ 3. AI AGENT PROCESSES QUERY       │
                                        │    (Behind the scenes)            │
                                        │                                   │
                                        │    THOUGHT: "I need to query Neo4j│
                                        │             for dependencies..."  │
                                        │                                   │
                                        │    ACTION: Calls MCP Tool         │
                                        │            read_neo4j_query()     │
                                        └───────────────┬───────────────────┘
                                                        │
                                                        ▼
                                        ┌───────────────────────────────────┐
                                        │ 4. MCP TOOLS EXECUTE              │
                                        │    → Query Neo4j Graph DB         │
                                        │    → Fetch CVE data from NVD      │
                                        │    → Generate visualizations      │
                                        │    → Calculate risk scores        │
                                        └───────────────┬───────────────────┘
                                                        │
                                                        ▼
                                        ┌───────────────────────────────────┐
                                        │ 5. USER RECEIVES ANSWER           │
                                        │                                   │
                                        │    "Found 5 dependencies with     │
                                        │     CRITICAL vulnerabilities:     │
                                        │                                   │
                                        │     1. log4j-core 2.14.1          │
                                        │        → CVE-2021-44228 (10.0)    │
                                        │        → Recommended: 2.17.1      │
                                        │                                   │
                                        │     2. jackson-databind 2.9.8     │
                                        │        → CVE-2020-36518 (9.8)     │
                                        │        → Recommended: 2.12.6.1"   │
                                        └───────────────────────────────────┘

选项2:命令行代理(适用于高级用户)

┌──────────────────────────────────────────────────────────────────┐
│ USER RUNS: python agent.py                                       │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│ INTERACTIVE CHAT SESSION STARTS                                  │
│                                                                   │
│ You: What are the top 10 riskiest dependencies?                  │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│ AGENT SHOWS REASONING (ReAct Pattern)                            │
│                                                                   │
│ 💭 THOUGHT: I should use the analyze_risk_statistics tool...     │
│                                                                   │
│ 🔧 ACTION: analyze_risk_statistics()                             │
│                                                                   │
│ 📊 OBSERVATION: Retrieved risk data with 47 total deps...        │
│                                                                   │
│ 💭 THOUGHT: Now I can answer with the top 10 by risk score...    │
│                                                                   │
│ 🤖 ANSWER: Here are the top 10 riskiest dependencies:            │
│    1. log4j-core 2.14.1 (Risk: 95/100) - 3 CRITICAL CVEs         │
│    2. jackson-databind 2.9.8 (Risk: 87/100) - 2 HIGH CVEs        │
│    ...                                                            │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│ You: What's the recommended upgrade for log4j-core?              │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│ 💭 THOUGHT: I need to query Neo4j for RECOMMENDED_VERSION...     │
│                                                                   │
│ 🔧 ACTION: read_neo4j_query(                                     │
│      "MATCH (d:Dependency {artifactId: 'log4j-core'})            │
│       -[:RECOMMENDED_VERSION]->(v:ArtifactVersion)               │
│       RETURN v.version")                                         │
│                                                                   │
│ 📊 OBSERVATION: Found version 2.17.1                             │
│                                                                   │
│ 🤖 ANSWER: Recommended version for log4j-core: 2.17.1            │
│    This version has no known CVEs and is safe to upgrade to.     │
└──────────────────────────────────────────────────────────────────┘

完整的查询过程(幕后)

USER QUESTION                    AI AGENT                  MCP TOOLS              NEO4J DATABASE
     │                              │                          │                         │
     │ "Show CVEs in module1"       │                          │                         │
     ├─────────────────────────────>│                          │                         │
     │                              │                          │                         │
     │                              │ 💭 Parse question        │                         │
     │                              │ 💭 Identify: Need Neo4j  │                         │
     │                              │                          │                         │
     │                              │ read_neo4j_query()       │                         │
     │                              ├─────────────────────────>│                         │
     │                              │                          │                         │
     │                              │                          │ MATCH (m:Module         │
     │                              │                          │  {name:'module1'})      │
     │                              │                          │ -[:USES_DEPENDENCY]->   │
     │                              │                          │  (d)-[:HAS_VULN]->(v)   │
     │                              │                          ├────────────────────────>│
     │                              │                          │                         │
     │                              │                          │    Execute Cypher       │
     │                              │                          │    Return Results       │
     │                              │                          │(Module)
(Module)-[:USES_DEPENDENCY]->(Dependency)
(Dependency)-[:HAS_VULNERABILITY]->(Vulnerability)
(Dependency)-[:CURRENT_VERSION {project, module}]->(ArtifactVersion)
(Dependency)-[:RECOMMENDED_VERSION {project, module}]->(ArtifactVersion)
(Dependency)-[:AVAILABLE_VERSION {project, module}]->(ArtifactVersion)
(ArtifactVersion)-[:UPGRADES_TO]->(ArtifactVersion)
(Dependency)-[:DEPENDS_ON]->(Dependency)

主要财产

附属国:

  • sha256:唯一标识符
  • groupId, artifactId, detectedVersion:Maven坐标
  • isDirectDependency:布尔值(来自GraphML分析)
  • hasRemediation:布尔值(可进行安全升级)
  • usedByProjects[]:项目代码数组
  • usedByModules[]:模块名称数组

工件版本:

  • version:版本字符串(例如“2.17.0”)
  • majorVersion, minorVersion, patchVersion:解析整数
  • hasCVE:布尔值
  • cveCount:CVE数量
  • highSeverityCVECount:高/临界CVE的数量

脆弱性:

  • name:CVE标识符
  • severity:临界、高、中、低
  • cvssScore:CVSS分数(浮动)
  • description:漏洞描述

🛠️ MCP工具

系统提供以下MCP工具:

1. analyze_risk_statistics()

返回全面的风险分析,包括:

  • 项目和模块概述
  • 漏洞计数和严重性分布
  • 风险评分最高的10个依赖关系
  • CVSS统计

2. read_neo4j_query(query: str)

在Neo4j数据库上执行Cypher查询,并自动纠正常见错误。

3. visualize_dependency_graph(limit: int, output_file: str)

生成显示依赖关系及其漏洞的可视化依赖关系图。

4. enrich_cve_data(cve_id: str)

从NVD API获取详细的CVE信息。

5.实用工具

  • get_current_time(timezone: str)
  • calculate(expression: str)
  • get_weather(city: str) (模拟数据)

📊 查询示例

通过补救措施找到直接依赖关系

MATCH (d:Dependency {isDirectDependency: true, hasRemediation: true})
  -[:RECOMMENDED_VERSION]->(rec:ArtifactVersion)
RETURN d.groupId, d.artifactId, d.detectedVersion, 
       rec.version AS remediationVersion

获取特定依赖项的所有CVE

MATCH (d:Dependency {artifactId: "log4j-core"})
  -[:HAS_VULNERABILITY]->(v:Vulnerability)
RETURN v.name, v.severity, v.cvssScore
ORDER BY v.cvssScore DESC

查找升级路径

MATCH path = (cv:ArtifactVersion {version: "2.14.1"})
  -[:UPGRADES_TO*]->(rv:ArtifactVersion {version: "2.17.0"})
RETURN path

🤖 LLM代理功能

LLM代理人(agent.py)实施:

  • 重演模式:展示推理(思考→ 行动→ 观察)
  • 自动校正:修复常见的Cypher语法错误(例如GROUP BY)
  • 错误预防:通过强烈警告防止幻觉
  • 模式感知:已加载Neo4j模式指南(prompt.neo4j.md)
  • 工具链:可以调用多种工具来回答复杂的问题

📈 仪表板功能

Streamlit仪表板(dashboard.py)提供:

  • 概述选项卡:漏洞计数和严重性分布
  • 风险分析选项卡:完整的风险统计数据和最高风险依赖关系
  • 依赖关系图选项卡:可视化图形生成
  • CVE查找选项卡:来自NVD的详细CVE信息
  • AI聊天选项卡:与LLM客服互动聊天

🧪 测试

# Test Neo4j connection
cd rag_graphdb
python verify_neo4j.py

# Test all MCP tools
python test_tools.py

# Test specific query
python -c "
import sys
sys.path.insert(0, '../mcp_agent')
from tools import read_neo4j_query
print(read_neo4j_query('MATCH (v:Vulnerability) RETURN count(v)'))
"

📚 文档

  • rag_graphdb/.docs/plan1.md:Neo4j模式设计和原理
  • rag_graphdb/.docs/README.md:实施指南
  • mcp_agent/prompt.neo4j.md:LLM的Neo4j模式指南
  • version-scanner-odc/README.md:扫描仪使用指南

🔐 安全须知

  • 安全地存储Neo4j凭据(使用 .env 文件)
  • 不要将API密钥提交到版本控制
  • 申请前审查补救建议
  • 首先在临时环境中测试升级

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📝 许可证

有关详细信息,请参阅LICENSE文件。

🙏 致谢

  • OWASP依赖性检查项目
  • Neo4j图形数据库
  • FastMCP框架
  • Streamlit框架
  • 模型上下文协议(MCP)规范

📞 支持

对于问题和疑问:

  • 在GitHub上打开一个问题
  • 检查中的现有文档 .docs/ 文件夹
  • 查看中的示例查询 prompt.neo4j.md

______________________________________________________________________

备注:这是一个积极的发展项目。功能和API可能会发生变化。

目录标签

目录标签

安全分析Python图数据库依赖管理本地部署AI辅助漏洞修复

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP