Token导航 LogoToken导航TokenDH.com
Findmy MCP logo
安全风控stdio官方级别未说明来源级核验

Findmy MCP

MCP Server

FindMyMCP是一款用于安全研究的工具,通过Shodan API发现和分析公开暴露的Model Context Protocol (MCP)服务器,支持并发扫描、检查点工作流和全面的服务器验证。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Python安全开发工具

安装说明

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

作者 / 组织

cbxss

提供方

cbxss

最后核验

2026/5/17 20:22

快速接入

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

命令预览

pip install -e .

详细介绍

查找MyMCP

用于安全研究的快速并发MCP服务器发现和分析工具

![Python 3.12+](https://www.python.org/downloads/) ![Built with uv](https://github.com/astral-sh/uv) ![Code style: ruff](https://github.com/astral-sh/ruff)

概述

FindMyMCP是一个复杂的安全研究工具,可以使用Shodan API发现和分析公开的模型上下文协议(MCP)服务器。它采用现代Python实践构建,具有并发扫描、基于检查点的工作流和全面的服务器验证功能。

特性

  • ⚡ 快速并发发现:并行运行Shodan搜索(比顺序搜索快5倍)
  • 💾 检查点系统:立即保存发现的服务器,稍后验证
  • 🔀 两步工作流程:单独的发现和验证阶段
  • 🔍 全面发现:在10个类别中使用100多个Shodan搜索过滤器
  • 🌐 多运输支持:测试HTTP和服务器发送事件(SSE)协议
  • ✅ 协议验证:验证实际MCP协议合规性
  • 🛠️ 工具枚举:确定可用的工具和功能
  • 📊 详细报告:生成JSON、CSV和文本摘要报告
  • ⚙️ 并发验证:可配置的具有速率限制的并发验证
  • 🎨 丰富的终端用户界面:漂亮的进度跟踪和输出

安装

使用紫外线(推荐)

# Clone the repository
git clone https://github.com/yourusername/findmy-mcp.git
cd findmy-mcp

# Install dependencies
uv sync

# Install with dev dependencies
uv sync --extra dev

使用pip

pip install -e .

快速开始

1.设置您的Shodan API密钥

export MCP_SCANNER_SHODAN_API_KEY="your-api-key-here"

或者创建一个 .env 文件:

MCP_SCANNER_SHODAN_API_KEY=your-api-key-here

2.运行基本扫描

# Full scan with all filters
mcp-scan scan

# Scan specific category
mcp-scan scan --category core_protocol

# Scan with custom filters
mcp-scan scan --filter '"Model Context Protocol"' --filter 'mcp server'

两步工作流程(推荐)

对于大型扫描,使用两步工作流程来最大限度地提高效率:

第一步:发现(快速)

# Discover servers with concurrent API calls
mcp-scan scan --discover-only

# Output: scan_results/scan_xxx_timestamp/discovered_servers.json

60多个过滤器的运行时间约为20-30秒,而不是2分钟以上!

步骤2:验证(可以多次运行)

# Verify from checkpoint
mcp-scan verify scan_results/scan_xxx_timestamp/discovered_servers.json

# With custom settings (max speed)
mcp-scan verify discovered_servers.json --concurrency 100 --timeout 2.0

为什么使用此工作流?

  • 发现速度提高5倍 -并发Shodan API调用
  • 即时检查站 -发现后立即查看结果
  • 可恢复的 -中断并重新启动验证,无需重新扫描
  • 先复习 -验证前检查发现的服务器
  • 可重复使用的 -使用不同设置多次运行验证

命令

scan -发现和/或验证服务器

# Full scan
mcp-scan scan

# Discovery only
mcp-scan scan --discover-only

# Specific category
mcp-scan scan --category transport_sse

# Custom concurrency and timeout
mcp-scan scan --concurrency 100 --timeout 2.0

verify -从检查点验证

# Basic verification
mcp-scan verify scan_results/scan_xxx/discovered_servers.json

# With custom settings (even faster)
mcp-scan verify discovered.json --concurrency 100 --timeout 2.0

list-filters -显示可用的筛选器类别

mcp-scan list-filters

配置

所有设置都可以通过环境变量进行配置 MCP_SCANNER_ 前缀:

MCP_SCANNER_SHODAN_API_KEY=your-key
MCP_SCANNER_MAX_RESULTS_PER_FILTER=100
MCP_SCANNER_MAX_CONCURRENT_VERIFICATIONS=10
MCP_SCANNER_VERIFICATION_TIMEOUT=10.0
MCP_SCANNER_OUTPUT_DIR=scan_results

.env.example 所有可用选项。

配置选项

选项默认值描述
shodan_api_key必需Shodan API密钥
max_results_per_filter100每个过滤器的最大Shodan结果
max_concurrent_verifications50最大并发服务器验证次数
verification_timeout3.0验证超时(秒)
output_dirscan_results结果输出目录
verify_ssltrue验证SSL证书

输出文件

每次扫描都会创建一个带有时间戳的目录,其中包含:

  • discovered_servers.json -通过Shodan(检查点)找到的所有服务器
  • verified_servers.json -已验证的MCP服务器,包含完整详细信息
  • verified_servers.csv -CSV格式,便于分析
  • results.json -完整的扫描元数据
  • summary.txt -人类可读摘要

Shodan过滤器类别

FindMyMCP在10个类别中使用100多个Shodan搜索过滤器:

类别筛选器描述
核心协议8直接MCP协议标记
transport_sse5服务器发送事件指示器
jsonrpc_方法6JSON-RPC方法调用
端点9通用MCP端点路径
框架7已知的MCP框架
端口_组合8特定端口搜索
云平台6云提供商部署
能力5MCP能力标记
http_headers4MCP特定的HTTP标头
安全标记5身份验证/授权标记

程序化使用

import asyncio
from pathlib import Path
from findmy_mcp import MCPScanner, ScannerConfig

async def main():
    # Create configuration
    config = ScannerConfig(
        shodan_api_key="your-api-key",
        max_results_per_filter=50,
        max_concurrent_verifications=20,
    )

    # Create scanner
    scanner = MCPScanner(config)

    # Validate API key
    scanner.validate_api_key()

    # Load filters
    scanner.load_filters()

    # Discover only
    result = await scanner.scan(category="core_protocol", discover_only=True)
    print(f"Discovered {len(result.discovered_servers)} servers")

    # Later, verify from file
    discovery_file = Path("scan_results/scan_xxx/discovered_servers.json")
    result = await scanner.verify_from_file(discovery_file)
    print(f"Verified {len(result.verified_servers)} MCP servers")

if __name__ == "__main__":
    asyncio.run(main())

发展

设置

# Install with dev dependencies
uv sync --extra dev

测试

# Run tests
uv run pytest

# With coverage
uv run pytest --cov=findmy_mcp --cov-report=html

# Run specific test
uv run pytest tests/test_models.py -v

代码质量

# Format code
uv run ruff format .

# Lint
uv run ruff check .

# Type check
uv run mypy src

建筑

基于现代Python实践构建:

  • 类型安全:具有mypy严格模式的全面类型提示
  • 异步优先:始终采用正确的异步/等待模式
  • Pydantic模型:为所有实体验证数据模型
  • 并行设计:并行Shodan搜索和URL验证
  • 模块化结构:明确区分关注点

项目结构

findmy-mcp/
├── src/findmy_mcp/
│   ├── __init__.py       # Package exports
│   ├── cli.py            # Typer-based CLI
│   ├── config.py         # Pydantic Settings
│   ├── models.py         # Data models
│   ├── scanner.py        # Main scanning logic
│   ├── verifier.py       # MCP verification
│   └── filters.json      # Shodan filters
├── tests/                # Test suite
├── examples/             # Example scripts
└── pyproject.toml        # Project config

法律和道德使用

⚠️ 重要:此工具用于:

  • ✅ 合法的安全研究
  • ✅ 授权渗透测试
  • ✅ 教育目的
  • ✅ 识别您拥有的配置错误的基础设施

不是为了:

  • ❌ 未经授权访问系统
  • ❌ 恶意活动
  • ❌ 违反服务条款
  • ❌ 任何非法活动

在扫描您不拥有的系统之前,请务必获得适当的授权。

贡献

欢迎投稿!请看 贡献.md 作为指导方针。

许可证

MIT许可证-请参阅 许可证 详细信息文件

支持

  • 📝 报告问题:
  • 💬 讨论:
  • 📖 文档:此README和内联代码文档

______________________________________________________________________

内置于:Python 3.12+•uv•Typer•Rich•Pydantic•httpx•Shodan

目录标签

目录标签

Python安全开发工具安全研究本地部署MCP协议并发扫描ShodanAPI服务器验证

接入字段

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

stdio

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

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdioapi-key部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP