Shodan MCP Server
Provides Claude with access to Shodan for IP address lookups, service discovery, and vulnerability scanning, allowing users to query information about hosts, count results, and check API usage.
README
Shodan MCP Server
An unofficial MCP (Model Context Protocol) server that provides Claude with access to Shodan 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
-
Clone the repository:
git clone https://github.com/bonetrees/shodan_mcp.git cd shodan_mcp -
Install dependencies using Poetry:
poetry install -
Set up your Shodan API key:
cp .env.example .env # Edit .env and add your Shodan API keyGet your API key from Shodan Account.
Usage
Running the Server
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
{
"mcpServers": {
"shodan": {
"command": "/full/path/to/poetry", # you can find this using command `which poetry`
"args": ["run","-C","/path/to/your/shodan_mcp","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 uphistory(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 querylimit(optional): Maximum results to return (1-100, default: 10)
Example queries:
apache port:80- Apache servers on port 80country:US ssl:true- SSL servers in the USproduct:nginx- Nginx serversport: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:
# 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 libraryshodan- Official Shodan Python librarypython-decouple- Environment variable management
License
MIT License - see 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.