Shodan设备查询服务器
一个通过Shodan API提供MCP接口的WebSocket服务器,用于搜索和检索有关联网设备、IP地址、DNS数据和CVE漏洞的信息。
服务介绍
shodan-mcp-server
这是一个模型上下文协议(MCP)服务器,它提供了对Shodan API的访问。它允许您以编程方式查询Shodan以获取有关设备、漏洞等信息。
目录
简介
shodan-mcp-server 提供了一种简单的方法,通过模型上下文协议(MCP)将Shodan情报集成到您的应用程序中。它公开了几个工具,允许您查询Shodan以获取各种类型的信息。
特性
- 主机信息:获取关于IP地址的详细信息
- 搜索:使用Shodan的搜索语法查询Shodan数据库
- DNS查找:解析域名
- CVE信息:获取特定CVE漏洞的详细信息
安装
-
克隆仓库:
git clone https://github.com/X3r0K/Shodan-MCP-Server.git cd shodan-mcp-server -
安装依赖项:
npm install -
构建项目:
npm run build
配置
-
从Shodan 获取Shodan API密钥。
-
在您的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服务器。
-
安装MCP SDK:
npm install @modelcontextprotocol/sdk -
使用
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