io.github.daedalus/mcp-shodan
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHODAN_API_KEY | Yes | Your Shodan API key |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| shodan_hostB | Get all available information on an IP. |
| shodan_countB | Returns the total number of search results for the query. |
| shodan_searchC | Search the SHODAN database. |
| shodan_search_cursorC | Search the SHODAN database and return an iterator. |
| shodan_alertsB | List all of the active alerts that the user created. |
| shodan_create_alertC | Create a new alert. |
| shodan_delete_alertB | Delete the alert with the given ID. |
| shodan_scanC | Scan a network using Shodan. |
| shodan_scan_internetC | Scan the internet using Shodan. |
| shodan_scan_statusA | Get the status information about a previously submitted scan. |
| shodan_queriesC | List the search queries that have been shared by other users. |
| shodan_queries_searchC | Search the directory of saved search queries in Shodan. |
| shodan_queries_tagsC | Get popular query tags. |
| shodan_infoA | Returns information about the current API key. Returns: A dictionary with API key information. Example: >>> shodan_info() {"plan": "developer", "credits": 100} |
| shodan_portsA | Get a list of ports that Shodan crawls. Returns: An array containing the ports that Shodan crawls for. Example: >>> shodan_ports() [22, 80, 443, ...] |
| shodan_protocolsA | Get a list of protocols that the Shodan on-demand scanning API supports. Returns: A dictionary containing protocol name and description. Example: >>> shodan_protocols() {"http": "HTTP", "ssh": "SSH"} |
| shodan_servicesB | Get a list of services that Shodan crawls. Returns: A dictionary containing ports and service names. Example: >>> shodan_services() {"80": "http", "443": "https"} |
| shodan_exploits_countA | Search the Shodan Exploits archive and return total count. |
| shodan_exploits_searchC | Search the Shodan Exploits archive. |
| shodan_search_tokensC | Returns information about the search query itself. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Tools are generally distinct, but shodan_queries and shodan_queries_search overlap in purpose slightly. Most tools target unique actions and resources.
All tools use 'shodan_' prefix with snake_case. While some are nouns and some verbs, patterns are consistent within groups (e.g., alerts: list, create, delete). Minor mixing of styles.
20 tools is well-scoped for the Shodan API, covering search, host, scans, alerts, exploits, and metadata without being overweight.
Covers major Shodan features, but lacks tools for account management or DNS lookups. Core workflows (search, host, scan, alerts) are complete.