Shodan IP查询服务

一个非官方的MCP服务器,为Claude提供Shodan的IP地址查询、服务发现和漏洞扫描功能。

  • by bonetrees
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bonetrees/shodan_mcp

使用说明

Shodan MCP服务器

一个非官方的MCP(模型上下文协议)服务器,为Claude提供访问 肖丹 用于IP地址查找、服务发现和漏洞扫描。

特性

  • 主机查找:获取有关任何IPv4地址的详细信息
  • 搜索:使用过滤器查询Shodan的数据库(例如。, apache port:80, country:US)
  • 计数:获取查询的结果计数,但不获取完整数据
  • 账户信息:检查您的Shodan API使用情况和限制

安装

  1. 克隆存储库:

    git clone https://github.com/bonetrees/shodan_mcp.git
    cd shodan_mcp
    
  2. 使用Poetry安装依赖项:

    poetry install
    
  3. 设置您的Shodan API密钥:

    cp .env.example .env
    # Edit .env and add your Shodan API key
    

    从获取API密钥 Shodan帐户.

用法

运行服务器

poetry run python -m shodan_mcp

连接到克劳德

将此配置添加到您的Claude桌面 config.json 文件:

macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "shodan": {
      "command": "/full/path/to/poetry", # you can find this using command `which poetry`
      "args": ["run","-C","/path/to/your/shodan_mcp/pyproject.toml","python", "-m", "shodan_mcp"],
      "cwd": "/path/to/your/shodan_mcp"
    }
  }
}

替换 /path/to/your/shodan_mcp 与这个项目的实际路径。

可用工具

1. shodan_host_lookup

查找有关特定IP地址的详细信息。

参数:

  • ip (必填):要查找的IPv4地址
  • history (可选):包括历史数据(默认值:false)
  • minify (可选):返回最小数据(默认值:false)

例子:

Look up information for IP 8.8.8.8

2. shodan_search

使用查询过滤器搜索Shodan的数据库。

参数:

  • query (必填):Shodan搜索查询
  • limit (可选):返回的最大结果(1-100,默认值:10)

示例查询:

  • apache port:80 -端口80上的Apache服务器
  • country:US ssl:true -美国的SSL服务器
  • product:nginx -Nginx服务器
  • port:22 -SSH服务器

3. shodan_count

获取查询的结果总数,而不获取实际数据。

参数:

  • query (必填):Shodan搜索查询

4. shodan_info

获取您的Shodan API帐户信息(信用、计划等)。

参数: 无

Claude使用示例

连接后,您可以问Claude以下问题:

  • “使用Shodan查找IP地址1.1.1.1”
  • “在美国搜索Apache服务器”
  • “全球有多少台SSH服务器?”
  • “我目前使用的Shodan API是什么?”

日志记录

服务器在多个级别提供全面的日志记录:

MCP协议记录

日志消息被发送到连接的MCP客户端(如Claude Desktop),并显示在客户端的界面上。这包括:

  • 调试:详细的执行信息
  • 信息:一般操作信息
  • 警告:重要通知(例如敏感搜索)
  • 错误:错误条件和故障

服务器端日志记录

用于调试和监控的传统Python日志记录。日志被写入控制台。

配置

通过环境变量控制日志记录级别:

# Python logging level (DEBUG, INFO, WARNING, ERROR)
SHODAN_MCP_LOG_LEVEL=INFO

# MCP protocol logging level (what gets sent to Claude)
SHODAN_MCP_PROTOCOL_LOG_LEVEL=INFO

将这些添加到您的 .env 文件以自定义日志记录行为。

发展

项目结构

shodan_mcp/
├── src/
│   └── shodan_mcp/
│       ├── __init__.py
│       ├── server.py
│       └── logging_config.py
├── .env.example
├── pyproject.toml
└── README.md

依赖项

  • mcp -模型上下文协议库
  • shodan -官方Shodan Python库
  • python-decouple -环境变量管理

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

贡献

欢迎投稿!请随时提交拉取请求。

免责声明

这是一个非官方工具。请遵守Shodan的服务条款和费率限制。