Skip to main content
Glama

Shodan MCP Server

by bonetrees
README.md4.38 kB
# Shodan MCP Server An unofficial MCP (Model Context Protocol) server that provides Claude with access to [Shodan](https://www.shodan.io/) for IP address lookups, service discovery, and vulnerability scanning. ## Features - **Host Lookup**: Get detailed information about any IPv4 address - **Search**: Query Shodan's database using filters (e.g., `apache port:80`, `country:US`) - **Count**: Get result counts for queries without fetching full data - **Account Info**: Check your Shodan API usage and limits ## Installation 1. **Clone the repository:** ```bash git clone https://github.com/bonetrees/shodan_mcp.git cd shodan_mcp ``` 2. **Install dependencies using Poetry:** ```bash poetry install ``` 3. **Set up your Shodan API key:** ```bash cp .env.example .env # Edit .env and add your Shodan API key ``` Get your API key from [Shodan Account](https://account.shodan.io/). ## Usage ### Running the Server ```bash poetry run python -m shodan_mcp ``` ### Connecting to Claude Add this configuration to your Claude Desktop `config.json` file: **macOS**: `~/Library/Application\ Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%/Claude/claude_desktop_config.json` ```json { "mcpServers": { "shodan": { "command": "/full/path/to/poetry", # you can find this using command `which poetry` "args": ["run","-C","/path/to/your/shodan_mcp/pyproject.toml","python", "-m", "shodan_mcp"], "cwd": "/path/to/your/shodan_mcp" } } } ``` Replace `/path/to/your/shodan_mcp` with the actual path to this project. ## Available Tools ### 1. `shodan_host_lookup` Look up detailed information about a specific IP address. **Parameters:** - `ip` (required): IPv4 address to look up - `history` (optional): Include historical data (default: false) - `minify` (optional): Return minimal data (default: false) **Example:** ``` Look up information for IP 8.8.8.8 ``` ### 2. `shodan_search` Search Shodan's database using query filters. **Parameters:** - `query` (required): Shodan search query - `limit` (optional): Maximum results to return (1-100, default: 10) **Example queries:** - `apache port:80` - Apache servers on port 80 - `country:US ssl:true` - SSL servers in the US - `product:nginx` - Nginx servers - `port:22` - SSH servers ### 3. `shodan_count` Get the total count of results for a query without fetching the actual data. **Parameters:** - `query` (required): Shodan search query ### 4. `shodan_info` Get information about your Shodan API account (credits, plan, etc.). **Parameters:** None ## Example Usage with Claude Once connected, you can ask Claude things like: - "Look up the IP address 1.1.1.1 using Shodan" - "Search for Apache servers in the US" - "How many SSH servers are there globally?" - "What's my current Shodan API usage?" ## Logging The server provides comprehensive logging at multiple levels: ### MCP Protocol Logging Log messages are sent to the connected MCP client (like Claude Desktop) and appear in the client's interface. This includes: - **Debug**: Detailed execution information - **Info**: General operational messages - **Warning**: Important notices (e.g., sensitive searches) - **Error**: Error conditions and failures ### Server-side Logging Traditional Python logging for debugging and monitoring. Logs are written to the console. ### Configuration Control logging levels via environment variables: ```bash # Python logging level (DEBUG, INFO, WARNING, ERROR) SHODAN_MCP_LOG_LEVEL=INFO # MCP protocol logging level (what gets sent to Claude) SHODAN_MCP_PROTOCOL_LOG_LEVEL=INFO ``` Add these to your `.env` file to customize logging behavior. ## Development ### Project Structure ``` shodan_mcp/ ├── src/ │ └── shodan_mcp/ │ ├── __init__.py │ ├── server.py │ └── logging_config.py ├── .env.example ├── pyproject.toml └── README.md ``` ### Dependencies - `mcp` - Model Context Protocol library - `shodan` - Official Shodan Python library - `python-decouple` - Environment variable management ## License MIT License - see [LICENSE](LICENSE) file for details. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## Disclaimer This is an unofficial tool. Please respect Shodan's terms of service and rate limits.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bonetrees/shodan_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server