jayc279/security-scanner

GitHub: jayc279/security-scanner

一个基于 Python FastMCP 构建的 MCP 服务器,将 nmap 的网络扫描能力安全地暴露给 Claude Code 和 Cursor,实现 AI 驱动的自动化网络架构探测与漏洞检查。

Stars: 0 | Forks: 0

# FastMCP 安全扫描器服务器 一个使用 Python FastMCP 构建的、企业级可用的 Model Context Protocol (MCP) 服务器。该服务器直接向 Claude Code 和 Cursor 暴露了 nmap 的安全封装,允许自动化工作流查询网络架构、发现开放端口、进行操作系统指纹识别以及检查软件漏洞。 ## 架构与目录结构 本项目采用模块化、解耦的布局结构,会自动注册在隐藏的本地配置路径中发现的新工具: ``` ├── .claude/ │ └── skills/ │ └── port-scan/ │ ├── SKILL.md # Systemic discovery definitions for Claude Code │ └── scripts/ │ ├── __init__.py │ ├── perform_scan.py # Boundary Map Tool (@mcp.tool) │ ├── detect_os.py # OS Signature Tool (@mcp.tool) │ └── detect_vulns.py # Threat Listing Tool (@mcp.tool) ├── pyproject.toml # Build manifests and dependencies (uv/hatchling) ├── local_scanner.py # Main FastMCP Server Hub and Dynamic Coordinator └── test_scanner.py # Complete mock-isolated unit test suite ``` ## 安全与防御性护栏 - 启动前二进制文件验证:如果缺少底层系统级的 nmap 二进制文件,服务器将在启动时优雅地执行失败关闭,防止产生原始的未处理 traceback。 - 输入清理:对 Host 参数进行修剪和验证,以保护服务器免受 shell 注入或恶意目标参数的攻击。 - Mock 隔离测试:单元测试套件完全隔离了网络层,确保在测试例程期间不会有任何流量逃逸到主机接口。 ## 入门指南 ### 1. 前置条件 确保已安装 Python uv 包管理器以及主机级别的 nmap 二进制文件: ``` # macOS brew install nmap # Ubuntu/Debian sudo apt-get install nmap # Windows # 从 https://nmap.org 下载并安装二进制文件 ``` ### 2. 开发环境设置与测试 安装项目依赖并使用预配置的测试套件验证架构: ``` # Clone 并进入 repository 目录 cd security-scanner # 执行 test suite 以验证 module registration 和 mocking uv run pytest test_scanner.py -v ``` ### 3. 在 Claude Code 中注册服务器 要将此服务器在本地链接到您的工作区环境以便进行即时开发分析,请执行标准的发现命令: ``` claude mcp add security-scanner --scope project -- uv run local_scanner.py ``` ## 添加新的扫描功能 该架构采用零维护的动态注册模型。要创建一个新的网络功能: 1. 将新脚本放入 `.claude/skills/port-scan/scripts/` 目录中(例如 `dns_lookup.py`)。 2. 在文件顶部导入共享的 mcp 服务器上下文。 3. 将 `@mcp.tool()` 装饰器应用到您的主函数上。 ``` from local_scanner import mcp @mcp.tool() def identify_dns_records(target: str) -> dict: """Analyze target network zones to resolve active records.""" # Your network parsing logic here return {"status": "complete"} ``` `local_scanner.py` 引擎会在下次启动时自动发现、加载并向 Claude Code 展示这个新工具。
标签:逆向工具