Token导航 LogoToken导航TokenDH.com
A2A Vulnerability Scanner logo
安全风控未说明官方级别未说明来源级核验

A2A Vulnerability Scanner

MCP Server

一个基于多代理AI系统的漏洞扫描器,用于检测网站安全漏洞,支持A2A协议和MCP协议。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
AI代理安全分析Python漏洞检测

安装说明

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

作者 / 组织

Khaledayman9

提供方

Khaledayman9

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

A2A漏洞扫描器——基于AI的安全分析

Python TypeScript Next.js FastAPI

LangChain LangGraph A2A MCP Apache License

一个多代理人工智能系统,扫描网站的安全漏洞。它使用 A2A(代理对代理)协议 用于编排和 MCP(模型上下文协议) 用于工具集成。专业代理协同工作:他们收集威胁情报,抓取网站,分析漏洞,并生成报告。

______________________________________________________________________

目录

______________________________________________________________________

概述

  • 多代理设置:在运行时发现5个AI代理(编排器、web_search、web_scanner、漏洞分析器、报告生成器)。
  • 精心编排的工作流程:Orchestrator运行管道,并通过以下方式按顺序调用其他代理 A2A.
  • 工具:代理,如 网络搜索 使用 主控程序 用于威胁情报的服务器(例如DuckDuckGo、CVE搜索)。
  • API:8000端口上的FastAPI网关;扫描和报告端点。
  • 前端:Next.js应用程序,带有扫描表单、实时状态、结果和PDF导出。

技术栈

  • 后端: Python 3.11、FastAPI、Uvicorn。
  • 代理层: A2A(代理对代理)协议 用于代理间通信; MCP(模型上下文协议) 以及用于工具服务器的FastMCP;用于编排的LangChain/LangGraph。
  • 前端: Next.js、TypeScript、顺风CSS。

______________________________________________________________________

协议和标准(A2A、MCP)

该项目建立在 A2A主控程序:

  • A2A(代理人对代理人) --编排器和所有代理使用A2A协议通过HTTP进行通信。每个代理都公开端点(例如。 /execute, /search, /scan, /analyze, /generate);编排器在运行时发现代理,并按顺序调用它们以运行扫描管道。这使代理保持解耦和可重用。
  • MCP(模型上下文协议) --需要外部工具(如网络搜索、CVE查找)的代理连接到 MCP服务器The 网络搜索 代理使用MCP调用DuckDuckGo等工具进行HTML搜索;MCP客户端动态加载工具并且AI决定何时以及如何使用它们。该项目包括 mcp_servers 模块和MCP客户端管理。
  • 快速MCP --此代码库中的MCP服务器在适用的情况下使用FastMCP实现。

______________________________________________________________________

建筑

特工们互相交谈 A2A 网络搜索 代理使用 主控程序 访问外部工具。

                    API Gateway (port 8000)
                    /api/scan, /api/scan/{id}
                              │
                              ▼
                    Orchestrator (8001)
                    Runs the 4-step pipeline
                              │
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
  Web Search (8005)    Web Scanner (8002)   Vulnerability Analyzer (8003)
  Threat intel, CVE     Crawl, subdomains    Headers, SSL, XSS, SQLi, etc.
        │                     │                     │
        └─────────────────────┼─────────────────────┘
                              ▼
                    Report Generator (8004)
                    Summary, findings, PDF-ready report
  • API网关(8000): 接受 POST /api/scanGET /api/scan/{scan_id}.
  • 编曲师(8001): 通过以下方式协调四个步骤 A2A;发现并调用每个代理的HTTP端点。
  • 网络搜索(8005): 用途 主控程序 连接到工具服务器(例如DuckDuckGo HTML搜索、CVE搜索)以获取威胁/CVE上下文。
  • 网络扫描仪(8002): 获取目标页面和链接页面,可选子域发现。
  • 漏洞分析器(8003): 安全标头、SSL、表单、XSS、SQLi、过时的技术。
  • 报告生成器(8004): 执行摘要、调查结果、建议、PDF结构。

______________________________________________________________________

扫描管道

当您开始扫描时,编排器按顺序运行四个步骤:

  1. 网络搜索 --收集有关目标/技术的公共信息和CVE。
  2. Web扫描仪 --抓取目标URL并发现页面(以及可选的子域)。
  3. 漏洞分析器 --评估标头、SSL、表单、XSS、SQLi和技术栈。
  4. 报告生成器 --构建执行摘要、详细调查结果和建议。

前端民意调查 GET /api/scan/{scan_id} 直到 statuscompletedfailed,然后显示结果。

______________________________________________________________________

用户界面

UI是一个包含以下部分的单页应用程序(这里没有逻辑,只有结构):

  • 头球

- 应用程序名称(例如“SecureScan AI”)、简短标语、小型“安全”和“深度扫描”徽章。

  • 信息横幅

- “仅用于教育目的”,并注明只扫描您允许测试的目标。

  • 扫描表单(开始新扫描)

- 目标网址 --文本输入,例如。 https://example.com. - 扫描深度 --滑块(例如1-5);低=更快,高=更彻底。 - 包括子域发现 --复选框。 - 启动安全扫描 --提交;运行时显示“正在扫描…”。

  • 结果(扫描开始后)

- 正在进行中: - Spinner,“正在扫描”,当前 status,短信,如“正在分析网站…”、“正在检查安全性…”和“正在生成报告…”。 - 失败: - 错误图标和消息。 - 完整的: - 成功标头 --目标URL。 - 漏洞摘要 --按严重程度计数(例如严重、高、中、低、信息)。 - 执行摘要 --文本块。 - 漏洞列表 --每个都有标题、严重程度、描述、受影响的URL、证据、补救措施、CWE(如果存在)。 - 建议 --编号列表。 - 导出PDF --下载报告PDF的按钮(从相同的结果数据在客户端生成)。

  • 空状态

- 未启动扫描时显示:“准备扫描”和简短说明。

  • 页脚

- 版权、“仅供教育使用”以及隐私、条款、文档的占位符。

______________________________________________________________________

先决条件

  • 码头工人Docker Compose (针对AI服务)。
  • Node.js 18+及 npm (对于前端,如果您在本地运行它)。
  • API密钥

- OPENAI_API_KEY (LLM电话需要)。 - OPENAI_BASE_URL (可选;默认 https://api.openai.com/v1;可以指向Azure/其他)。 - GOOGLE_API_KEY (可选;对于某些代理/工具)。

______________________________________________________________________

如何跑步

1.人工智能服务(后端+代理)

从项目根:

cd ai-service

根据示例创建env:

cp .env.example .env

编辑 .env 并且至少设置:

  • OPENAI_API_KEY=your_key
  • OPENAI_BASE_URL (如果使用自定义端点)
  • GOOGLE_API_KEY (可选)

启动堆栈:

docker compose up
  • API http://localhost:8000
  • 文件: http://localhost:8000/docs

您可能会看到:\ the attribute version is obsolete\ --那是从 version 领域 docker-compose.yml忽略或删除是安全的 version 以清除警告。

2.前端(可选,用于UI)

在另一个终端中,从项目根目录开始:

cd frontend

创建env(这样应用程序就知道API在哪里):

cp .env.example .env.local

确保 .env.local 有:

NEXT_PUBLIC_API_URL=http://localhost:8000

安装并运行:

npm install
npm run dev

打开 http://localhost:3000Next.js应用程序重写 /api/*http://localhost:8000/api/*,因此“启动安全扫描”将调用AI服务。

3.运行顺序

  1. 首先启动AI服务: cd ai-service && docker compose up
  2. 代理启动后,启动前端: cd frontend && npm run dev
  3. 使用UI http://localhost:3000 或者直接调用API。

______________________________________________________________________

示例执行

当AI服务启动时,它会加载代理并注册它们:

INFO: Starting Vulnerability Scanner Backend
INFO: Loading and starting agents...
INFO: Discovered 5 agents: ['orchestrator', 'report_generator', 'vulnerability_analyzer', 'web_scanner', 'web_search']
INFO: → orchestrator will run at: http://0.0.0.0:8001
INFO: → report_generator will run at: http://0.0.0.0:8004
INFO: → vulnerability_analyzer will run at: http://0.0.0.0:8003
INFO: → web_scanner will run at: http://0.0.0.0:8002
INFO: → web_search will run at: http://0.0.0.0:8005
INFO: ✓ Started 5/5 agents
INFO: Application started successfully

当扫描开始时(例如从UI):

INFO: Started scan  for https://www.example.com
INFO: Starting dynamic scan ... for https://www.example.com
INFO: Step 1: Web Search Intelligence
INFO: Calling web_search at http://localhost:8005/search
...
INFO: Search agent completed for https://www.example.com
INFO: Step 2: Web Scanner
INFO: Calling web_scanner at http://localhost:8002/scan
...
INFO: Web scanner completed for https://www.example.com: 50 pages discovered
INFO: Step 3: Vulnerability Analyzer
INFO: Calling vulnerability_analyzer at http://localhost:8003/analyze
...
INFO: Vulnerability analysis completed: 8 vulnerabilities found
INFO: Step 4: Report Generator
INFO: Calling report_generator at http://localhost:8004/generate
...
INFO: Report generation completed for scan 
INFO: Scan  completed successfully

API返回关于 GET /api/scan/{scan_id}statuscompleted.

______________________________________________________________________

配置

人工智能服务(.envai-service/)

变量必填描述
OPENAI_API_KEYOpenAI(或兼容)API密钥
OPENAI_BASE_URL聊天API的基本URL(默认值: https://api.openai.com/v1)
GOOGLE_API_KEY适用于使用Google API的代理
LOG_DIR日志目录(默认: logs)
API_GATEWAY_HOST绑定主机(默认值: 0.0.0.0)
API_GATEWAY_PORT没有API端口(默认值: 8000)

前端(.env.localfrontend/)

变量描述
NEXT_PUBLIC_API_URL后端基本URL,例如。 http://localhost:8000

______________________________________________________________________

项目结构

Vulnerability Scanner/
├── ai-service/
│   ├── agents/              # A2A agents (orchestrator, web_search, web_scanner, etc.)
│   │   ├── orchestrator/    # Runs the 4-step pipeline via A2A
│   │   ├── web_search/      # Threat intel via MCP (DuckDuckGo, CVE, etc.)
│   │   ├── web_scanner/     # Crawling, subdomains
│   │   ├── vulnerability_analyzer/
│   │   └── report_generator/
│   ├── mcp_servers/         # MCP client manager, tool servers (FastMCP)
│   ├── api/                 # FastAPI app, /api/scan routes
│   ├── shared_utils/        # Base agents, models, tools
│   ├── main.py              # Uvicorn app entry
│   ├── docker-compose.yml
│   ├── Dockerfile
│   └── .env.example
├── frontend/
│   ├── app/                 # Next.js pages (page.tsx, layout, globals.css)
│   ├── components/          # ScanForm, ResultsDisplay, PDFExport
│   ├── next.config.ts       # /api/* → backend
│   └── .env.example
└── README.md

______________________________________________________________________

MCP服务器

  • MCP配置已在 ai-service/mcp_servers/servers.json

自定义MCP服务器添加:

示例:天气MCP:

{
  "Weather": {
    "command": "python",
    "args": ["-m", "a2a_server.mcp.servers.weather"],
    "transport": "stdio"
  },
  "Weather (UV)": {
    "command": "uv",
    "args": ["run", "python", "-m", "a2a_server.mcp.servers.weather"],
    "transport": "stdio"
  }
}

外部MCP服务器:

示例DuckDuckGo(MCP):

网络搜索 代理使用DuckDuckGo MCP服务器进行威胁和CVE搜索:

"ddg-search": {
  "command": "uvx",
  "args": ["duckduckgo-mcp-server"],
  "transport": "stdio"
}
  • 运行时间: uvx duckduckgo-mcp-server --要求 uv 在环境中(Docker镜像安装它)。 uvx 获取并运行 duckduckgo-mcp-server 首次使用时包装。
  • 没有API密钥 --使用DuckDuckGo HTML搜索;没有密钥或环境变量。
  • 自定义: 要更改命令或参数,请编辑 mcp_servers/servers.jsonThe web_search 代理加载 ddg-search 该文件中的条目。

许可证

这个项目是为了 仅限教育和授权测试。仅扫描您拥有或有权测试的系统。

请参阅 LICENSE 条款文件。该项目的部分内容可能使用Apache License 2.0和其他开源许可证(如A2A、LangGraph、MCP、FastMCP)下的代码。

目录标签

目录标签

AI代理安全分析Python漏洞检测本地部署网站扫描多代理系统

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP