这是一个提供对Shodan API访问的模型上下文协议(MCP)服务器。它允许您通过编程方式查询Shodan以获取有关设备、漏洞等方面的信息。
shodan-mcp-server 提供了一种简单的方法,使用模型上下文协议(MCP)将Shodan情报集成到您的应用程序中。它公开了几个工具,允许您查询Shodan以获取各种类型的信息。
主机信息:获取IP地址的详细信息
搜索:使用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设置文件(例如,~/.config/mcp/settings.json)中配置MCP服务器:
{
"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替换为shod-anc-mcp-server目录的实际路径。
您可以使用@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');
获取特定IP地址的信息。
输入:
{
"ip": "string" // 要查询的IP地址
}
输出:
包含IP地址信息的JSON对象。
执行给定域名的DNS解析。
输入:
{
"hostname": "string" // 要解析的主机名
}
输出:
包含解析后的IP地址的JSON对象。
跟踪与特定IP地址相关的漏洞。
输入:
{
"ip": "string" // 要查询漏洞的IP地址
}
输出:
包含与IP地址相关联的漏洞列表的JSON对象。
检索特定CVE ID的信息。
输入:
{
"cve": "string" // 要查询的CVE ID
}
输出:
包含CVE ID信息的JSON对象。
在Shodan中搜索匹配查询的设备。
输入:
{
"query": "string" // 搜索查询
}
输出:
包含匹配查询的设备列表的JSON对象。
shodan-mcp-server/
├── .gitignore
├── package.json
├── README.md
├── tsconfig.json
└── src/
├── index.ts
└── index.mts
MIT