Mcp_subfinder_server

Mcp_subfinder_server

🚀 MCP 子域发现服务器

一个模型上下文协议(MCP)服务器,封装了 ProjectDiscovery 的 subfinder 工具,借助 JSON-RPC API 提供强大的子域枚举功能,能高效发现目标域名的子域。

🚀 快速开始

本项目提供了通过二进制文件和 Docker 两种安装方式,你可以根据自己的需求进行选择。

通过二进制文件安装

# 下载并编译项目
git clone https://github.com/copyleftdev/mcp-subfinder.git
cd mcp-subfinder
go build -o mcp-subfinder .

# 启动服务器
./mcp-subfinder --port=8080

通过 Docker 安装

# 构建 Docker 镜像
make docker

# 运行容器
make docker-run

✨ 主要特性

MCP Subfinder 服务器具备以下强大功能:

  1. 子域枚举:借助多种数据源,全面发现目标域名的所有子域。
  2. 递归扫描:支持可选的递归模式,可深度遍历子域。
  3. 过滤配置:允许指定使用或排除的数据源,灵活定制扫描范围。
  4. 超时控制:可设置任务超时时间,保障扫描效率。

📚 详细文档

使用说明

启动服务器后,可通过以下接口与服务器进行交互:

JSON-RPC 接口

示例请求
{
"jsonrpc": "2.0",
"method": "enumerateSubdomains",
"params": {
"domain": "example.com",
"timeout": 120,
"recursive": true,
"maxDepth": 2,
"sourcesFilter": ["github", "dnsdumpster"],
"excludeSourcesFilter": ["waybackarchive"]
},
"id": 1
}
参数说明
参数 类型 描述 默认值
domain string 需要枚举的域名(必填) -
timeout int 枚举任务超时时间,单位秒 120
recursive bool 是否递归检查发现的子域 false
maxDepth int 递归的最大深度 2
sourcesFilter array 指定使用的数据源列表 -
excludeSourcesFilter array 需要排除的数据源列表 -

健康检查接口

curl http://localhost:8080/health

架构

flowchart LR
Client([客户端]) -->|JSON-RPC| MCP[MCP 服务器]
MCP -->|初始化/工具列表| Client
MCP -->|处理请求| SF[Subfinder 包装器]
SF -->|配置| CFG[provider-config.yaml]
SF -->|调用| PD[ProjectDiscovery Subfinder]
PD -->|被动数据源| API1[公共及私人API]
PD -->|结果| SF
SF -->|处理后结果| MCP
MCP -->|JSON 响应| Client

项目结构

  • mcp-subfinder.go:主服务文件,包含服务器启动和请求处理逻辑。
  • subdomain_enumerator.go:子域枚举核心逻辑,整合了 ProjectDiscovery 的 subfinder 工具。
  • config.go:配置管理模块,支持自定义端口、数据源过滤等设置。
  • Dockerfile:用于构建 Docker 镜像的文件。
  • Makefile:项目构建和运行脚本,简化命令行操作。

🔧 技术细节

所有繁重的子域枚举工作由 ProjectDiscovery 完成。

📄 许可证

本项目遵循 MIT 许可证。

版本信息

  • Go Version
  • MCP Version
  • ProjectDiscovery
  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-29 19:15

相似服务问题