Skip to main content
Glama
badchars

osint-mcp-server

by badchars

The Problem

OSINT collection is the first step of every penetration test, bug bounty, and threat assessment. The data you need is scattered across a dozen platforms — each with its own API, its own auth, its own rate limits, its own output format. Today you open Shodan in one tab, VirusTotal in another, run dig in a terminal, copy-paste from WHOIS, switch to crt.sh for certificates, and then spend 30 minutes manually correlating everything.

Traditional OSINT workflow:
  resolve DNS records            →  dig / nslookup CLI
  check WHOIS registration       →  whois CLI or web tool
  enumerate subdomains           →  crt.sh + SecurityTrails + VirusTotal (3 different UIs)
  scan for open ports/services   →  Shodan web interface
  check domain reputation        →  VirusTotal web interface
  map IP infrastructure          →  Censys + BGP lookups
  find archived pages            →  Wayback Machine web UI
  check email security           →  manual MX/SPF/DMARC lookups
  correlate everything           →  copy-paste into a spreadsheet
  ─────────────────────────────────
  Total: 45+ minutes per target, most of it switching contexts

osint-mcp-server gives your AI agent 37 tools across 12 data sources via the Model Context Protocol. The agent queries all sources in parallel, correlates data, identifies risks, and presents a unified intelligence picture — in a single conversation.

With osint-mcp-server:
  You: "Do a full recon on target.com"

  Agent: → DNS: 4 A records, 3 MX (Google Workspace), 2 NS
         → WHOIS: Registered 2019, expires 2025, GoDaddy
         → crt.sh: 47 unique subdomains from CT logs
         → HackerTarget: 23 hosts with IPs
         → Email: SPF soft-fail (~all), DMARC p=none, no DKIM
         → Shodan: 3 IPs, 12 open ports, Apache 2.4.49 (CVE-2021-41773)
         → VirusTotal: Clean reputation, 0 detections
         → "target.com has 47 subdomains, weak email security
            (SPF soft-fail, DMARC monitoring only), and one IP
            running Apache 2.4.49 with a known path traversal CVE.
            Priority: patch Apache, upgrade SPF to -all, set DMARC to p=reject."

Related MCP server: OhSINT MCP Server

How It's Different

Existing OSINT tools give you raw data one source at a time. osint-mcp-server gives your AI agent the ability to reason across all sources simultaneously.


Quick Start

Option 1: npx (no install)

npx osint-mcp-server

21 public OSINT tools work immediately. No API keys required.

Option 2: Clone

git clone https://github.com/badchars/osint-mcp-server.git
cd osint-mcp-server
bun install

Environment variables (optional)

# Premium OSINT sources — all optional
export SHODAN_API_KEY=your-key           # Enables 4 Shodan tools
export VT_API_KEY=your-key               # Enables 4 VirusTotal tools
export ST_API_KEY=your-key               # Enables 3 SecurityTrails tools
export CENSYS_API_ID=your-id             # Enables 3 Censys tools
export CENSYS_API_SECRET=your-secret     # Required with CENSYS_API_ID

All premium API keys are optional. Without them, you still get 21 tools covering DNS, WHOIS, crt.sh, GeoIP, BGP, Wayback Machine, HackerTarget, and Microsoft 365 tenant discovery.

Connect to your AI agent

# With npx
claude mcp add osint-mcp-server -- npx osint-mcp-server

# With local clone
claude mcp add osint-mcp-server -- bun run /path/to/osint-mcp-server/src/index.ts

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "osint": {
      "command": "npx",
      "args": ["-y", "osint-mcp-server"],
      "env": {
        "SHODAN_API_KEY": "optional",
        "VT_API_KEY": "optional",
        "ST_API_KEY": "optional",
        "CENSYS_API_ID": "optional",
        "CENSYS_API_SECRET": "optional"
      }
    }
  }
}

Same JSON config format. Point the command to npx osint-mcp-server or your local installation path.

Start querying

You: "What can you find about example.com?"

That's it. The agent handles DNS, WHOIS, subdomains, email security, and more automatically.


What The AI Can Do

Domain Reconnaissance

You: "Do a full recon on target.com"

Agent: → osint_domain_recon {domain: "target.com"}
       → DNS: A records point to 3 IPs (AWS us-east-1)
       → WHOIS: Registered 2018 via Namecheap, expires 2026
       → crt.sh: 62 subdomains discovered
       → HackerTarget: 31 hosts with resolved IPs
       → Email: SPF hard-fail, DMARC p=reject, DKIM found (selector1)
       → "target.com is well-configured for email security.
          62 subdomains found — notable: staging.target.com,
          admin-portal.target.com, api-v2.target.com.
          Infrastructure is on AWS (us-east-1)."

Attack Surface Mapping

You: "Map the attack surface for 203.0.113.50"

Agent: → shodan_host {ip: "203.0.113.50"}
       → geoip_lookup {ip: "203.0.113.50"}
       → bgp_ip {ip: "203.0.113.50"}
       → whois_ip {ip: "203.0.113.50"}
       → dns_reverse {ip: "203.0.113.50"}
       → "203.0.113.50 (Hetzner, DE, AS24940)
          Open ports: 22/SSH, 80/HTTP, 443/HTTPS, 8080/HTTP-Proxy
          Apache 2.4.51, OpenSSH 8.9, nginx reverse proxy on 8080
          Reverse DNS: web1.target.com
          3 known CVEs flagged by Shodan"

Subdomain Enumeration (Multi-Source)

You: "Find all subdomains of target.com using every source available"

Agent: → crtsh_search {domain: "target.com"}              → 62 subdomains
       → st_subdomains {domain: "target.com"}              → 84 subdomains
       → vt_subdomains {domain: "target.com"}              → 41 subdomains
       → hackertarget_hostsearch {domain: "target.com"}    → 31 hosts
       → dns_wildcard_check {domain: "target.com"}         → No wildcard
       → "127 unique subdomains after dedup across 4 sources.
          Notable findings: staging.target.com, dev-api.target.com,
          jenkins.target.com (CI/CD exposure risk),
          old-admin.target.com (potential legacy system)"

Email Security Audit

You: "Analyze the email security posture of target.com"

Agent: → dns_email_security {domain: "target.com"}
       → dns_spf_chain {domain: "target.com"}
       → m365_tenant {domain: "target.com"}
       → "Email Security: HIGH RISK
          SPF: ~all (soft fail — spoofable)
          DMARC: p=none (monitoring only — not enforcing)
          DKIM: Found for selector1 (2048-bit, good)
          SPF chain: 7 includes, 2 services (Google Workspace, SendGrid)
          M365: Not a Microsoft tenant
          Recommendations:
          1. Upgrade SPF from ~all to -all
          2. Change DMARC from p=none to p=quarantine, then p=reject
          3. Add rua= to DMARC for aggregate reporting"

Historical Intelligence

You: "What was target.com running 3 years ago?"

Agent: → wayback_urls {domain: "target.com", limit: 500}
       → st_dns_history {domain: "target.com", type: "a"}
       → wayback_snapshots {url: "https://target.com/robots.txt"}
       → "DNS history: target.com moved from 198.51.100.1 (DigitalOcean)
          to 203.0.113.50 (AWS) in 2023.
          Wayback found 342 unique URLs including:
          - /admin/ (removed in 2024, was accessible)
          - /api/v1/docs (Swagger UI, still cached)
          - /wp-content/ (was WordPress, migrated)
          Old robots.txt disallowed /internal/ and /debug/"

Tools Reference (37 tools)

Tool

Description

dns_lookup

Resolve A, AAAA, MX, TXT, NS, SOA, CNAME, SRV records

dns_reverse

Reverse DNS (PTR) lookup for an IP address

dns_email_security

SPF + DMARC + DKIM analysis with risk scoring and recommendations

dns_spf_chain

Recursive SPF include chain resolution with service detection

dns_srv_discover

SRV + CNAME service discovery (Autodiscover, LDAP, SIP, Kerberos, etc.)

dns_wildcard_check

Wildcard DNS detection via random subdomain probe

Tool

Description

whois_domain

RDAP domain lookup — registrar, dates, nameservers, contacts

whois_ip

RDAP IP lookup — network name, CIDR, country, entities

Tool

Description

crtsh_search

Search CT logs via crt.sh — subdomain discovery + certificate details

Tool

Description

shodan_host

IP details: open ports, services, banners, vulnerabilities, OS, ASN

shodan_search

Search Shodan query language (e.g. apache port:443 country:US)

shodan_dns_resolve

Bulk hostname-to-IP resolution via Shodan

shodan_exploits

Search public exploit database (PoC, Metasploit modules)

Tool

Description

vt_domain

Domain reputation, detection stats, categories, DNS records

vt_ip

IP reputation, detection stats, ASN, network

vt_subdomains

Subdomain enumeration via VirusTotal

vt_url

URL scan + malware/phishing analysis

Tool

Description

st_subdomains

Subdomain enumeration (returns FQDNs)

st_dns_history

Historical DNS records with first/last seen dates

st_whois

Enhanced WHOIS with registrant/admin/technical contacts

Tool

Description

censys_hosts

Host search — IPs, services, ports, location, ASN

censys_host_details

Single host full details with all services

censys_certificates

Certificate search by domain, fingerprint, issuer

Tool

Description

geoip_lookup

IP geolocation: country, city, ISP, ASN, proxy/hosting/VPN detection

geoip_batch

Batch IP geolocation (up to 100 IPs at once)

Tool

Description

bgp_asn

ASN details + all announced IPv4/IPv6 prefixes

bgp_ip

IP prefix/ASN routing lookup with RIR allocation

bgp_prefix

Prefix details + announcing ASNs

Tool

Description

wayback_urls

Archived URL discovery — find old endpoints, hidden paths, removed content

wayback_snapshots

Snapshot history with timestamps and direct archive links

Tool

Description

hackertarget_hostsearch

Host/subdomain discovery with resolved IPs

hackertarget_reverseip

Reverse IP lookup — find all domains on an IP

hackertarget_aslookup

ASN information lookup

Tool

Description

m365_tenant

Discover M365 tenant ID, region, and OpenID configuration

m365_userrealm

Detect auth type (Managed/Federated), federation brand, auth endpoints

Tool

Description

osint_list_sources

List all OSINT sources, API key status, and tool counts

osint_domain_recon

Quick recon combining all free sources (DNS + WHOIS + crt.sh + HackerTarget + email security)


GitHub Actions

Use any of the 37 tools directly in your CI/CD pipeline:

# .github/workflows/security.yml
name: OSINT Security Check
on:
  schedule:
    - cron: '0 8 * * 1'  # Weekly Monday 8am
  workflow_dispatch:

jobs:
  recon:
    runs-on: ubuntu-latest
    steps:
      - name: Domain reconnaissance
        uses: badchars/osint-mcp-server@v1
        id: recon
        with:
          tool: osint_domain_recon
          args: '{"domain": "example.com"}'

      - name: Email security audit
        uses: badchars/osint-mcp-server@v1
        with:
          tool: dns_email_security
          args: '{"domain": "example.com"}'

      - name: Subdomain enumeration
        uses: badchars/osint-mcp-server@v1
        with:
          tool: crtsh_search
          args: '{"domain": "example.com"}'

      - name: Shodan scan (optional)
        uses: badchars/osint-mcp-server@v1
        with:
          tool: shodan_host
          args: '{"ip": "203.0.113.50"}'
        env:
          SHODAN_API_KEY: ${{ secrets.SHODAN_API_KEY }}

The action output is available via steps.<id>.outputs.result for further processing.

CLI Usage

# List all available tools
npx osint-mcp-server --list

# Run any tool directly
npx osint-mcp-server --tool dns_lookup '{"domain":"example.com","type":"A"}'
npx osint-mcp-server --tool osint_domain_recon '{"domain":"example.com"}'
npx osint-mcp-server --tool dns_email_security '{"domain":"example.com"}' --format text

# Tools requiring API keys
SHODAN_API_KEY=your-key npx osint-mcp-server --tool shodan_host '{"ip":"1.1.1.1"}'

Data Sources (12)

Source

Auth

Rate Limit

What it provides

DNS

None

None

A, AAAA, MX, TXT, NS, SOA, CNAME, SRV, PTR records

RDAP

None

1 req/s

Domain & IP WHOIS data (registrar, dates, contacts, CIDR)

crt.sh

None

0.5 req/s

Certificate Transparency logs, subdomain discovery

ip-api.com

None

45 req/min

IP geolocation, ISP, ASN, proxy/VPN/hosting detection

BGPView

None

0.5 req/s

ASN details, announced prefixes, IP routing info

HackerTarget

None

2 req/s

Host search, reverse IP, ASN lookup (50/day free)

Wayback Machine

None

1 req/s

Archived URLs, snapshot history, historical content

Microsoft 365

None

None

Tenant discovery, federation detection, auth type

Shodan

SHODAN_API_KEY

1 req/s

Internet-wide port/service/banner scanning

VirusTotal

VT_API_KEY

4 req/min

Domain/IP/URL reputation, malware detection

SecurityTrails

ST_API_KEY

1 req/s

DNS history, subdomain enumeration, enhanced WHOIS

Censys

CENSYS_API_ID

1 req/s

Host search, certificate transparency, service discovery


Design decisions:

  • 12 providers, 1 server &mdash; Every OSINT source is an independent module. The agent picks which tools to use based on the query.

  • 21 free tools &mdash; DNS, WHOIS, crt.sh, BGP, GeoIP, Wayback, HackerTarget, and M365 work without any API keys. Premium sources are additive.

  • Parallel queries &mdash; osint_domain_recon calls 8 sources via Promise.allSettled. If one source times out, the rest still return data.

  • Per-provider rate limiters &mdash; Each data source has its own RateLimiter instance calibrated to that API's limits. No shared bottleneck.

  • TTL caching &mdash; crt.sh (15min), BGP (30min), Shodan (5min), VirusTotal (10min) results are cached to avoid redundant API calls during multi-tool workflows.

  • Graceful degradation &mdash; Missing API keys don't crash the server. Tools return descriptive error messages: "Set SHODAN_API_KEY to enable Shodan tools."

  • SPF chain analysis &mdash; Recursive include resolution with loop detection, service identification (Google Workspace, Microsoft 365, SendGrid, etc.), and RFC 7208 lookup limit checking.

  • 2 dependencies &mdash; @modelcontextprotocol/sdk and zod. All HTTP via native fetch. All DNS via node:dns/promises.


Limitations

  • Free-tier rate limits apply: HackerTarget (50/day), ip-api.com (45/min), VirusTotal community (4/min)

  • crt.sh can be slow for large domains (30s timeout applied)

  • ip-api.com requires HTTP (not HTTPS) for free tier

  • Wayback Machine CDX API can timeout for very popular domains

  • WHOIS via RDAP may not cover all TLDs (some registrars don't support RDAP yet)

  • macOS / Linux tested (Windows not tested)


Part of the MCP Security Suite

Project

Domain

Tools

hackbrowser-mcp

Browser-based security testing

39 tools, Firefox, injection testing

cloud-audit-mcp

Cloud security (AWS/Azure/GCP)

38 tools, 60+ checks

github-security-mcp

GitHub security posture

39 tools, 45 checks

cve-mcp

Vulnerability intelligence

23 tools, 5 sources

osint-mcp-server

OSINT & reconnaissance

37 tools, 12 sources


Available Tools

37 tools
bgp_asnA

Look up ASN details and announced IPv4/IPv6 prefixes via BGPView. Returns ASN name, description, contacts, and all announced prefixes.

ParametersJSON Schema
NameRequiredDescriptionDefault
asnYesAutonomous System Number (e.g. 13335)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool performs a lookup and returns specific fields, but omits potential behavioral traits such as rate limits, authentication requirements, data freshness, or error handling.

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 efficiently convey the tool's purpose, source, and output. No extraneous information; each word 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 simple lookup tool with one parameter and no output schema, the description adequately covers the main functionality and return fields. It could note potential limits on prefix lists, but overall is sufficiently complete.

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 coverage is 100% with a clear description for the sole parameter 'asn'. The description adds no additional semantic value beyond what the schema already provides, meeting the baseline.

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 tool's action (look up) and resource (ASN details and announced prefixes), and specifies the source (BGPView). It distinguishes itself from siblings like bgp_ip and bgp_prefix by focusing on ASN-level data.

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 needing ASN details or prefixes, but does not explicitly state when to use versus alternatives like bgp_ip or bgp_prefix, nor provide any exclusions or prerequisites.

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

bgp_ipB

Look up BGP routing information for an IP address. Returns matching prefixes, ASNs, and RIR allocation.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to look up

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; the description lacks disclosure of behavioral traits like rate limits, authentication, or side effects. It is a read operation but does not state this explicitly.

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 concise sentences, no redundancy. Perfectly front-loaded and efficient.

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?

Tool is simple with one parameter and no output schema; the description is adequate. Could mention limitations (e.g., IPv4/IPv6) but not required.

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 coverage is 100% for the single parameter 'ip', so the description adds minimal value. It does not clarify format or constraints 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 clearly states the tool's purpose (lookup BGP routing info for an IP) and specifies the output (prefixes, ASNs, RIR allocation). This distinguishes it from sibling tools like bgp_asn and bgp_prefix.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., bgp_asn, bgp_prefix). The description merely states function without context or exclusions.

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

bgp_prefixA

Look up details for a specific IP prefix/CIDR. Returns announcing ASNs, name, country, and RIR.

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixYesIP prefix (e.g. '1.1.1.0')
cidrYesCIDR mask (e.g. 24)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states it returns data but does not disclose behavioral traits like data freshness, rate limits, or error handling. Adequate for a simple lookup tool.

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?

Single sentence that is front-loaded with the core function and return information. No wasted words.

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?

No output schema, but description mentions four return fields (ASNs, name, country, RIR). Missing details on edge cases (e.g., invalid prefix), but sufficient 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?

Schema description coverage is 100% with clear examples for both parameters (prefix and cidr). The description adds no additional parameter meaning beyond what the schema already provides, fitting the baseline.

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 it looks up details for a specific IP prefix/CIDR. Distinguishes from sibling tools like bgp_asn and bgp_ip by specifying the input type (prefix/CIDR) and outputs (ASNs, name, country, RIR).

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 when to use (for prefix/CIDR lookups) but does not provide explicit guidance on alternatives or when not to use. No mention of prerequisites or exclusions.

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

censys_certificatesA

Search Censys certificate database. Returns certificate fingerprints, subjects, issuers, validity, and SANs. Requires CENSYS_API_ID + CENSYS_API_SECRET.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCertificate search query (e.g. 'parsed.names: example.com')
per_pageNoResults per page (max 100, default: 25)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, and description does not disclose behavioral traits such as read-only nature, rate limits, or pagination behavior beyond per_page parameter.

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, concise, front-loaded with purpose and return values, no filler.

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

Completeness3/5

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

Adequate for a simple search tool with two parameters, but missing usage alternatives and behavioral context like safety profile.

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 coverage is 100%, so parameters are already well-documented. Description adds auth requirement but no further parameter details beyond 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?

Description clearly states the tool searches the Censys certificate database and lists specific return fields (fingerprints, subjects, issuers), distinguishing it from sibling Censys tools like censys_hosts.

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?

Mentions required API keys but does not provide guidance on when to use this tool versus alternatives like shodan_search or when not to use it.

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

censys_host_detailsA

Get detailed Censys host information for a single IP: all services, certificates, OS, location, ASN. Requires CENSYS_API_ID + CENSYS_API_SECRET.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to look up

TDQS

A4.2/5.0
Behavior4/5

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

Discloses the authentication requirement and summarizes return data (services, certificates, OS, etc.). With no annotations provided, the description carries the full burden; it indicates a read-only operation without mentioning potential rate limits or idempotency, but is otherwise clear.

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 concise sentences with no unnecessary words. The first sentence explains the action and output; the second covers a critical prerequisite. Every phrase adds value.

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 simple single-IP lookup, the description covers purpose, returned data, and authentication. Lacks mention of any side effects or limits, but given the tool's simplicity and no output schema, it is sufficiently complete for an agent to understand what to expect.

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 only parameter 'ip' is fully described in the schema (coverage 100%), and the description adds no extra detail about format (e.g., IPv4/IPv6) or constraints. Baseline score of 3 is appropriate since the schema already documents the parameter adequately.

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 verb 'Get' and specific resource 'detailed Censys host information for a single IP'. Lists included data (services, certificates, OS, location, ASN), distinguishing it from sibling tools like censys_certificates or censys_hosts that may handle multiple IPs or different queries.

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?

Explicitly notes the prerequisite of API credentials (CENSYS_API_ID + CENSYS_API_SECRET). However, it does not provide explicit when-not-to-use or alternatives among siblings, though the purpose implicitly guides usage for single IP lookups.

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

censys_hostsA

Search Censys for hosts matching a query. Returns IPs, services, ports, location, ASN. Requires CENSYS_API_ID + CENSYS_API_SECRET.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCensys search query
per_pageNoResults per page (max 100, default: 25)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions required API keys but does not disclose rate limits, pagination behavior, or whether results are live or cached. This is adequate but incomplete.

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 concise sentences with no redundancy. It front-loads the main action and key details, but could be slightly more structured with a clear outcome statement.

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 simple tool with two parameters and no output schema, the description covers purpose, return fields, and authentication. It is mostly complete but missing details on result format or pagination.

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 coverage is 100% with descriptions for both parameters. The description does not add additional context beyond the schema, such as query syntax requirements or the impact of per_page on results.

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 tool searches for hosts, specifies the data returned (IPs, services, ports, location, ASN), and differentiates from sibling tools like censys_host_details which likely focus on single host details.

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 does not explicitly state when to use this tool versus alternatives like censys_host_details or other search tools. The purpose is clear but no direct comparison or usage guidance is provided.

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

dns_email_securityA

Analyze email security posture: SPF, DMARC, DKIM records with risk assessment and recommendations. Checks common DKIM selectors (google, selector1, selector2, k1, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to analyze
dkim_selectorsNoCustom DKIM selectors to check (default: common selectors)

TDQS

A4/5.0
Behavior3/5

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

The description discloses that it checks common DKIM selectors and provides risk assessment, but lacks details on authentication needs, rate limits, or error handling. Since no annotations exist, the description carries the burden but is not fully comprehensive.

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 front-loaded sentences: first captures main purpose, second adds specific detail. No extraneous text, every sentence adds value.

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 no output schema, the description adequately explains the tool's outputs (SPF, DMARC, DKIM analysis, risk assessment, recommendations). It could be more explicit about the structure of the return, but overall is sufficient for its complexity.

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

Parameters4/5

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

The schema already describes domain and dkim_selectors. The description adds value by listing example common selectors (google, selector1, selector2, k1), enhancing understanding beyond the schema's generic descriptions.

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?

Description clearly states it analyzes email security posture (SPF, DMARC, DKIM) with risk assessment and recommendations. It also mentions checking common DKIM selectors, differentiating it from sibling tools like dns_lookup or dns_spf_chain that only return raw records.

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?

While the purpose is clear, there is no explicit guidance on when to use this tool versus alternatives. It does not provide when-not or alternate tool suggestions, leaving the agent to infer usage from the description alone.

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

dns_lookupA

Resolve DNS records for a domain. Supports A, AAAA, MX, TXT, NS, SOA, CNAME, SRV record types.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to query
typeYesDNS record type

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as error handling, rate limits, or authentication requirements. It only restates the supported record types.

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 very concise and front-loaded, using two sentences to convey the core functionality with no wasted words.

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

Completeness3/5

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

For a simple two-parameter tool, the description covers the basic purpose and supported record types, but lacks information about return values or behavior on errors, which could be helpful given the absence of 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 coverage is 100% for both parameters, and the description does not add new meaning beyond what the schema provides, merely listing the enum values again.

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 tool resolves DNS records and lists all supported record types. It distinguishes itself from sibling tools like dns_reverse and dns_spf_chain.

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 through its name and function, but lacks explicit guidance on when to use this tool versus alternatives like dns_reverse or dns_spf_chain.

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

dns_reverseA

Perform reverse DNS (PTR) lookup for an IP address. Returns associated hostnames.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address for reverse lookup

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description should disclose behavioral traits. It states the return result (hostnames) but does not mention potential side effects, rate limits, or limitations (e.g., only public IPs). Minimal but adequate for a simple lookup.

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 a single sentence that immediately states the action and result, with no extraneous words. It is appropriately front-loaded and efficient.

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

Completeness3/5

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

For a tool with one parameter and no output schema, the description provides minimal but sufficient information. It does not describe error handling, multiple results, or formatting of returned hostnames, which could be improved.

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 coverage is 100% and the schema description for the 'ip' parameter is 'IP address for reverse lookup'. The description repeats this same information, adding no additional meaning 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 clearly states the tool performs a reverse DNS (PTR) lookup for an IP address and returns hostnames, which is distinct from sibling tools like dns_lookup (forward lookup). The verb 'Perform' and resource 'reverse DNS (PTR) lookup' are specific.

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 clearly implies use when given an IP address to find hostnames, but does not explicitly exclude forward lookups or mention alternatives like dns_lookup. It provides clear context but lacks when-not or alternative guidance.

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

dns_spf_chainA

Recursively resolve SPF include chain. Shows all included domains, IP ranges, detected services (Google Workspace, Microsoft 365, SendGrid, etc.), and RFC 7208 lookup limit compliance.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to trace SPF chain for
max_depthNoMaximum recursion depth (default: 10)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the recursive behavior and output contents (domains, IPs, services, compliance). However, it does not address safety (read-only), rate limits, or necessary permissions, leaving gaps in transparency.

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 a single front-loaded sentence that conveys the essential purpose and outputs without extraneous words. Every part is informative and necessary.

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 and lack of output schema, the description adequately explains the return contents. It mentions recursion, included domains, IP ranges, services, and compliance. However, it does not clarify recursion behavior (e.g., max_depth limit) or error handling, which is a minor gap.

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 has 100% description coverage, so the schema already documents both parameters. The description adds no additional meaning beyond what the schema provides, resulting in a baseline score of 3.

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 tool recursively resolves SPF include chains, showing included domains, IP ranges, detected services, and RFC 7208 compliance. This distinguishes it from sibling DNS tools like dns_lookup or dns_email_security, making its purpose specific and 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 implies use for SPF analysis but does not explicitly differentiate from alternatives like dns_email_security or provide when-to-use or when-not-to-use guidance. Usage is implied but lacks explicit direction.

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

dns_srv_discoverA

Discover SRV records and common service CNAMEs for a domain. Probes for SIP, XMPP, Autodiscover, LDAP, Kerberos, CalDAV, CardDAV, and checks CNAMEs for autodiscover, lyncdiscover, OWA, ADFS, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to probe

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It lists what is probed but does not disclose if it is read-only, any rate limits, or other limitations. Basic behavioral description but lacks depth.

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, well-structured with no unnecessary information. Every sentence adds value.

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?

Tool has one parameter and no output schema. Description is sufficient given the complexity, listing the probed services, and providing clear context for use.

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

Parameters4/5

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

Schema has one parameter 'domain' with a simple description 'Domain to probe'. The description adds value by elaborating on the probe details (SRV and CNAME checks for various services), compensating beyond 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?

Description clearly states the tool discovers SRV records and common service CNAMEs for a domain, listing specific services (SIP, XMPP, etc.). This is a specific verb+resource and distinguishes from sibling DNS tools like dns_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?

Description implies usage for probing service endpoints, but does not explicitly state when not to use it or suggest alternatives. Sibling tools exist but no guidance provided.

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

dns_wildcard_checkA

Check if a domain has wildcard DNS configured by resolving a random subdomain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check for wildcard DNS

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that a random subdomain is resolved, indicating a DNS query, but does not state that it is a read-only operation or any potential side effects. Adequate for a simple check but minimal.

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?

A single, concise sentence that front-loads the purpose. No extraneous information; every word earns its place.

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

Completeness3/5

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

The description does not explain the return value or format, which is important since there is no output schema. For a simple tool, this is a gap that could be filled with additional context.

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

Parameters4/5

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

The input schema has 100% coverage with a description for the domain parameter, and the tool description adds context about the mechanism (resolving a random subdomain), which enhances understanding 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 clearly states it checks for wildcard DNS by resolving a random subdomain, specifying the verb and resource. This distinguishes it from sibling tools like dns_lookup which perform general DNS lookups.

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?

No explicit guidance on when to use this tool versus alternatives or when not to use it. The description implies usage for wildcard detection but lacks context on prerequisites or exclusions.

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

geoip_batchA

Batch geolocate up to 100 IP addresses at once. Uses ip-api.com (free, no API key).

ParametersJSON Schema
NameRequiredDescriptionDefault
ipsYesIP addresses to geolocate (max 100)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the external service and lack of authentication needs, but does not mention rate limits, response format, or error handling. Behavior is implied but not fully detailed.

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 with no wasted words. The action is front-loaded, and the key details (batch size, data source, cost) are efficiently conveyed.

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 tool with no output schema, the description is fairly complete. It covers the function, source, and constraints. However, the absence of output format or error behavior leaves some gaps for an AI agent.

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 the input schema already explains the 'ips' parameter. The tool description restates the limit (up to 100), adding minimal extra value. 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 clearly states the tool's action: batch geolocate IP addresses. It specifies the batch size limit (up to 100) and distinguishes itself from sibling geoip_lookup by the word 'Batch'.

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 mentions the data source (ip-api.com) and that it's free with no API key, which guides usage. However, it does not explicitly state when to use the batch tool over the single IP version or any alternatives.

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

geoip_lookupA

Geolocate an IP address: country, city, ISP, ASN, proxy/hosting/mobile detection. Uses ip-api.com (free, no API key).

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to geolocate

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses the data source and that no API key is needed, but omits rate limits, error handling (e.g., invalid IPs), and does not fully describe the return structure (e.g., lacks lat/long, timezone). This is a moderate disclosure for a simple lookup tool.

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?

Two sentences provide the core function and source. The information is front-loaded and there is no redundancy, though the list of output fields could be slightly better structured.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description covers the main purpose and data source. However, it does not fully enumerate all possible return fields (e.g., coordinates, accuracy) and lacks fallback behavior, which is needed since no output schema exists.

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 has 100% description coverage for the single 'ip' parameter. The description adds no extra semantics beyond the schema's 'IP address to geolocate', so it meets the baseline but does not enhance understanding (e.g., no format or validation hints).

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 tool geolocates an IP address and lists specific data fields (country, city, ISP, ASN, proxy/hosting/mobile). It also identifies the backend service (ip-api.com), distinguishing it from sibling tools like geoip_batch.

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?

No explicit guidance on when to use this tool versus alternatives such as geolocation via shodan_host or vt_ip. Mentioning it is free and requires no API key implies a low-barrier choice, but does not formally compare or exclude conditions.

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

hackertarget_aslookupB

Look up ASN information for an IP or ASN via HackerTarget. Free tier: 50 queries/day.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesIP address or ASN to look up

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions the free tier query limit but lacks details about rate limiting, authentication requirements, error handling, or what happens when quota is exceeded. Critical behavioral context is missing.

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 extremely concise: one sentence stating the core purpose and one sentence noting the free tier limit. Every word serves a purpose, and the key action is front-loaded. No wasted content.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description covers the purpose and a key constraint (free tier limit). However, it does not describe the return format or any usage nuances. Additional detail on output would improve completeness.

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 already provides a description for the 'query' parameter (IP address or ASN). The description repeats this without adding new meaning or usage details. With 100% schema coverage, baseline is 3; no additional parameter semantics are provided.

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

Purpose4/5

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

The description clearly states the tool looks up ASN information for an IP or ASN via HackerTarget. It is not a tautology and provides the resource (ASN info) and method (look up). However, it does not explicitly differentiate from sibling tools like bgp_asn or geoip_lookup, though the name and description together uniquely identify it.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives. It only mentions the free tier limit (50 queries/day) as a constraint, but no proactive usage context or when-not-to-use advice is included.

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

hackertarget_hostsearchA

Find subdomains and their IPs for a domain via HackerTarget. Free tier: 50 queries/day.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to search hosts for

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description bears full transparency duty. It discloses the external API (HackerTarget) and a rate limit, implying a read-only operation. However, it does not explicitly state safety or mention if any data is modified, though 'Find' suggests a safe query.

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 with no wasted words. The first sentence immediately states the action and resource, and the second provides a critical constraint. Very efficient.

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 simple subdomain finder with no output schema, the description adequately explains input (domain), action (find subdomains and IPs), and a constraint (rate limit). The return format is implied, which is sufficient for this straightforward tool.

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% (one parameter with description 'Domain to search hosts for'). The tool description adds no extra parameter meaning beyond the schema, so 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 clearly states the tool finds subdomains and their IPs for a given domain via HackerTarget. This specific verb+resource pairing distinguishes it from sibling tools like hackertarget_reverseip or dns_lookup.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as hackertarget_reverseip or other DNS tools. The only usage note is a rate limit (50 queries/day), which is helpful but does not replace comparative guidance.

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

hackertarget_reverseipA

Reverse IP lookup via HackerTarget — find all domains hosted on an IP. Free tier: 50 queries/day.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address for reverse lookup

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description must cover behavioral traits. It discloses a rate limit ('Free tier: 50 queries/day'), which is helpful, but does not mention whether the operation is read-only, requires authentication, or other side effects.

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 no extraneous information. It is front-loaded with the core purpose and immediately follows with the key usage constraint.

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

Completeness3/5

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

No output schema exists, and the description only states the result will be 'domains hosted on an IP', lacking details on format or structure. For a simple tool, this may be sufficient but leaves some ambiguity.

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?

With 100% schema coverage, the description adds no extra meaning to the single 'ip' parameter beyond what the schema already provides. 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 clearly states 'Reverse IP lookup via HackerTarget — find all domains hosted on an IP.' This uses a specific verb and resource, and distinguishes from siblings like dns_reverse which does PTR records.

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 provides a usage limit ('Free tier: 50 queries/day') but lacks explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites or exclusions.

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

m365_tenantB

Discover Microsoft 365 tenant information for a domain. Returns tenant ID, region, and OpenID configuration endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check for M365 tenant

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description bears full responsibility. It discloses return fields but does not mention behavior for invalid domains, rate limits, or authentication needs. The tool is likely read-only, but that is not explicit.

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 efficient sentences: first states purpose, second lists outputs. No redundant or unnecessary text.

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 simple tool with one parameter and no output schema, the description adequately explains purpose and return values. However, it could mention error handling or edge cases (e.g., domain without tenant).

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 100% of the single parameter with a clear description. The tool description adds no additional semantic information about the parameter beyond the schema, so 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 specifies the action ('Discover'), the resource ('Microsoft 365 tenant information'), and the target ('for a domain'), with clear return values listed. It distinguishes itself from sibling tools that focus on other domains like DNS or security.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like m365_userrealm. The description does not mention prerequisites or use cases beyond stating what it does.

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

m365_userrealmA

Detect authentication type for a domain's Microsoft 365 tenant. Returns namespace type (Managed/Federated), federation brand name, and auth endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check user realm for

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are present, so the description must stand alone. It accurately describes the read-only detection operation and the return values, but does not disclose authentication requirements or potential rate limits. However, the info provided is sufficient for a simple lookup tool.

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?

A single, front-loaded sentence of 15 words conveys all essential information without redundancy. Every word 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 simple one-parameter tool, the description covers purpose, inputs, and outputs. It lacks error handling details (e.g., non-existent domains), but this is a minor omission given the tool's simplicity.

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

Parameters4/5

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

Schema description coverage is 100% with a clear parameter description. The tool description adds context about the Microsoft 365 scope and specific output fields, enhancing the schema's meaning. This goes beyond the baseline 3.

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 action (detect authentication type), the resource (domain's Microsoft 365 tenant), and the expected outputs (namespace type, federation brand name, auth endpoints), distinguishing it from siblings like m365_tenant.

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?

No explicit when or when-not to use is provided, though the single parameter implies straightforward usage. No alternatives or exclusions are mentioned, leaving the agent to infer based on the tool's name and description.

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

osint_domain_reconA

Quick domain reconnaissance combining free sources: DNS (A/MX/NS/TXT), WHOIS, crt.sh subdomains, HackerTarget hosts, and email security analysis. No API keys required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to perform recon on

TDQS

A3.9/5.0
Behavior3/5

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

No annotations present. The description discloses sources and that no API keys are required, which is helpful. However, it does not mention rate limits, data freshness, error handling, or idempotency traits, leaving some behavioral aspects undisclosed.

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 a single, well-structured sentence that conveys all key points concisely. It is front-loaded with the main purpose and lists specific sources without unnecessary words.

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

Completeness3/5

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

Given the absence of an output schema and moderate complexity (multi-source), the description lists sources but does not explain return format, result structure, or pagination. This is sufficient for basic understanding but incomplete for an agent needing to parse results.

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 single parameter 'domain' is described in both schema and description similarly. Schema coverage is 100%, so baseline 3 is appropriate. The description adds no extra semantics beyond what the schema already provides.

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 it is a quick domain reconnaissance tool combining multiple free sources (DNS, WHOIS, crt.sh, HackerTarget, email security). It distinguishes itself from sibling tools like dns_lookup, whois_domain, and crtsh_search by promising a consolidated result.

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 implies usage for a broad, quick recon without needing separate calls to individual sources. However, it does not explicitly state when to prefer this over siblings or provide exclusions, which is a minor gap.

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

osint_list_sourcesA

List all OSINT data sources, their availability, API key requirements, and tool counts. Use this to check which sources are configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It states the tool lists data sources, implying a read-only operation. The description adequately describes the behavior without contradictory or missing information.

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 action, and includes a clear use case. Every sentence adds value, with no redundancy or extraneous information.

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?

Given the tool has no parameters, no output schema, and is a simple list, the description fully explains what it does and its purpose. It specifies the fields listed (availability, API key requirements, tool counts) and the intended use (checking configuration). This is complete for the tool's complexity.

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

Parameters4/5

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

The input schema has no parameters, so the description does not need to add parameter semantics. Schema coverage is 100%, and the description mentions the tool lists 'all' sources, aligning with the no-parameter interface.

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 tool lists OSINT data sources with availability, API key requirements, and tool counts. It uses specific verb 'list' and resource 'OSINT data sources', distinguishing it from sibling query tools that perform lookups on specific sources.

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 usage guidance: 'Use this to check which sources are configured.' This implies it is for configuration checks. While it does not explicitly exclude alternatives, the context of sibling tools makes the use case clear.

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

shodan_dns_resolveB

Resolve hostnames to IPs using Shodan's DNS resolver. Requires SHODAN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnamesYesHostnames to resolve

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It does not disclose any traits like rate limits, error behavior, or whether the resolver is authoritative. The simple 'resolve hostnames to IPs' lacks depth for an agent to anticipate outcomes beyond basic functionality.

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 extremely concise with two sentences and zero waste. It front-loads the core purpose and follows with a critical prerequisite. Every word earns its place, making it efficient for an AI agent to parse.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is minimally complete. It covers the basic use case and a dependency. However, it lacks context on how the tool fits among siblings (e.g., why use this over dns_lookup) and omits behavior like batch limits or response structure, which would be helpful for an agent.

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 has 100% coverage for the single parameter 'hostnames', which already describes it as 'Hostnames to resolve'. The description reinforces the purpose but adds no new semantic details about the parameter format, limits, or how multiple hostnames are handled. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool resolves hostnames to IPs using Shodan's DNS resolver. It is specific about the action and resource, though it does not differentiate from sibling tools like dns_lookup or shodan_host that might perform similar functions. The mention of Shodan provides context, but clarity could be improved by noting what distinguishes this from other DNS tools.

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

Usage Guidelines2/5

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

The description only mentions a prerequisite (requires SHODAN_API_KEY) but provides no guidance on when to use this tool versus alternatives such as dns_lookup, dns_reverse, or shodan_host. There is no when-not or explicit context for selection, leaving the agent to infer usage from the tool name alone.

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

shodan_exploitsB

Search Shodan's exploit database for public exploits matching a query. Requires SHODAN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesExploit search query (e.g. 'apache 2.4' or CVE ID)
typeNoFilter by exploit type (e.g. 'exploit', 'metasploit')

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description is the sole source of behavioral info. It only reveals the API key requirement but omits other traits like rate limits, read-only nature, error handling, or result 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 extremely concise—two short sentences that convey the essential purpose and a prerequisite. Every word earns its place.

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

Completeness2/5

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

Given the lack of output schema, the description should compensate by hinting at the return format or behaviors, but it does not. For a simple search tool, it misses contextual details like pagination or result structure.

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 coverage is 100%, and the description does not add meaning beyond the schema for the 'query' and 'type' parameters. The baseline of 3 is appropriate as no extra value is provided.

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 'Search Shodan's exploit database for public exploits matching a query,' with a specific verb and resource. It uniquely identifies the tool's function among siblings like shodan_search.

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 mentions the API key requirement but provides no guidance on when to use this tool versus alternatives or when not to use it. It lacks exclusions or context for selection.

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

shodan_hostA

Get Shodan host details for an IP: open ports, services, banners, vulns, OS, ASN, geolocation. Requires SHODAN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to look up

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses that the tool retrieves host details (non-destructive) and lists returned data, but does not mention rate limits, pagination, or behavior when IP is not found. Adequate for a simple lookup but not fully transparent.

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?

Single sentence with colon-separated list and prerequisite note. No unnecessary words, well-structured for quick comprehension.

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 simple tool with one parameter and no output schema, description covers purpose, input, and sample fields. Could mention return format (JSON) but overall complete for intended 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?

Input schema has 100% coverage with one parameter 'ip' described as 'IP address to look up'. Description adds context about the returned fields but does not enhance parameter meaning. Baseline of 3 is appropriate as schema already explains the parameter.

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?

Description clearly states the verb 'Get', specifies resource 'Shodan host details for an IP', and enumerates specific data fields (ports, services, banners, vulns, OS, ASN, geolocation), distinguishing it from sibling tools like shodan_search which searches by query.

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?

Mentions prerequisite 'Requires SHODAN_API_KEY', but lacks explicit guidance on when to use this tool versus alternatives such as shodan_dns_resolve or shodan_search. Usage context is implied by the specific detail retrieval.

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

st_dns_historyA

Get historical DNS records for a domain via SecurityTrails. Shows first/last seen dates, values, and organizations. Requires ST_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to get DNS history for
typeYesDNS record type

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It discloses the precondition (API key) and output fields, but lacks behavioral traits such as safety (read-only), rate limits, pagination, or any potential side effects. With no annotations, this is insufficient for an agent to fully understand 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?

Two sentences, front-loaded with purpose, followed by output details and prerequisite. Every piece of information adds value with no redundancy. Excellent conciseness.

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 no output schema, the description explains return fields (dates, values, organizations). However, it omits details like pagination, maximum results, or handling of no data. For a simple two-parameter tool, it covers most needs but has minor gaps.

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?

Both parameters are fully documented in the input schema with descriptions and enum values. The description does not add additional semantics beyond stating what the output contains, which does not enhance parameter understanding. 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?

Description clearly states verb 'Get', resource 'historical DNS records', and specifies the source 'via SecurityTrails'. It also lists what is shown: first/last seen dates, values, organizations. This distinguishes it from sibling DNS tools like dns_lookup that provide current records.

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 historical DNS records but does not explicitly state when to use this tool versus alternatives like dns_lookup. The prerequisite 'Requires ST_API_KEY' hints at a specific data source but lacks explicit guidance on scenarios or exclusions.

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

st_subdomainsB

Enumerate subdomains for a domain via SecurityTrails. Returns FQDNs. Requires ST_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to enumerate subdomains for

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only mentions that it returns FQDNs and requires an API key, but omits details about rate limits, pagination, idempotency, or error handling.

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 extremely concise with two short sentences, no redundancy, and front-loaded with the core action.

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

Completeness2/5

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

Given the simplicity of the tool (1 param, no output schema), the description lacks completeness. It does not specify output format (e.g., list, array, delimited) or any constraints (e.g., maximum subdomains, rate limits).

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 only parameter 'domain' is fully described in the schema (100% coverage). The description adds no further semantic context beyond the schema, so 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 clearly states it enumerates subdomains for a domain using SecurityTrails and returns FQDNs. The specific mention of 'SecurityTrails' helps differentiate it from sibling tools like crtsh_search or vt_subdomains.

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 notes the requirement for ST_API_KEY, which is a helpful prerequisite. However, it does not provide guidance on when to use this tool versus alternatives (e.g., when to prefer SecurityTrails over Certificate Transparency or VirusTotal).

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

st_whoisB

Enhanced WHOIS lookup via SecurityTrails with registrant/admin/technical contacts. Requires ST_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to look up

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It notes the API key requirement but does not explain rate limits, data freshness, response format, or error handling. For a tool with no annotations, this level of detail is insufficient for safe invocation.

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 very concise, with two sentences that deliver the key points: the tool's purpose and its requirement. However, it could benefit from a slightly more structured format, such as separating the prerequisite from the functional description.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description covers the essential points but lacks context about the response structure or how the contacts are returned. It is adequate for basic usage but incomplete for an agent needing to parse results.

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 single parameter 'domain' has 100% schema coverage and a basic description. The tool description adds no additional meaning beyond the schema, such as format expectations or examples. Baseline 3 is appropriate as the schema already provides adequate information.

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 tool performs an 'Enhanced WHOIS lookup' for a domain using SecurityTrails, specifying the types of contacts retrieved (registrant/admin/technical). This differentiates it from sibling tools like 'whois_domain' and 'whois_ip' by emphasizing the source and enhanced data.

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 mentions 'Requires ST_API_KEY' as a prerequisite but does not provide explicit guidance on when to use this tool versus alternatives like 'whois_domain'. Usage context is implied by the specification of SecurityTrails, but no exclusions or comparisons are given.

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

vt_domainB

VirusTotal domain analysis: reputation score, detection stats, categories, registrar, DNS records. Requires VT_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to analyze

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. The description mentions requiring an API key but does not disclose other behavioral traits like rate limits, data freshness, or whether the operation is read-only (though implied). Missing details on output format or pagination.

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?

Exceptionally concise: one sentence listing outputs plus a note about the API key. Front-loaded with purpose, no wasted words.

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

Completeness3/5

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

Adequate for a simple tool with one parameter and no output schema, but lacks usage guidelines and behavioral context. The list of outputs is useful but not exhaustive.

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?

Only one parameter 'domain' with schema description 'Domain to analyze'. Schema coverage is 100%, so baseline is 3. The description adds no extra meaning 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 clearly states the tool performs 'VirusTotal domain analysis' and lists specific outputs like reputation score, detection stats, categories, registrar, DNS records. This distinguishes it from siblings like vt_ip or vt_subdomains.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as vt_ip or vt_subdomains. Only mentions requirement of VT_API_KEY.

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

vt_ipA

VirusTotal IP analysis: reputation, detection stats, country, ASN, network. Requires VT_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to analyze

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description must fill in. It discloses the need for an API key and lists the data returned (reputation, detection stats, country, ASN, network), which adds transparency beyond the tool name. However, it does not discuss rate limits, error handling, or any side effects.

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 no redundancy: first sentence lists capabilities, second sentence mentions the required API key. Information is front-loaded and each sentence adds value.

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 tool with one parameter (fully documented in schema), a clear purpose, and known output fields, the description covers key context. It lacks details on output format or error cases, but given the simplicity, it is reasonably complete.

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 has 100% description coverage for the single parameter 'ip', already explaining 'IP address to analyze'. The description adds no extra meaning beyond what the schema provides, so 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 clearly states 'VirusTotal IP analysis' with specific outputs: reputation, detection stats, country, ASN, network. This distinguishes it from sibling tools like vt_domain, vt_url, and other IP tools.

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 does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or selection criteria. The requirement of a VT_API_KEY is mentioned but context for when to choose this over other IP tools is implied rather than explicit.

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

vt_subdomainsA

Enumerate subdomains for a domain via VirusTotal. Requires VT_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to enumerate subdomains for
limitNoMaximum subdomains to return (default: 40)

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only mentions the API key requirement, but lacks disclosure of rate limits, error handling, data freshness, or whether results are paginated.

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 succinct sentences with no wasted words; purpose and prerequisite are front-loaded.

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 simple tool with two parameters and no output schema, the description is nearly complete. It could mention the return format, but given low complexity, it 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 coverage is 100% and already describes both parameters including the default limit. The description adds no new parameter semantics beyond what the schema provides.

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 action (enumerate), resource (subdomains for a domain), and source (VirusTotal), distinguishing it from other domain-related tools like vt_domain and sibling subdomain tools.

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 mentions the required API key but does not provide guidance on when to prefer this over other subdomain enumeration tools (e.g., crtsh_search, st_subdomains) or any exclusions.

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

vt_urlA

Submit a URL to VirusTotal for scanning and get analysis results (malicious/suspicious/harmless). Requires VT_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to scan

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the key requirement and typical results, but lacks details on rate limits, queuing, idempotency, or error 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?

Single concise sentence with no extraneous information. Front-loaded with action and resource.

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 simple tool with one parameter and no output schema, the description covers the purpose, requirement, and result types. Could be slightly more detailed about the analysis output structure.

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 coverage is 100%, so baseline is 3. The description does not add extra meaning beyond 'URL to scan' beyond the schema's description.

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 action (submit for scanning) and the resource (URL to VirusTotal), and distinguishes from sibling tools like vt_domain and vt_ip by explicitly mentioning URL scanning.

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?

It provides clear context for when to use (for scanning URLs) but does not explicitly mention when not to use or compare to alternatives. The requirement of VT_API_KEY is stated.

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

wayback_snapshotsA

Get Wayback Machine snapshot history for a specific URL. Returns timestamps, status codes, and direct archive links. Shows first/last seen dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to get snapshot history for
limitNoMaximum snapshots to return (default: 100)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains output (timestamps, status codes, links) but omits behavioral details like rate limits, pagination, or error handling. Safe read operation is implied but not explicitly stated.

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 concise sentences without unnecessary words. Front-loaded with core purpose, then additional output details. Efficient and to the point.

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 simple tool (2 params, no output schema), description adequately covers inputs and outputs. Lacks differentiation from siblings but sufficient for basic use. Missing details like sort order or default behavior for missing URLs.

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 coverage is 100% so description adds no parameter details beyond what is already in the schema. Baseline 3 is appropriate as description does not compensate further.

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 verb 'Get' and resource 'Wayback Machine snapshot history' with the specific input (URL). Distinguishes from sibling tool 'wayback_urls' which likely retrieves archived URLs rather than snapshot history.

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?

Implies usage for retrieving snapshot history but provides no explicit guidance on when to use this tool vs alternatives like 'wayback_urls' or other history tools. No 'when not to use' or prerequisite context.

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

wayback_urlsA

Search Wayback Machine for archived URLs of a domain. Returns unique URLs with timestamps, status codes, and MIME types. Useful for finding old endpoints, hidden paths, and removed content.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to search archived URLs for
match_typeNoCDX match type (exact, prefix, host, domain)
filterNoCDX filter (e.g. 'statuscode:200', 'mimetype:text/html')
limitNoMaximum URLs to return (default: 1000)

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses that the tool returns unique URLs with metadata, but with no annotations, it omits details on side effects, rate limits, or authentication requirements. It does not contradict annotations as none exist.

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 compact with three sentences: purpose, return details, and use case. It is front-loaded and every sentence adds value, with no redundant words.

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

Completeness3/5

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

Given the lack of output schema and annotations, the description adequately explains the return data but does not elaborate on how parameters like 'match_type' work or provide examples. It is sufficient for basic use but could be more complete.

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 covers all 4 parameters with descriptions, so the baseline is 3. The description does not add additional meaning or examples for parameters like 'match_type' or 'filter', relying on schema descriptions.

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 it searches for archived URLs of a domain and returns unique URLs with timestamps, status codes, and MIME types. It distinguishes itself from the sibling tool 'wayback_snapshots' by focusing on URLs rather than full snapshots.

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 use case: 'useful for finding old endpoints, hidden paths, and removed content.' It does not explicitly mention when not to use or compare to alternatives, but the context is clear enough for the intended purpose.

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

whois_domainA

RDAP/WHOIS lookup for a domain. Returns registrar, registration/expiration dates, nameservers, and contact entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to look up

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description bears the full burden. It correctly indicates a read-only operation and lists the returned fields. It does not cover potential rate limits or data sources, but for a simple lookup tool, the transparency is adequate.

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?

One sentence of 18 words, front-loaded with action and resource, no redundancy. Every word adds value.

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 a single parameter and no output schema, the description provides sufficient context about purpose and returns. It is complete enough for an agent to understand the tool's functionality, though it could mention output format or edge cases.

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 covers the single parameter (domain) with a description 'Domain name to look up'. The tool description adds no additional parameter-specific details beyond listing return fields. With 100% schema coverage, the baseline is 3.

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 tool performs 'RDAP/WHOIS lookup for a domain' and lists the exact data returned (registrar, dates, nameservers, contact entities). This distinguishes it from sibling tools like whois_ip (for IPs) and dns_lookup (for DNS records).

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 implies the tool is used for domain WHOIS lookups, which is clear given the sibling context. However, it does not explicitly state when to use this vs. alternatives or mention any prerequisites or limitations.

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

whois_ipA

RDAP/WHOIS lookup for an IP address. Returns network name, CIDR range, country, and responsible entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIP address to look up

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates a read-only lookup operation and specifies return fields, but lacks details on rate limits, authorization requirements, or error handling.

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?

Description is concise with one sentence conveying the core purpose and return values. Could be slightly more structured but is not verbose.

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 is a simple lookup with no output schema, the description adequately covers the key return fields. Missing details on response format or error cases, but overall sufficient for its complexity.

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 single parameter 'ip' is described in the schema as 'IP address to look up', which is already clear. The description adds no additional meaning beyond the schema, and schema coverage is 100%, so 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?

Description clearly states it performs RDAP/WHOIS lookup for an IP address and lists the specific return fields (network name, CIDR range, country, responsible entities). This distinguishes it from sibling tools like whois_domain or bgp_ip.

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?

No explicit guidance on when to use this tool versus alternatives such as shodan_host or vt_ip. Usage context is implied by the tool name and description but not directly addressed.

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. Dates show when Glama detected each change.

  1. 37 tool updatesv0.2.0
    • First observedbgp_asn
    • First observedbgp_ip
    • First observedbgp_prefix
    • First observedcensys_certificates
    • First observedcensys_host_details
    • First observedcensys_hosts
    • First observedcrtsh_search
    • First observeddns_email_security
    • First observeddns_lookup
    • First observeddns_reverse
    • First observeddns_spf_chain
    • First observeddns_srv_discover
    • First observeddns_wildcard_check
    • First observedgeoip_batch
    • First observedgeoip_lookup
    • First observedhackertarget_aslookup
    • First observedhackertarget_hostsearch
    • First observedhackertarget_reverseip
    • First observedm365_tenant
    • First observedm365_userrealm
    • First observedosint_domain_recon
    • First observedosint_list_sources
    • First observedshodan_dns_resolve
    • First observedshodan_exploits
    • First observedshodan_host
    • First observedshodan_search
    • First observedst_dns_history
    • First observedst_subdomains
    • First observedst_whois
    • First observedvt_domain
    • First observedvt_ip
    • First observedvt_subdomains
    • First observedvt_url
    • First observedwayback_snapshots
    • First observedwayback_urls
    • First observedwhois_domain
    • First observedwhois_ip

TDQS

A3.6/5.0
Disambiguation4/5

Most tools are clearly distinct by source and operation. A few overlaps exist: multiple whois-like tools (whois_domain, whois_ip, st_whois) and DNS tools, but descriptions differentiate them well. No critical ambiguity.

Naming Consistency4/5

Predominantly source_verb pattern (e.g., bgp_asn, shodan_search). Some tools like geoip_lookup and hackertarget_* deviate but are consistent within their group. Minor inconsistencies reduce it from 5.

Tool Count3/5

37 tools is high for an MCP server. While the breadth of OSINT sources justifies many tools, it may overwhelm agents. Still well-scoped for its purpose, but borderline.

Completeness5/5

Covers a comprehensive set of OSINT domains: DNS, WHOIS, BGP, Shodan, Censys, VirusTotal, certificate transparency, email security, Microsoft 365, Wayback Machine. No obvious gaps for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A comprehensive reconnaissance toolset that provides AI agents with 37 tools across 12 data sources like Shodan and VirusTotal for automated intelligence gathering. It enables agents to perform domain reconnaissance, attack surface mapping, and cross-platform data correlation within a single conversational interface.
    37
    387
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to orchestrate OSINT reconnaissance pipelines, including subdomain takeover detection, URL harvesting, secret scanning, and JS analysis, by chaining 73 tools with smart target detection and deduplication.
    MIT

Latest Blog Posts

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/badchars/osint-mcp-server'

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