Skip to main content
Glama
kush-coder

io.github.OpenOSINT/openosint

by kush-coder

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITHUB_TOKENNoOptional GitHub token; raises the GitHub REST API rate limit from 60 to 5000 requests per hour for search_github.
HIBP_API_KEYNoHaveIBeenPwned v3 API key; required for the search_breach tool to run.
IPINFO_TOKENNoOptional ipinfo.io token; raises rate limits for search_ip.
CENSYS_API_IDNoCensys API ID; required together with CENSYS_SECRET for the search_censys tool to run.
CENSYS_SECRETNoCensys API secret; required together with CENSYS_API_ID for the search_censys tool to run.
SHODAN_API_KEYNoShodan API key; required for the search_shodan tool to run. The MCP server starts without it.
ABUSEIPDB_API_KEYNoAbuseIPDB v2 API key; required for the search_abuseipdb tool to run.
BRIGHTDATA_API_KEYNoBright Data API key; required for search_dorks_live, scrape_url and search_footprint.
OPENOSINT_ENV_FILENoAbsolute path to a .env file to load, used because MCP hosts launch the server with a working directory unrelated to your project.
VIRUSTOTAL_API_KEYNoVirusTotal API v3 key; required for the search_virustotal tool to run.
IP2LOCATION_API_KEYNoIP2Location.io API key; required for the search_ip2location tool to run.
BRIGHTDATA_SERP_ZONENoBright Data SERP zone name (e.g. serp_api1); required for search_dorks_live and search_footprint.
OPENOSINT_ALLOW_ACTIVENoSet to 1 to enable active tools (noisy or target-touching tools), equivalent to passing --allow-active to openosint-mcp. Off by default, so only passive tools are listed to the MCP client.
BRIGHTDATA_UNLOCKER_ZONENoBright Data Web Unlocker zone name (e.g. web_unlocker1); required for scrape_url.
OPENOSINT_MAX_TOOL_CALLSNoMaximum number of tool calls per user request in agentic tool chains (default 15).
OPENOSINT_MAX_TOOL_CALLS_MULTINoMaximum number of tool calls shared across all targets for investigate_multi (default 30).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_breachA

Check if an email appears in data breaches via HaveIBeenPwned. Uses HIBP_API_KEY env var. [passive] One request to haveibeenpwned.com.

search_whoisA

Retrieve WHOIS registration data for a domain. [passive] Queries the registry/registrar WHOIS server, not the target.

search_ipB

Retrieve geolocation and ASN data for an IP address via ipinfo.io. [passive] One request to ipinfo.io.

generate_dorksA

Generate targeted Google dork URLs for any target (name, email, username, domain). [passive] Builds Google search URLs locally; sends nothing.

search_pasteB

Search Pastebin dumps for an email or username via psbdmp.ws. [passive] One request to psbdmp.ws.

search_shodanA

Query Shodan for host intelligence or banner search. IP address → host lookup (open ports, org, CVEs). Any other string → keyword/service search. Uses SHODAN_API_KEY env var. [passive] Shodan API; reads Shodan's existing index, requests no new scan.

search_virustotalA

Check IP, domain, URL, or file hash against VirusTotal's 70+ antivirus engines and threat intelligence. Auto-detects input type. Uses VIRUSTOTAL_API_KEY env var. [passive] IP, domain and hash lookups read VirusTotal's existing data. URL submission is a separate active mode, off by default: it makes VirusTotal fetch the URL and makes it visible to the VirusTotal community.

search_censysA

Search Censys for internet-facing infrastructure data. IP address → open ports, services, ASN, country. Domain → certificate history, SANs, issuer, first/last seen. Uses CENSYS_API_ID and CENSYS_SECRET env vars. [passive] Censys API; returns data Censys already holds.

search_ip2locationB

Enhanced IP intelligence using IP2Location Security Plan. Returns geolocation, ISP, ASN, and detects VPN, proxy, Tor exit nodes, and datacenter hosting. Sponsored integration. Uses IP2LOCATION_API_KEY env var. [passive] One request to api.ip2location.io.

search_abuseipdbA

Check an IP address against the AbuseIPDB v2 API for abuse reputation. Returns abuse confidence score (0–100%), total reports, country, ISP, domain, and last reported timestamp. Shows a warning when score exceeds 50%. Uses ABUSEIPDB_API_KEY env var. [passive] One request to api.abuseipdb.com.

search_githubA

Search GitHub for a username, email, or keyword. For exact username matches: returns full profile, recent repos, and emails discovered from commit history. For other queries: top 5 matching accounts. Optional GITHUB_TOKEN env var raises rate limit from 60 to 5000 req/h. [passive] A few requests to api.github.com.

search_rdapA

Structured domain registration lookup via RDAP (the machine-readable successor to WHOIS): registrar, registration and expiry dates, name servers and status codes. Registrant contact details are redacted by policy. No API key required. [passive] Queries IANA and the registry's RDAP server, not the target.

search_dnsA

Comprehensive DNS record enumeration (A, AAAA, MX, NS, TXT, CNAME, SOA). Highlights email security misconfigurations: missing SPF, weak SPF policy, missing or unenforced DMARC, and absent DKIM across common selectors. No external API or credentials required. [passive; DKIM selector probes (enumeration) run only with active tools enabled.] Record lookups go through your DNS resolver; the target's nameservers see the resolver, not you.

search_gdelt_geoA

Search recent, geolocated worldwide news from GDELT's 15-minute article feed (headlines/URLs matched against the query). No API key required. Returns a text summary plus a GeoJSON FeatureCollection, and says how far back it covers (the first call may cover only the last 15 minutes while older articles load). Optionally scope to a bounding box; query "*" lists everything inside it. [passive] Downloads GDELT's public news feed and filters it locally; your search term never leaves your machine.

search_dorks_liveA

Execute Google dork queries for a target via the Bright Data SERP API, returning live structured results (title, URL, snippet). Runs up to 5 dorks by default — each is a billable API call. Uses BRIGHTDATA_API_KEY and BRIGHTDATA_SERP_ZONE env vars. [passive] Google results via Bright Data; the target is sent to those two services.

search_footprintA

Collect a target's public search-engine footprint via the Bright Data SERP API. Detects entity type (email, username, domain, phone, or full name) and runs entity-type-aware Google queries, returning structured results and Entity Correlation Graph nodes/edges for discovered domains and profiles. Uses BRIGHTDATA_API_KEY and BRIGHTDATA_SERP_ZONE env vars. [passive] Up to 3 Google queries via Bright Data; the target is sent to those two services.

graph_exportA

Export the additive FollowTheMoney entity graph (openosint.graph) as newline-delimited JSON, one FtM entity per line (.ftm-compatible). Optionally exclude whole datasets, e.g. exclude_datasets=['openosint:hibp'] to omit every breach-derived fact. Requires the 'graph' extra: pip install 'openosint[graph]'. [passive] Reads the local graph database only.

graph_neighborsA

Traverse the FollowTheMoney entity graph from one entity id out to a given depth, returning entities, edges, and per-edge provenance (collection method, confidence, run id). Set cross_layer=true to also surface bridge links into the raw infra correlation graph (IPs, domains, hashes). Requires the 'graph' extra: pip install 'openosint[graph]'. [passive] Reads the local graph database only.

graph_review_candidatesA

Human review queue for suggested same_as entity matches produced by graph-dedup cross-referencing. action='list' shows pending candidates (score, identifying properties, human-readable match explanation), filterable by schema/score range/dataset. action='decide' records a human verdict on one pair: decision='accept' merges it (judgement='positive'), decision='reject' permanently excludes it from future suggestions (judgement='negative'). Nothing in this project ever auto-merges — only this action can write judgement='positive'. [passive] Reads the local graph database only.

investigate_multiA

Investigate multiple targets in parallel using the full OSINT tool chain. Each target gets its own report file. A summary report is also generated. Maximum 10 targets. Uses ANTHROPIC_API_KEY env var. [inherits] Runs one agent per target under a shared tool-call cap; passive unless active is enabled.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 20 tools

Disambiguation3/5

Several tools overlap in purpose: search_whois and search_rdap both return domain registration data, search_ip and search_ip2location both provide IP geolocation/ASN (the latter adding VPN/proxy detection), and generate_dorks vs search_dorks_live vs search_footprint all revolve around dork/search-engine queries. The detailed descriptions do help distinguish them (passive vs billable live SERP, entity-aware vs raw dorks), but an agent still faces real choices like 'which IP tool' or 'which registration lookup'. The graph_* tools and investigate_multi are cleanly separate.

Naming Consistency4/5

Names are uniformly snake_case and mostly follow a search_<source> pattern (search_shodan, search_virustotal, search_censys) with a parallel graph_<action> family (graph_export, graph_neighbors, graph_review_candidates). Minor deviations exist: generate_dorks breaks the search_ prefix for a similar-purpose tool, and investigate_multi uses a different verb form, but overall the conventions are predictable.

Tool Count4/5

At 20 tools this is on the heavy side, but each tool maps to a distinct external data source or graph operation, so the surface is mostly earned. The count is inflated slightly by near-duplicate integrations (ipinfo vs ip2location, whois vs rdap) that could be consolidated.

Completeness4/5

Coverage across IP reputation, breach, paste, WHOIS/RDAP, DNS, certificates, shodan/censys, GitHub, news geolocation, SERP footprint, plus a full graph export/traverse/human-review lifecycle and multi-target orchestration is broad and coherent. Gaps are minor: no dedicated social-media or phone-specific lookup tool (footprint only partially covers these), and no graph mutation/cleanup or report-export beyond NDJSON.

Maintenance

ActivityMaintained
ResponsivenessNo issues