Query Shodan's database of internet-connected devices and vulnerabilities using the Shodan API.
This is a Model Context Protocol (MCP) server that provides access to the Shodan API. It allows you to programmatically query Shodan for information about devices, vulnerabilities, and more.
The shodan-mcp-server
provides a simple way to integrate Shodan intelligence into your applications using the Model Context Protocol (MCP). It exposes several tools that allow you to query Shodan for various types of information.
Host Information: Get detailed information about an IP address Search: Query Shodan's database using their search syntax DNS Lookup: Resolve domain names CVE Information: Get details about specific CVE vulnerabilities
Clone the repository:
git clone https://github.com/X3r0K/Shodan-MCP-Server.git
cd shodan-mcp-server
Install the dependencies:
npm install
Build the project:
npm run build
Obtain a Shodan API key from Shodan.
Configure the MCP server in your MCP settings file (e.g., ~/.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": []
}
}
}
Replace <your_shodan_api_key>
with your actual Shodan API key and /path/to/shodan-mcp-server
with the actual path to the shodan-mcp-server directory.
You can use the MCP server with Node.js using the @modelcontextprotocol/sdk
package.
Install the MCP SDK:
npm install @modelcontextprotocol/sdk
Use the use_mcp_tool
function to call the tools:
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');
Get information about a specific IP address.
Input:
{
"ip": "string" // The IP address to query
}
Output:
A JSON object containing information about the IP address.
Perform DNS lookups for a given domain.
Input:
{
"hostname": "string" // The hostname to resolve
}
Output:
A JSON object containing the resolved IP address.
Track vulnerabilities associated with a specific IP address.
Input:
{
"ip": "string" // The IP address to query for vulnerabilities
}
Output:
A JSON object containing a list of vulnerabilities associated with the IP address.
Retrieve information about a specific CVE ID.
Input:
{
"cve": "string" // The CVE ID to query
}
Output:
A JSON object containing information about the CVE ID.
Search Shodan for devices matching a query.
Input:
{
"query": "string" // The search query
}
Output:
A JSON object containing a list of devices matching the query.
shodan-mcp-server/
├── .gitignore
├── package.json
├── README.md
├── tsconfig.json
└── src/
├── index.ts
└── index.mts
MIT
An automated research agent using Google Gemini models and Google Search to perform deep, multi-step web research.
Local RAG (on-premises) with MCP server.
Provides AI assistants with direct access to Mastra.ai's complete knowledge base.
Retrieve parsed search engine results using the SerpApi API.
A Model Context Protocol (MCP) server for the Open Library API that enables AI assistants to search for book and author information.
Exa AI Search API
One API for Search, Crawling, and Sitemaps
Production-ready RAG out of the box to search and retrieve data from your own documents.
Interact & query with Meilisearch (Full-text & semantic search API)
Lightning-Fast, High-Accuracy Deep Research Agent 👉 8–10x faster 👉 Greater depth & accuracy 👉 Unlimited parallel runs