osint-mcp-server
Provides tools for domain reputation analysis and threat intelligence, allowing AI agents to query VirusTotal for malicious activity detections, URL safety checks, and historical infrastructure records.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@osint-mcp-serverPerform a full OSINT recon on example.com and identify its attack surface."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 contextsosint-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-server21 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 installEnvironment 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_IDAll 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.tsAdd 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 |
| Resolve A, AAAA, MX, TXT, NS, SOA, CNAME, SRV records |
| Reverse DNS (PTR) lookup for an IP address |
| SPF + DMARC + DKIM analysis with risk scoring and recommendations |
| Recursive SPF include chain resolution with service detection |
| SRV + CNAME service discovery (Autodiscover, LDAP, SIP, Kerberos, etc.) |
| Wildcard DNS detection via random subdomain probe |
Tool | Description |
| RDAP domain lookup — registrar, dates, nameservers, contacts |
| RDAP IP lookup — network name, CIDR, country, entities |
Tool | Description |
| Search CT logs via crt.sh — subdomain discovery + certificate details |
Tool | Description |
| IP details: open ports, services, banners, vulnerabilities, OS, ASN |
| Search Shodan query language (e.g. |
| Bulk hostname-to-IP resolution via Shodan |
| Search public exploit database (PoC, Metasploit modules) |
Tool | Description |
| Domain reputation, detection stats, categories, DNS records |
| IP reputation, detection stats, ASN, network |
| Subdomain enumeration via VirusTotal |
| URL scan + malware/phishing analysis |
Tool | Description |
| Subdomain enumeration (returns FQDNs) |
| Historical DNS records with first/last seen dates |
| Enhanced WHOIS with registrant/admin/technical contacts |
Tool | Description |
| Host search — IPs, services, ports, location, ASN |
| Single host full details with all services |
| Certificate search by domain, fingerprint, issuer |
Tool | Description |
| IP geolocation: country, city, ISP, ASN, proxy/hosting/VPN detection |
| Batch IP geolocation (up to 100 IPs at once) |
Tool | Description |
| ASN details + all announced IPv4/IPv6 prefixes |
| IP prefix/ASN routing lookup with RIR allocation |
| Prefix details + announcing ASNs |
Tool | Description |
| Archived URL discovery — find old endpoints, hidden paths, removed content |
| Snapshot history with timestamps and direct archive links |
Tool | Description |
| Host/subdomain discovery with resolved IPs |
| Reverse IP lookup — find all domains on an IP |
| ASN information lookup |
Tool | Description |
| Discover M365 tenant ID, region, and OpenID configuration |
| Detect auth type (Managed/Federated), federation brand, auth endpoints |
Tool | Description |
| List all OSINT sources, API key status, and tool counts |
| 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 |
None | None | A, AAAA, MX, TXT, NS, SOA, CNAME, SRV, PTR records | |
None | 1 req/s | Domain & IP WHOIS data (registrar, dates, contacts, CIDR) | |
None | 0.5 req/s | Certificate Transparency logs, subdomain discovery | |
None | 45 req/min | IP geolocation, ISP, ASN, proxy/VPN/hosting detection | |
None | 0.5 req/s | ASN details, announced prefixes, IP routing info | |
None | 2 req/s | Host search, reverse IP, ASN lookup (50/day free) | |
None | 1 req/s | Archived URLs, snapshot history, historical content | |
None | None | Tenant discovery, federation detection, auth type | |
| 1 req/s | Internet-wide port/service/banner scanning | |
| 4 req/min | Domain/IP/URL reputation, malware detection | |
| 1 req/s | DNS history, subdomain enumeration, enhanced WHOIS | |
| 1 req/s | Host search, certificate transparency, service discovery |
Design decisions:
12 providers, 1 server — Every OSINT source is an independent module. The agent picks which tools to use based on the query.
21 free tools — DNS, WHOIS, crt.sh, BGP, GeoIP, Wayback, HackerTarget, and M365 work without any API keys. Premium sources are additive.
Parallel queries —
osint_domain_reconcalls 8 sources viaPromise.allSettled. If one source times out, the rest still return data.Per-provider rate limiters — Each data source has its own
RateLimiterinstance calibrated to that API's limits. No shared bottleneck.TTL caching — crt.sh (15min), BGP (30min), Shodan (5min), VirusTotal (10min) results are cached to avoid redundant API calls during multi-tool workflows.
Graceful degradation — Missing API keys don't crash the server. Tools return descriptive error messages: "Set SHODAN_API_KEY to enable Shodan tools."
SPF chain analysis — Recursive include resolution with loop detection, service identification (Google Workspace, Microsoft 365, SendGrid, etc.), and RFC 7208 lookup limit checking.
2 dependencies —
@modelcontextprotocol/sdkandzod. All HTTP via nativefetch. All DNS vianode: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 |
Browser-based security testing | 39 tools, Firefox, injection testing | |
Cloud security (AWS/Azure/GCP) | 38 tools, 60+ checks | |
GitHub security posture | 39 tools, 45 checks | |
Vulnerability intelligence | 23 tools, 5 sources | |
osint-mcp-server | OSINT & reconnaissance | 37 tools, 12 sources |
Available Tools
37 toolsbgp_asnA
Look up ASN details and announced IPv4/IPv6 prefixes via BGPView. Returns ASN name, description, contacts, and all announced prefixes.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | Autonomous System Number (e.g. 13335) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to look up |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prefix | Yes | IP prefix (e.g. '1.1.1.0') | |
| cidr | Yes | CIDR mask (e.g. 24) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Certificate search query (e.g. 'parsed.names: example.com') | |
| per_page | No | Results per page (max 100, default: 25) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to look up |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Censys search query | |
| per_page | No | Results per page (max 100, default: 25) |
TDQS
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.
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.
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.
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.
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.
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.
crtsh_searchA
Search Certificate Transparency logs via crt.sh. Returns unique subdomains and certificate details (issuer, validity, SANs).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to search CT logs for | |
| exclude_expired | No | Exclude expired certificates (default: false) |
TDQS
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 content but does not mention rate limits, pagination, authentication, or other behavioral aspects. Basic behavioral coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and source. Every sentence adds value. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple two-parameter tool and no output schema, the description adequately covers purpose and return details. Lacks mention of potential large result sets or pagination, but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the schema already documents them. The description does not add additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Certificate Transparency logs via crt.sh and returns unique subdomains and certificate details. This distinguishes it from sibling tools like censys_certificates (different source) and vt_subdomains (different focus).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting subdomains and certificate details from CT logs, but provides no explicit guidance on when to use this tool versus alternative sibling tools like st_subdomains or vt_subdomains.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to analyze | |
| dkim_selectors | No | Custom DKIM selectors to check (default: common selectors) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to query | |
| type | Yes | DNS record type |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address for reverse lookup |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to trace SPF chain for | |
| max_depth | No | Maximum recursion depth (default: 10) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to probe |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check for wildcard DNS |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes | IP addresses to geolocate (max 100) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to geolocate |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | IP address or ASN to look up |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to search hosts for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address for reverse lookup |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check for M365 tenant |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check user realm for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to perform recon on |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hostnames | Yes | Hostnames to resolve |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Exploit search query (e.g. 'apache 2.4' or CVE ID) | |
| type | No | Filter by exploit type (e.g. 'exploit', 'metasploit') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to look up |
TDQS
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.
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.
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.
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.
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.
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.
shodan_searchA
Search Shodan for hosts matching a query (e.g. 'apache port:443 country:US'). Requires SHODAN_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Shodan search query | |
| page | No | Results page number (default: 1) | |
| facets | No | Facets to include (e.g. 'country,org') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the authentication requirement (SHODAN_API_KEY) but does not explicitly state that the operation is read-only, mention rate limits, or describe error conditions. While safe for a search tool, more behavioral context would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences that cover purpose, example, and prerequisite. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema or annotations, the description provides the essential elements: purpose, example, and auth requirement. However, it lacks information about pagination (page parameter behavior), response format, or potential errors, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are described in the input schema (100% coverage). The description adds value by providing a query example that illustrates the syntax, which is useful for agents. However, it does not add meaning to the 'page' or 'facets' parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search Shodan for hosts'), the resource ('hosts'), and provides a concrete query example. This distinguishes it from sibling tools like shodan_host (which likely retrieves details for a single host) and shodan_exploits (searching exploits).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires SHODAN_API_KEY') but does not specify when to use this tool over its siblings (e.g., shodan_host, shodan_dns_resolve). The example implies general host searching, but explicit context for when to choose this vs alternatives is missing.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to get DNS history for | |
| type | Yes | DNS record type |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to enumerate subdomains for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to look up |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to analyze |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to analyze |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to enumerate subdomains for | |
| limit | No | Maximum subdomains to return (default: 40) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to scan |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to get snapshot history for | |
| limit | No | Maximum snapshots to return (default: 100) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to search archived URLs for | |
| match_type | No | CDX match type (exact, prefix, host, domain) | |
| filter | No | CDX filter (e.g. 'statuscode:200', 'mimetype:text/html') | |
| limit | No | Maximum URLs to return (default: 1000) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to look up |
TDQS
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.
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.
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.
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.
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.
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.
37 tool updates
v0.2.0- First observed
bgp_asn - First observed
bgp_ip - First observed
bgp_prefix - First observed
censys_certificates - First observed
censys_host_details - First observed
censys_hosts - First observed
crtsh_search - First observed
dns_email_security - First observed
dns_lookup - First observed
dns_reverse - First observed
dns_spf_chain - First observed
dns_srv_discover - First observed
dns_wildcard_check - First observed
geoip_batch - First observed
geoip_lookup - First observed
hackertarget_aslookup - First observed
hackertarget_hostsearch - First observed
hackertarget_reverseip - First observed
m365_tenant - First observed
m365_userrealm - First observed
osint_domain_recon - First observed
osint_list_sources - First observed
shodan_dns_resolve - First observed
shodan_exploits - First observed
shodan_host - First observed
shodan_search - First observed
st_dns_history - First observed
st_subdomains - First observed
st_whois - First observed
vt_domain - First observed
vt_ip - First observed
vt_subdomains - First observed
vt_url - First observed
wayback_snapshots - First observed
wayback_urls - First observed
whois_domain - First observed
whois_ip
TDQS
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.
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.
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.
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
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
Hyperion — MCP tool marketplace for AI agents: web, OSINT, security, research via one key.
54 AI agent tools: OSINT, intel feeds, DeFi, crypto, weather, DNS, proxies. x402 micropayments.
Direct access to 40+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
- GoroOAuthai.usegoro
62 real-world tools for agents: search, scraping, social, enrichment, image, video, voice.
Related MCP Servers
- AlicenseAqualityCmaintenanceA 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.373872MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseNot gradedqualityBmaintenanceProvides 26 free OSINT tools as MCP tools for AI agents, enabling automated OSINT investigations directly from conversations.MIT
- AlicenseAqualityAmaintenanceEnables AI-driven open-source intelligence investigations by exposing 30 tools for scanning emails, usernames, domains, IPs, and more, with real subprocess execution.319MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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