Shodan MCP Server

by X3r0K
Verified
# shodan-mcp-server 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. ## Table of Contents - [Introduction](#introduction) - [Installation](#installation) - [Configuration](#configuration) - [Usage with Node.js](#usage-with-nodejs) - [API Documentation](#api-documentation) - [get_ip_info](#get_ip_info) - [dns_lookup](#dns_lookup) - [get_vulnerabilities](#get_vulnerabilities) - [cve_info](#cve_info) - [search](#search) - [Project Structure](#project-structure) - [Contributing](#contributing) - [License](#license) ## Introduction 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. ## Features 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 ## Installation 1. Clone the repository: ```bash git clone https://github.com/X3r0K/Shodan-MCP-Server.git cd shodan-mcp-server ``` 2. Install the dependencies: ```bash npm install ``` 3. Build the project: ```bash npm run build ``` ## Configuration 1. Obtain a Shodan API key from [Shodan](https://account.shodan.io/). 2. Configure the MCP server in your MCP settings file (e.g., `~/.config/mcp/settings.json`): ```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. ## Usage with Node.js You can use the MCP server with Node.js using the `@modelcontextprotocol/sdk` package. 1. Install the MCP SDK: ```bash npm install @modelcontextprotocol/sdk ``` 2. Use the `use_mcp_tool` function to call the tools: ```javascript 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 Documentation ### get\_ip\_info Get information about a specific IP address. **Input:** ```json { "ip": "string" // The IP address to query } ``` **Output:** A JSON object containing information about the IP address. ### dns\_lookup Perform DNS lookups for a given domain. **Input:** ```json { "hostname": "string" // The hostname to resolve } ``` **Output:** A JSON object containing the resolved IP address. ### get\_vulnerabilities Track vulnerabilities associated with a specific IP address. **Input:** ```json { "ip": "string" // The IP address to query for vulnerabilities } ``` **Output:** A JSON object containing a list of vulnerabilities associated with the IP address. ### cve\_info Retrieve information about a specific CVE ID. **Input:** ```json { "cve": "string" // The CVE ID to query } ``` **Output:** A JSON object containing information about the CVE ID. ### search Search Shodan for devices matching a query. **Input:** ```json { "query": "string" // The search query } ``` **Output:** A JSON object containing a list of devices matching the query. ## Project Structure ``` shodan-mcp-server/ ├── .gitignore ├── package.json ├── README.md ├── tsconfig.json └── src/ ├── index.ts └── index.mts ``` ## License MIT