Shodan MCP Server
@X3r0K
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.
Overview
What is Shodan MCP Server?
Shodan MCP Server is a Model Context Protocol (MCP) server that provides programmatic access to the Shodan API, enabling queries about devices, vulnerabilities, and more. It is designed for developers who want to integrate Shodan intelligence into their applications.
How to use Shodan MCP Server?
Install the server from the repository, configure it with your Shodan API key as an environment variable (SHODAN_API_KEY), and use MCP client tools to call functions such as get_ip_info, dns_lookup, get_vulnerabilities, cve_info, and search. Example usage with the @modelcontextprotocol/sdk is provided.
Key features of Shodan MCP Server
- Query detailed host information by IP address
- Perform DNS lookups for domain names
- Retrieve CVE details for specific vulnerabilities
- Track vulnerabilities associated with an IP address
- Search Shodan’s database using their search syntax
Use cases of Shodan MCP Server
- Investigate devices and services exposed on a given IP
- Resolve hostnames to IP addresses for reconnaissance
- Look up known vulnerabilities (CVEs) for security research
- Monitor which vulnerabilities affect a specific server over time
FAQ from Shodan MCP Server
What prerequisites are needed to use Shodan MCP Server?
You need a Shodan API key (obtained from https://account.shodan.io/) and Node.js installed on your system.
How do I configure the Shodan API key?
Set the SHODAN_API_KEY environment variable in your MCP client settings file (e.g., ~/.config/mcp/settings.json) under the server’s env block.
Which tools does Shodan MCP Server expose?
It exposes five tools: get_ip_info, dns_lookup, get_vulnerabilities, cve_info, and search.
Can I use Shodan MCP Server without Node.js?
The server is built with Node.js and requires a Node runtime to run. It communicates via standard I/O and can be invoked from any MCP client, but the server itself depends on Node.js.