Back to MCP directory
publicPublicdnsLocal runtime

mcp_subfinder_server

MCP Subfinder Server是一个基于JSON-RPC协议的API服务,封装了ProjectDiscovery的subfinder工具,用于强大的子域名枚举。

article

README

🚀 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
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client