mcpField
S
Shodan MCP Server

Shodan MCP Server

本地服务
github.com/X3r0K安全383 周前更新

关于 Shodan MCP Server

Shodan MCP Server 将 Shodan 搜索和情报查询提供给应用及 MCP 客户端。其工具涵盖 IP 详情、DNS 查询、漏洞、CVE 信息和设备搜索。

主要功能

  1. 01获取 IP 主机信息
  2. 02通过 DNS 解析主机名
  3. 03查询 IP 相关漏洞
  4. 04查询 CVE 详情
  5. 05搜索 Shodan 设备

适用场景

  1. 01查看某个 IP 地址的信息
  2. 02将域名解析为 IP
  3. 03检查主机相关漏洞
  4. 04按条件搜索设备

MCP 相关

它将 Shodan API 查询作为工具提供给 MCP 客户端,包括主机信息、DNS 查询、漏洞与 CVE 查询以及搜索。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"shodan-mcp-server-x3r0k": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SHODAN_API_KEY",
"shodan-mcp-server"
],
"env": {
"SHODAN_API_KEY": "<SHODAN_API_KEY>"
}
}
}
}
启动命令docker run -i --rm -e SHODAN_API_KEY shodan-mcp-server
需要配置的环境变量
SHODAN_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocishodan-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

shodan-mcp-server

这是一个可访问 Shodan API 的模型上下文协议(MCP)服务。它允许你以编程方式查询 Shodan,获取设备、漏洞等信息。

目录

简介

shodan-mcp-server 提供了一种简单的方式,可通过模型上下文协议(MCP)将 Shodan 情报集成到你的应用中。它提供了多个工具,供你查询 Shodan 中的各类信息。

功能

主机信息:获取 IP 地址的详细信息 搜索:使用 Shodan 的搜索语法查询其数据库 DNS 查询:解析域名 CVE 信息:获取特定 CVE 漏洞的详细信息

安装

  1. 克隆仓库:

    git clone https://github.com/X3r0K/Shodan-MCP-Server.git
    cd shodan-mcp-server
    
  2. 安装依赖:

    npm install
    
  3. 构建项目:

    npm run build
    

配置

  1. 从 Shodan 获取 Shodan API 密钥。

  2. 在 MCP 设置文件中配置 MCP 服务(例如,~/.config/mcp/settings.json):

    {
      "mcpServers": {
        "shodan": {
          "command": "node",
          "args": ["/path/to/shodan-mcp-server/build/index.js"],
          "env": {
            "SHODAN_API_KEY": "<your_shodan_api_key>"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    

    将 <your_shodan_api_key> 替换为你的实际 Shodan API 密钥,并将 /path/to/shodan-mcp-server 替换为 shodan-mcp-server 目录的实际路径。

通过 Node.js 使用

你可以使用 @modelcontextprotocol/sdk 包,通过 Node.js 使用 MCP 服务。

  1. 安装 MCP SDK:

    npm install @modelcontextprotocol/sdk
    
  2. 使用 use_mcp_tool 函数调用工具:

    import { use_mcp_tool } from '@modelcontextprotocol/sdk';
    
    async function getIpInfo(ip) {
      const result = await use_mcp_tool('shodan', 'get_ip_info', { ip });
      console.log(result);
    }
    
    getIpInfo('8.8.8.8');
    

API 文档

get_ip_info

获取特定 IP 地址的信息。

输入:

{
  "ip": "string" // The IP address to query
}

输出:

包含该 IP 地址信息的 JSON 对象。

dns_lookup

对给定域名执行 DNS 查询。

输入:

{
  "hostname": "string" // The hostname to resolve
}

输出:

包含解析后 IP 地址的 JSON 对象。

get_vulnerabilities

跟踪与特定 IP 地址关联的漏洞。

输入:

{
  "ip": "string" // The IP address to query for vulnerabilities
}

输出:

包含与该 IP 地址关联的漏洞列表的 JSON 对象。

cve_info

获取特定 CVE ID 的信息。

输入:

{
  "cve": "string" // The CVE ID to query
}

输出:

包含该 CVE ID 信息的 JSON 对象。

search

在 Shodan 中搜索符合查询条件的设备。

输入:

{
  "query": "string" // The search query
}

输出:

包含符合查询条件的设备列表的 JSON 对象。

项目结构

shodan-mcp-server/
├── .gitignore
├── package.json
├── README.md
├── tsconfig.json
└── src/
    ├── index.ts
    └── index.mts

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。