
OpenOSINT MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude and other assistants run OSINT checks on domains, IPs, emails and usernames using public data sources.
OpenOSINT gives your assistant 20 investigation tools that look up domains, IP addresses, emails, usernames and files across public sources such as WHOIS, DNS, Shodan, VirusTotal and HaveIBeenPwned. It runs on your computer. By default it only offers passive tools, and noisier ones that touch the target are off until you opt in. Some tools need your own API keys, and what you search for is visible to those services.
Good for
- Security researchers checking domains, IPs and exposure
- Analysts building a picture of a target from public records
- Incident responders checking reputation of IPs, hashes and URLs
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install OpenOSINT MCP
Claude Code
- 1
Copy this prompt.
Add the OpenOSINT MCP server to Claude Code. Run this command: claude mcp add openosint -- uvx --from openosint openosint-mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv, Python 3.10+.
Read-only mode: There is no read-only mode. The default passive mode hides tools that touch the target, but the multi-target tool still writes reports.
The server command is openosint-mcp, so use uvx --from openosint openosint-mcp; plain uvx openosint starts the command-line tool instead. Add API keys in an env block. Desktop apps often cannot find uvx; if it fails to start, put the full path from which uvx in the command. To show the noisy, target-touching tools, add --allow-active after openosint-mcp.
From the project README. Source.
Tools
Looks up who registered a domain
Retrieves WHOIS registration data for a domain from its registry.
Try: “Who registered example.com?”
Network ·
search_whoisLooks up domain registration in the modern RDAP format
Returns registrar, registration and expiry dates, name servers and status. Registrant contact details are redacted by policy, and no key is needed.
Try: “When does example.com expire?”
Network ·
search_rdapLists a domain's DNS records and email security gaps
Reads A, AAAA, MX, NS, TXT, CNAME and SOA records and points out missing or weak SPF, DMARC and DKIM settings. Lookups go through your DNS resolver.
Try: “Check the email security setup for example.com.”
Network ·
search_dnsShows where an IP address is and who runs it
Returns geolocation and network owner details for an IP address using ipinfo.io.
Try: “Where is 8.8.8.8 located?”
Network ·
search_ipGives enhanced IP intelligence
Returns location and network details, and VPN, proxy, Tor or data center flags on the provider's security plan.
Try: “Is 203.0.113.5 a VPN or proxy address?”
Network ·
search_ip2locationChecks an IP address's abuse reputation
Returns a 0 to 100 abuse score, report counts, country and provider, and warns above 50. Needs an AbuseIPDB key.
Try: “Has 203.0.113.5 been reported for abuse?”
Network ·
search_abuseipdbLooks up open ports and known flaws for an IP or keyword
For an IP address, returns open ports, owner and known CVEs from Shodan's existing index. For other text, runs a banner search. Needs a Shodan key.
Try: “What ports does Shodan show open on 203.0.113.5?”
Network ·
search_shodanLooks up internet-facing hosts and certificates
For an IP address returns open ports, services and country. For a domain returns certificate history. Needs Censys credentials.
Try: “Show certificate history for example.com.”
Network ·
search_censysChecks an IP, domain, URL or file hash against 70+ scanners
Auto-detects the input type and returns VirusTotal's verdicts. Reads existing data; submitting a URL for scanning is a separate opt-in mode. Needs a VirusTotal key.
Try: “Is this file hash flagged as malware?”
Network ·
search_virustotalChecks whether an email appears in known data breaches
Looks the address up on HaveIBeenPwned. Needs a HaveIBeenPwned key.
Try: “Has jane@example.com appeared in a breach?”
Network ·
search_breachLooks for an email or username in Pastebin dumps
Searches paste dumps through psbdmp.ws for mentions of the email or username.
Try: “Does this email show up in any paste dumps?”
Network ·
search_pasteLooks up a GitHub user, email or keyword
For an exact username returns the profile, recent repos and emails found in commit history. Otherwise returns the top 5 matching accounts.
Try: “Find the GitHub profile for username octocat.”
Network ·
search_githubBuilds Google search links for a target
Creates 12 ready-made Google search queries for a name, email, username or domain. It makes no network calls.
Try: “Make search links for the username jdoe.”
Read ·
generate_dorksRuns Google searches for a target through Bright Data
Runs up to 5 search queries by default and returns titles, links and snippets. Each query is a billable Bright Data call and needs its key.
Try: “Run live searches for jdoe@example.com.”
Network ·
search_dorks_liveCollects a target's public search footprint
Detects whether the target is an email, username, domain, phone or name and gathers results through Bright Data, with a graph of how entities relate.
Try: “What does the public web say about jdoe?”
Network ·
search_footprintFinds recent world news placed on a map
Downloads the public GDELT news feed and filters it on your machine, returning headline, link and place as GeoJSON.
Try: “Recent news mentioning Kyiv, on a map.”
Network ·
search_gdelt_geoShows entities linked to one entity in the local graph
Reads the local entity graph and returns the entities connected to the one you name.
Try: “What is linked to example.com in the graph?”
Files ·
graph_neighborsLists possible duplicate entities for review
Reads the local graph and lists candidate same-entity matches awaiting a human decision.
Try: “Which graph entities might be duplicates?”
Files ·
graph_review_candidatesExports the local graph as FollowTheMoney data
Reads the local graph database and exports it in .ftm format. Needs the optional graph extra.
Try: “Export the graph as FollowTheMoney.”
Files ·
graph_exportInvestigates up to 10 targets in parallel and saves reports
Runs the AI agent on each target with its own report file and a summary report. Uses an Anthropic key, and calls are capped per request.
Try: “Investigate these 5 domains and save reports.”
Write ·
investigate_multi
Read from the source code
Permissions
medium risk · 5 things to watch · 3 advisories
Medium risk
The assistant sends the names, emails and IPs you investigate to many outside services. Stay in passive mode and only investigate targets you are authorized to look at.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
Targets you name go to many third-party services
Passive does not mean private. Shodan, HaveIBeenPwned, VirusTotal, Bright Data and others see what you search, and usually your key or IP. Only investigate targets you are allowed to. github.com
One tool saves report files on disk
The multi-target investigation writes a report per target plus a summary. Treat those files as sensitive. github.com
Noisy and target-touching tools are off by default
Account enumeration, subdomain scans, phone lookups and the page fetcher are not offered unless you add the allow-active option. Turning it on makes requests the target can see. github.com
Some tools bill your accounts
Live search runs up to 5 billable Bright Data calls per use, and several tools use your own API keys and quotas. github.com
For authorized security research
The project states it is for authorized use and puts legal responsibility on you. Follow local law and the terms of each data source. github.com
Security advisories
3 known advisories, 1 with no fixed version yet.
- SSRF and Credential Theft in /api/chat — User-Controlled openai_base_url Allows Server-Side Request Forgery and Leak of OPENAI_API_KEYcritical · GHSA-q6cw-g86h-m2cq
- Unauthenticated setup endpoint lets network attackers hijack OpenOSINT AI backend trafficcritical · Fixed in 2.23.1 · GHSA-cqr4-hcfp-m6m4
- Cross-site request forgery and DNS rebinding in the local web UIhigh · Fixed in 2.29.1 · GHSA-2wrv-jxxj-r2xc
Technical details
| Turning on read-only | No read-only switch. Passive mode is the default and hides tools that touch targets; one tool writes report files. |
|---|---|
| Talks to | Each data source you query (WHOIS, ipinfo.io, Shodan, VirusTotal, HaveIBeenPwned, Censys, AbuseIPDB, GitHub, Bright Data and others). Anthropic, only for multi-target investigation |
| Sign-in and keys | No account. Optional API keys per source go in the client config env block. |
Questions
Is OpenOSINT official?
No. It is a community project by the OpenOSINT authors, not made by Shodan, VirusTotal or any other source it queries.
Do I need API keys?
Not to start. Keyless tools such as WHOIS, RDAP, DNS and the news map work without any. Shodan (SHODAN_API_KEY), HaveIBeenPwned (HIBP_API_KEY), VirusTotal (VIRUSTOTAL_API_KEY), Censys (CENSYS_API_ID and CENSYS_SECRET), AbuseIPDB (ABUSEIPDB_API_KEY) and the Bright Data tools (BRIGHTDATA_API_KEY plus a zone name) need their own keys.
What is passive mode?
It is the default. The server offers only tools that query third-party data or compute locally, and hides tools that touch the target's own servers. 20 tools are listed by default and 25 with the allow-active option.
How do I turn on the active tools?
Add the allow-active option or set OPENOSINT_ALLOW_ACTIVE=1 in the client config. Read the README's noise table first, because those tools can alert the target.
Does it store anything on my computer?
The multi-target tool saves report files. The graph tools read a local graph database.
Is it legal to use?
The project says it is for authorized security research and that you are responsible for complying with the law. Check the rules for each source and your jurisdiction.
Why does it fail to start in Claude Desktop?
Desktop apps often cannot find uvx. The README says to put the full path from which uvx in the command.
How do I add it to Claude Code?
Use the Claude Code tab in the install box above.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
openosint- Registry
- PyPI
- Transport
- stdio
- Auth
- None
- Version
- 2.36.1
- License
- MIT
- Last commit
- Oct 30, 2026
- Open issues
- 15
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 1Hide
- github.com · github.com