Skip to main content
Glama
w0h1v

mcp-shodan

by w0h1v

쇼단 MCP 서버

대장간 배지

Shodan APIShodan CVEDB 쿼리를 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 IP 정찰, DNS 운영, 취약점 추적, 기기 검색 등 Shodan의 네트워크 인텔리전스 및 보안 서비스에 대한 포괄적인 액세스를 제공합니다. 모든 도구는 손쉬운 분석 및 통합을 위해 구조화되고 형식화된 출력을 제공합니다.

빠른 시작(권장)

Smithery를 통해 설치

Smithery를 통해 Claude Desktop에 Shodan Server를 자동으로 설치하려면:

지엑스피1

수동 설치

  1. npm을 통해 서버를 전역으로 설치합니다.

npm install -g @burtthecoder/mcp-shodan
  1. Claude Desktop 구성 파일에 다음을 추가합니다.

{
  "mcpServers": {
    "shodan": {
      "command": "mcp-shodan",
      "env": {
        "SHODAN_API_KEY": "your-shodan-api-key"
      }
    }
  }
}

구성 파일 위치:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  1. Claude Desktop을 다시 시작하세요

Related MCP server: Shodan-MCP-Server

대체 설정(소스에서)

소스에서 실행하거나 코드를 수정해야 하는 경우:

  1. 복제 및 빌드:

git clone https://github.com/BurtTheCoder/mcp-shodan.git
cd mcp-shodan
npm install
npm run build
  1. Claude Desktop 구성에 다음을 추가합니다.

{
  "mcpServers": {
    "shodan": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-shodan/build/index.js"],
      "env": {
        "SHODAN_API_KEY": "your-shodan-api-key"
      }
    }
  }
}

특징

  • 네트워크 정찰 : 열려 있는 포트, 서비스, 취약점을 포함하여 IP 주소에 대한 자세한 정보를 쿼리합니다.

  • DNS 작업 : 도메인 및 IP 주소에 대한 정방향 및 역방향 DNS 조회

  • 취약성 인텔리전스 : 자세한 취약성 정보, CPE 조회 및 제품별 CVE 추적을 위한 Shodan의 CVEDB에 액세스

  • 장치 검색 : 고급 필터링을 통해 인터넷에 연결된 장치의 Shodan 데이터베이스 검색

도구

1. IP 조회 도구

  • 이름: ip_lookup

  • 설명: 지리적 위치, 열려 있는 포트, 실행 중인 서비스, SSL 인증서, 호스트 이름 및 클라우드 공급자 세부 정보(사용 가능한 경우)를 포함하여 IP 주소에 대한 포괄적인 정보를 검색합니다.

  • 매개변수:

    • ip (필수): 조회할 IP 주소

  • 보고:

    • IP 정보(주소, 조직, ISP, ASN)

    • 위치(국가, 도시, 좌표)

    • 서비스(포트, 프로토콜, 배너)

    • 클라우드 공급자 세부 정보(사용 가능한 경우)

    • 연관된 호스트 이름 및 도메인

    • 태그

2. 쇼단 검색 도구

  • 이름: shodan_search

  • 설명: 인터넷에 연결된 기기의 Shodan 데이터베이스 검색

  • 매개변수:

    • query (필수): Shodan 검색 쿼리

    • max_results (선택 사항, 기본값: 10): 반환할 결과 수

  • 보고:

    • 전체 결과가 포함된 검색 요약

    • 국가 기반 분포 통계

    • 다음을 포함한 자세한 장치 정보:

      • 기본 정보(IP, 조직, ISP)

      • 위치 데이터

      • 서비스 세부 정보

      • 웹 서버 정보

      • 연관된 호스트 이름 및 도메인

3. CVE 조회 도구

  • 이름: cve_lookup

  • 설명: Shodan의 CVEDB에서 자세한 취약성 정보를 쿼리합니다.

  • 매개변수:

    • cve (필수): CVE-YYYY-NNNNN 형식의 CVE 식별자(예: CVE-2021-44228)

  • 보고:

    • 기본 정보(ID, 게시일, 요약)

    • 심각도 점수:

      • 심각도 수준이 있는 CVSS v2 및 v3

      • EPSS 확률 및 순위

    • 영향 평가:

      • KEV 상태

      • 제안된 완화책

      • 랜섬웨어 협회

    • 영향을 받는 제품(CPE)

    • 참고문헌

4. DNS 조회 도구

  • 이름: dns_lookup

  • 설명: Shodan의 DNS 서비스를 사용하여 도메인 이름을 IP 주소로 변환합니다.

  • 매개변수:

    • hostnames (필수): 확인할 호스트 이름 배열

  • 보고:

    • 호스트 이름을 IP에 매핑하는 DNS 확인

    • 총 조회 및 쿼리된 호스트 이름 요약

5. 역방향 DNS 조회 도구

  • 이름: reverse_dns_lookup

  • 설명: IP 주소와 연결된 호스트 이름을 찾기 위해 역방향 DNS 조회를 수행합니다.

  • 매개변수:

    • ips (필수): 조회할 IP 주소 배열

  • 보고:

    • IP를 호스트 이름에 매핑하는 역방향 DNS 확인

    • 전체 조회 및 결과 요약

6. CPE 조회 도구

  • 이름: cpe_lookup

  • 설명: 제품 이름으로 CPE(Common Platform Enumeration) 항목을 검색합니다.

  • 매개변수:

    • product (필수): 검색할 제품의 이름

    • count (선택 사항, 기본값: false): true인 경우 일치하는 CPE의 개수만 반환합니다.

    • skip (선택 사항, 기본값: 0): 건너뛸 CPE 수(페이지 매김용)

    • limit (선택 사항, 기본값: 1000): 반환할 CPE의 최대 수

  • 보고:

    • count가 참인 경우: 일치하는 CPE의 총 수

    • count가 false인 경우: 페이지 번호 세부 정보가 포함된 CPE 목록

7. 제품별 CVE 도구

  • 이름: cves_by_product

  • 설명: 특정 제품 또는 CPE에 영향을 미치는 취약점 검색

  • 매개변수:

    • cpe23 (선택 사항): CPE 2.3 식별자(형식: cpe:2.3:part:vendor:product:version)

    • product (선택 사항): CVE를 검색할 제품 이름

    • count (선택 사항, 기본값: false): true인 경우 일치하는 CVE의 개수만 반환합니다.

    • is_kev (선택 사항, 기본값: false): true인 경우 KEV 플래그가 설정된 CVE만 반환합니다.

    • sort_by_epss (선택 사항, 기본값: false): true인 경우 CVE를 EPSS 점수별로 정렬합니다.

    • skip (선택 사항, 기본값: 0): 건너뛸 CVE 수(페이지 매김용)

    • limit (선택 사항, 기본값: 1000): 반환할 CVE의 최대 수

    • start_date (선택 사항): CVE 필터링 시작 날짜(형식: YYYY-MM-DDTHH:MM:SS)

    • end_date (선택 사항): CVE 필터링 종료 날짜(형식: YYYY-MM-DDTHH:MM:SS)

  • 참고사항:

    • cpe23 또는 제품 중 하나만 제공해야 하며 둘 다 제공하면 안 됩니다.

    • 날짜 필터링은 CVE의 게시된 시간을 사용합니다.

  • 보고:

    • 쿼리 정보

    • 페이지 번호 세부 정보가 포함된 결과 요약

    • 다음을 포함한 자세한 취약성 정보:

      • 기본 정보

      • 심각도 점수

      • 영향 평가

      • 참고문헌

요구 사항

문제 해결

API 키 문제

API 키 관련 오류(예: "요청이 상태 코드 401로 실패했습니다")가 표시되는 경우:

  1. API 키를 확인하세요:

    • 계정 설정 에서 유효한 Shodan API 키여야 합니다.

    • 키에 작업에 필요한 충분한 크레딧/권한이 있는지 확인하세요.

    • 구성에서 키 주위에 추가 공백이나 따옴표가 있는지 확인하세요.

    • SHODAN_API_KEY 환경 변수에 키가 올바르게 설정되었는지 확인하세요.

  2. 일반적인 오류 코드:

    • 401 인증되지 않음: 잘못된 API 키 또는 인증 누락

    • 402 지불 필요: 쿼리 크레딧 없음

    • 429 요청이 너무 많음: 속도 제한을 초과했습니다.

  3. 구성 단계: a. Shodan 계정 에서 API 키를 가져옵니다. b. 구성 파일에 추가합니다.

    {
      "mcpServers": {
        "shodan": {
          "command": "mcp-shodan",
          "env": {
            "SHODAN_API_KEY": "your-actual-api-key-here"
          }
        }
      }
    }

    c. 구성 파일을 저장합니다. d. Claude Desktop을 다시 시작합니다.

  4. 키 테스트:

    • 먼저 간단한 쿼리를 시도해 보세요(예: "google.com"에 대한 dns_lookup).

    • Shodan 계정 대시보드에서 신용 상태를 확인하세요.

    • curl에서 키가 직접 작동하는지 확인하세요.

      curl "https://api.shodan.io/dns/resolve?hostnames=google.com&key=your-api-key"

모듈 로딩 문제

모듈 로딩 오류가 표시되는 경우:

  1. 글로벌 설치의 경우: 빠른 시작에 표시된 간단한 구성을 사용하세요.

  2. 소스 설치의 경우: Node.js v18 이상을 사용하고 있는지 확인하세요.

개발

핫 리로딩을 사용하여 개발 모드에서 실행하려면:

npm run dev

오류 처리

서버에는 다음에 대한 포괄적인 오류 처리 기능이 포함되어 있습니다.

  • 잘못된 API 키

  • 속도 제한

  • 네트워크 오류

  • 잘못된 입력 매개변수

  • 잘못된 CVE 형식

  • 잘못된 CPE 조회 매개변수

  • 잘못된 날짜 형식

  • 상호 배타적 매개변수 검증

버전 기록

  • v1.0.12: 역방향 DNS 조회 추가 및 출력 형식 개선

  • v1.0.7: 제품 검색 기능을 통해 CVE를 추가하고 취약성 도구 이름을 cve_lookup으로 변경했습니다.

  • v1.0.6: 향상된 CVE 조회 및 CPE 검색 기능을 위한 CVEDB 통합 추가

  • v1.0.0: 핵심 기능이 포함된 초기 릴리스

기여하다

  1. 저장소를 포크하세요

  2. 기능 브랜치를 생성합니다( git checkout -b feature/amazing-feature )

  3. 변경 사항을 커밋하세요( git commit -m 'Add amazing feature' )

  4. 브랜치에 푸시( git push origin feature/amazing-feature )

  5. 풀 리퀘스트 열기

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

Available Tools

7 tools
cpe_lookupA
Read-only

Search for Common Platform Enumeration (CPE) entries by product name in Shodan's CVEDB. Supports pagination and can return either full CPE details or just the total count. Useful for identifying specific versions and configurations of software and hardware.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of CPEs to skip (for pagination).
countNoIf true, returns only the count of matching CPEs.
limitNoMaximum number of CPEs to return (max 1000).
productYesThe name of the product to search for CPEs.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds pagination support and the option to return only a count. These are behavioral traits beyond what annotations provide, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, followed by key capabilities. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with fully documented parameters and no output schema, the description covers the main behavioral options (pagination, count mode) and a clear use case. It doesn't detail return format, but given the simplicity and annotation coverage, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are documented in the schema. The description mentions pagination and count, but these are already covered in the schema descriptions, so it adds minimal semantic value beyond what is structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 'Search' and resource 'CPE entries' within 'Shodan's CVEDB'. It distinguishes from the sibling cves_by_product by focusing on CPEs rather than CVEs, and the name reinforces this.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: 'identifying specific versions and configurations of software and hardware.' However, it does not explicitly mention alternatives or exclusion criteria. The sibling cves_by_product likely covers CVEs, so the contrast is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cve_lookupA
Read-only

Query detailed vulnerability information from Shodan's CVEDB. Returns comprehensive CVE details including CVSS scores (v2/v3), EPSS probability and ranking, KEV status, proposed mitigations, ransomware associations, and affected products (CPEs).

ParametersJSON Schema
NameRequiredDescriptionDefault
cveYesThe CVE identifier to query (format: CVE-YYYY-NNNNN).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, covering safety and openness. The description adds substantial behavioral context by listing the specific fields returned (CVSS v2/v3, EPSS, KEV status, mitigations, ransomware associations, CPEs), which goes beyond the annotations and helps the agent set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero fluff. The first sentence front-loads the core purpose, and the second enumerates the key return fields. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter lookup tool with no output schema, the description adequately covers the return content by listing the major fields. It does not mention error handling or pagination, but given the simplicity and the openWorldHint annotation, the essential information is present. Minor gaps prevent a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the parameter (pattern and description), so schema coverage is 100%. The description does not add new parameter semantics beyond what the schema already provides; it merely reinforces that a CVE ID is needed. With full schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Query') and resource ('detailed vulnerability information from Shodan's CVEDB'), and enumerates the concrete data returned (CVSS, EPSS, KEV, mitigations, ransomware, CPEs). This clearly distinguishes it from siblings like cves_by_product, which likely searches by product.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a CVE identifier (the required parameter), but it does not explicitly mention when not to use it or recommend alternatives like cves_by_product for product-based queries. Guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cves_by_productA
Read-only

Search for vulnerabilities affecting specific products or CPEs. Supports filtering by KEV status, sorting by EPSS score, date ranges, and pagination. Can search by product name or CPE 2.3 identifier. Returns detailed vulnerability information including severity scores and impact assessments.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of CVEs to skip (for pagination).
countNoIf true, returns only the count of matching CVEs.
cpe23NoThe CPE version 2.3 identifier (format: cpe:2.3:part:vendor:product:version).
limitNoMaximum number of CVEs to return (max 1000).
is_kevNoIf true, returns only CVEs with the KEV flag set.
productNoThe name of the product to search for CVEs.
end_dateNoEnd date for filtering CVEs (format: YYYY-MM-DDTHH:MM:SS).
start_dateNoStart date for filtering CVEs (format: YYYY-MM-DDTHH:MM:SS).
sort_by_epssNoIf true, sorts CVEs by EPSS score in descending order.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the tool is known to be a read-only, broad-scope operation. The description adds value by disclosing the return content ('detailed vulnerability information including severity scores and impact assessments') and mentions pagination support, which goes beyond the annotations. It does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the primary purpose front-loaded and the supporting capabilities summarized in the second sentence. It is not overly verbose, though the second sentence packs multiple features into one clause. No extraneous information is present, and the structure is logical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, all with schema descriptions) and the absence of an output schema, the description provides a sufficient overview, including the two search modes (product name vs. CPE identifier) and the return of severity/impact info. It could be more explicit about the relationship between product and cpe23 (e.g., whether they can be combined), but overall it covers the key usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented in the schema (e.g., skip, count, cpe23, limit, is_kev, product, dates, sort_by_epss). The description adds only a high-level summary (supports filtering by KEV, sorting by EPSS, date ranges, pagination) without adding new semantic detail. This aligns with the baseline of 3 for fully covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search') and a precise resource ('vulnerabilities affecting specific products or CPEs'), and lists the supported filtering/sorting capabilities. This clearly distinguishes it from sibling tools like cve_lookup (individual CVE lookup) and cpe_lookup (CPE details), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys that this tool is for product/CPE-based vulnerability searches and mentions the search options (by product name or CPE 2.3). However, it does not explicitly state when to prefer this over sibling tools, such as using cve_lookup for a specific CVE or cpe_lookup for CPE metadata. The guidance is implied rather than explicit, so it earns a 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_lookupA
Read-only

Resolve domain names to IP addresses using Shodan's DNS service. Supports batch resolution of multiple hostnames in a single query. Returns IP addresses mapped to their corresponding hostnames.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnamesYesList of hostnames to resolve.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, so the description isn't required to state safety. It adds the batch resolution feature and the mapping behavior, which is useful context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no waste, key purpose first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with no output schema, the description covers purpose, behavior, and return format adequately. No gaps for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the parameter fully (100%). Description adds the 'batch' nuance but essentially repeats the schema's 'list' semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Resolve), resource (domain names to IP addresses), and names the service (Shodan's DNS). Implicitly differentiates from reverse_dns_lookup by direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: if you need to resolve domain names to IPs, this is the tool. But no explicit when-not-to-use or alternatives mentioned. Batch capability is mentioned but not as a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ip_lookupA
Read-only

Retrieve comprehensive information about an IP address, including geolocation, open ports, running services, SSL certificates, hostnames, and cloud provider details if available. Returns service banners and HTTP server information when present.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesThe IP address to query.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description accurately reflects a read-only lookup operation and adds helpful qualifiers like 'if available' and 'when present.' It does not contradict the readOnlyHint annotation, though it omits potential error or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, free of fluff, and front-loads the core purpose before listing specific return categories.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema provided, the description usefully enumerates expected return data. It lacks error/edge-case details, but the listed outputs give sufficient context for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the ip parameter as 'The IP address to query,' and the description repeats this without adding format constraints, IPv4/IPv6 guidance, or examples. Schema coverage is effectively complete, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves comprehensive information about an IP address and enumerates the types of data returned (geolocation, open ports, services, SSL certificates, hostnames, cloud details). This distinguishes it from sibling tools like dns_lookup or cve_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the tool's scope clear but does not explicitly state when to use it over alternatives such as shodan_search or dns_lookup. Usage guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_dns_lookupA
Read-only

Perform reverse DNS lookups to find hostnames associated with IP addresses. Supports batch lookups of multiple IP addresses in a single query. Returns all known hostnames for each IP address, with clear indication when no hostnames are found.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipsYesList of IP addresses to perform reverse DNS lookup on.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds behavioral context beyond annotations: it supports batch queries, returns all known hostnames per IP, and provides clear indication when none are found. This is useful operational detail that the schema and annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The first sentence states the core purpose, the second adds batch and return details. Information is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple one-parameter tool with a clear return description. The description explains what the tool does, how it handles multiple IPs, and what it returns (hostnames and a not-found indication). Annotations cover read-only and open-world aspects. Nothing essential for correct invocation is missing, even without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the ips parameter clearly documented as a list of IP addresses. The description adds no new semantic meaning—'batch lookups' is implied by the array type. Per the baseline rule for high coverage, a 3 is appropriate; the description does not compensate or add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (perform reverse DNS lookups), a clear resource (IP addresses), and the expected output (hostnames). It also distinguishes itself from forward DNS lookups by the term 'reverse,' which is reinforced by the sibling dns_lookup. This is unambiguous and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for IP-to-hostname resolution but does not explicitly contrast with alternatives like dns_lookup or ip_lookup. It mentions batch support, which is a feature, but offers no when-to-use/when-not-to-use guidance. Usage is inferred from the tool name and context rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • Changedcpe_lookup2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcve_lookup2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcves_by_product2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changeddns_lookup2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedip_lookup2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedreverse_dns_lookup2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedshodan_search2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
  2. 7 tool updates
    • First observedcpe_lookup
    • First observedcve_lookup
    • First observedcves_by_product
    • First observeddns_lookup
    • First observedip_lookup
    • First observedreverse_dns_lookup
    • First observedshodan_search

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

Most tools are clearly distinct: ip_lookup, shodan_search, dns_lookup, and reverse_dns_lookup each target a different resource. However, cve_lookup and cves_by_product both return vulnerability information, which could cause some confusion despite their different query approaches.

Naming Consistency4/5

Tool names mostly follow a consistent noun-based pattern (ip_lookup, dns_lookup, cve_lookup, cpe_lookup) with descriptive compound names for searches. The mix of 'lookup' and 'search' verbs is a minor inconsistency, but the pattern is still predictable and readable.

Tool Count5/5

Seven tools is well-scoped for a Shodan-focused server, covering IP intelligence, device search, DNS, and vulnerability data without unnecessary bloat. Each tool serves a distinct purpose within the security research domain.

Completeness4/5

The tool set covers core Shodan functionality: IP lookup, device search, DNS resolution, and CVE/CPE vulnerability research. Minor gaps exist such as account/API info or network/port-specific queries, but the primary workflows for security research are well covered.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A WebSocket server that provides MCP interface for searching and retrieving information about internet-connected devices, IP addresses, DNS data, and CVE vulnerabilities through the Shodan API.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    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.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Integrates Shodan search capabilities into MCP-compatible applications for discovering internet-connected devices. Enables domain searches, IP lookups, and advanced queries to identify exposed services, infrastructure mapping, and security analysis.
    3
    -