osint.foundation
foundation.osint/osintosint.foundationstreamable-httpv1.0.0Scanned
OSINT lookups: usernames, social profiles, phones, domains, IPs, crypto wallets and companies.
51 tools: 1 do something that can't be undone, 34 change things and 16 only read.
- Reads private data · 2
- Reads text others write · 50
- Can send data out · 5
- 3 findings
Anlyon alternative
35 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
51 tools
Can't be undone 1Claude Code: ask
http_screenshotCapture a screenshot of any web page (rendered away from the caller).Reads text others writeCan send data out1 finding
Why it is in this group
- The name "http_screenshot" says "screenshot": a word for reading.
- The description's first verb is "capture": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "http_screenshot" says "screenshot" and "http": it reads web pages, which anyone can write.
- untrusted-inputThe description's first sentence says "capture" and "web": it reads web pages, which anyone can write.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "http_screenshot" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "http_screenshot" says "screenshot": a word for reading.
Description, as the server wrote it Capture a screenshot of any web page (rendered away from the caller). Returns the image as a data URL. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Changes things 34Claude Code: ask
br_cepThe address a Brazilian postal code (CEP) belongs to: street, neighbourhood, city and state.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The address a Brazilian postal code (CEP) belongs to: street, neighbourhood, city and state. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
br_cnpjA Brazilian company's registry record: legal and trade names, status, opening date, activities, address, capital and partners.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it A Brazilian company's registry record: legal and trade names, status, opening date, activities, address, capital and partners. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
br_cpfChecks a Brazilian CPF's format and check digits and the region it was issued in.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Checks a Brazilian CPF's format and check digits and the region it was issued in. Validation only: no personal data. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
br_dddThe state, cities and time zone a Brazilian area code (DDD) covers.Reads text others write1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "br_ddd" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it The state, cities and time zone a Brazilian area code (DDD) covers. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
btc_addressBalance in BTC and USD, total received and sent, transaction counts, last activity and recent transactions for a Bitcoin address.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Balance in BTC and USD, total received and sent, transaction counts, last activity and recent transactions for a Bitcoin address. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
buy_creditsCredit packs with prices and a direct checkout link (crypto or card).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Credit packs with prices and a direct checkout link (crypto or card). Pass a pack id for just that pack. Free; works without a key too.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
cve_exploitFor a CVE id: its description, CVSS score and severity, CWE, whether it is in the known-exploited (CISA KEV) catalogue and used by ransomware, plus links to public proof-of-concept…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it For a CVE id: its description, CVSS score and severity, CWE, whether it is in the known-exploited (CISA KEV) catalogue and used by ransomware, plus links to public proof-of-concept and Metasploit repositories, the Nuclei detection template, and vendor advisories. References and metadata only; no exploit code is returned. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
discord_tagWhich Discord server(s) use a given server tag (the short tag members wear beside their name), from the directory of servers seen so far.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Which Discord server(s) use a given server tag (the short tag members wear beside their name), from the directory of servers seen so far. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
discord_usernameWhether a Discord username is registered (from Discord) and which accounts this platform has seen holding it.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether a Discord username is registered (from Discord) and which accounts this platform has seen holding it. A name can be taken with no known account; that is normal. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
domain_emailsEvery email address associated with a domain.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Every email address associated with a domain. Addresses only - nothing about the source is returned. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
domain_ipsEvery subdomain found for a domain (certificate logs, web crawls, archives, passive DNS) with the IPv4 addresses each resolves to - network owner, ASN, country - plus the domain's …Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "crawl": it reads web pages, which anyone can write.
Description, as the server wrote it Every subdomain found for a domain (certificate logs, web crawls, archives, passive DNS) with the IPv4 addresses each resolves to - network owner, ASN, country - plus the domain's NS, MX and TXT records. Pivot any IP into ip_lookup for open ports and CVEs. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
domain_urlsEvery URL captured on a domain in recent public web crawls - a passive way to enumerate a site's pages without touching the site.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "crawl": it reads web pages, which anyone can write.
Description, as the server wrote it Every URL captured on a domain in recent public web crawls - a passive way to enumerate a site's pages without touching the site. Returns the crawl id and the URLs with status, mime type and capture timestamp. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
domain_whoisWho owns a domain, from the registry and registrar records: owner name/organisation/email/country where not redacted, registrar, registration, expiry and change dates, status and n…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Who owns a domain, from the registry and registrar records: owner name/organisation/email/country where not redacted, registrar, registration, expiry and change dates, status and nameservers. Redacted placeholders are left out; `privacy` says the owner is hidden. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
eth_addressETH balance in ETH and USD, top token holdings, transaction counts, contract details, scam flags and recent transactions for an Ethereum address or ENS name.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it ETH balance in ETH and USD, top token holdings, transaction counts, contract details, scam flags and recent transactions for an Ethereum address or ENS name. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
facebook_profileThe public Facebook profile for a Page or person, by username, numeric ID or link: name, Facebook ID, Page ID, verified badge, category, exact follower/like counts, intro, and the …Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The public Facebook profile for a Page or person, by username, numeric ID or link: name, Facebook ID, Page ID, verified badge, category, exact follower/like counts, intro, and the public About section (website, contact info, and for people any basic info they made public). Only what Facebook shows logged-out visitors. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
github_userPublic GitHub profile intel: repositories, languages, organisations, public SSH/GPG keys, author emails from public commits, and activity by hour and weekday.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Public GitHub profile intel: repositories, languages, organisations, public SSH/GPG keys, author emails from public commits, and activity by hour and weekday. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
gravatar_emailThe public Gravatar profile an email's owner published: avatar, name, location, job title and verified linked accounts.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The public Gravatar profile an email's owner published: avatar, name, location, job title and verified linked accounts. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
image_metadataEverything a photo file says about itself, from a link to the image: GPS position, device make, model and serial numbers, capture and edit times, editing software, AI-generation tr…Reads text others writeCan send data out1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...software, AI-generation traces and C2PA credentials, plus every EXIF, XMP, IPTC and maker-n..."
Description, as the server wrote it Everything a photo file says about itself, from a link to the image: GPS position, device make, model and serial numbers, capture and edit times, editing software, AI-generation traces and C2PA credentials, plus every EXIF, XMP, IPTC and maker-note tag. Nothing is stored. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
instagram_profileThe public Instagram profile page for a username or profile link: full name, bio, profile picture, verified and private flags, exact follower and following counts, post count and t…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The public Instagram profile page for a username or profile link: full name, bio, profile picture, verified and private flags, exact follower and following counts, post count and the numeric user ID. Only what Instagram shows logged-out visitors. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
ip_geolocationCountry, region, city, coordinates and ASN for an IP address.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Country, region, city, coordinates and ASN for an IP address. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
ip_reputationRisk score and level for an IP address, with the reasons behind it: blocklist hits, Tor exit, VPN, datacenter/cloud/CDN, risky open ports and known vulnerabilities.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Risk score and level for an IP address, with the reasons behind it: blocklist hits, Tor exit, VPN, datacenter/cloud/CDN, risky open ports and known vulnerabilities. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
osint-domainRecords found for accounts under a domain (every address @domain), with the data seen for each.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Records found for accounts under a domain (every address @domain), with the data seen for each. Paid plans. Without an API key: $4.99 USDC per search via x402 (Base or Solana), charged only when it finds records.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
osint-emailRecords found for an email address: the sites and accounts it is tied to, with the data seen for each.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Records found for an email address: the sites and accounts it is tied to, with the data seen for each. Without an API key: $0.25 USDC per search via x402 (Base or Solana), charged only when it finds records.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
osint-originAccounts recorded on a website, by its domain: the logins seen there and the data for each.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Accounts recorded on a website, by its domain: the logins seen there and the data for each. Paid plans. Without an API key: $4.99 USDC per search via x402 (Base or Solana), charged only when it finds records.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
osint-phoneRecords found for a phone number: the sites and accounts it is tied to, with the data seen for each.Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Records found for a phone number: the sites and accounts it is tied to, with the data seen for each. Without an API key: $0.25 USDC per search via x402 (Base or Solana), charged only when it finds records.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
osint-usernameRecords found for a username: the sites and accounts it is tied to, with the data seen for each.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Records found for a username: the sites and accounts it is tied to, with the data seen for each. Without an API key: $0.25 USDC per search via x402 (Base or Solana), charged only when it finds records.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
snapchat_usernameCheck whether a Snapchat username exists and read its public profile, Bitmoji and Snapcode.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Check whether a Snapchat username exists and read its public profile, Bitmoji and Snapcode. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
sol_addressSOL balance in SOL and USD, account type, top SPL token holdings and recent transactions for a Solana address or .sol name.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it SOL balance in SOL and USD, account type, top SPL token holdings and recent transactions for a Solana address or .sol name. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
steam_profileAny Steam account with all its ID formats (SteamID64, STEAM_0, [U:1]) and the public profile: name, avatar, real name and country if public, member since, and ban flags.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Any Steam account with all its ID formats (SteamID64, STEAM_0, [U:1]) and the public profile: name, avatar, real name and country if public, member since, and ban flags. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
telegram_usernameWhether a Telegram @username exists and whether it is a user, bot, channel or group, with its public name, bio, photo, audience size and Telegram's scam/fake flags.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether a Telegram @username exists and whether it is a user, bot, channel or group, with its public name, bio, photo, audience size and Telegram's scam/fake flags. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
tron_addressTRX balance in TRX and USD, USDT/USDC holdings, creation and last-activity time, recent token transfers, and whether Tether has frozen the address.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it TRX balance in TRX and USD, USDT/USDC holdings, creation and last-activity time, recent token transfers, and whether Tether has frozen the address. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
username_scannerOne username checked across Substack, TikTok, Instagram, Snapchat, Telegram, GitHub, PayPal, Discord and Facebook at once: which platforms it exists on, each public profile (name, …Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One username checked across Substack, TikTok, Instagram, Snapchat, Telegram, GitHub, PayPal, Discord and Facebook at once: which platforms it exists on, each public profile (name, followers, verified, URL), and how many records mention it. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
vin_decodeWhat a Vehicle Identification Number says about a vehicle (make, model, year, body, engine, plant) plus the safety recalls for that make, model and year.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it What a Vehicle Identification Number says about a vehicle (make, model, year, body, engine, plant) plus the safety recalls for that make, model and year. No owner or registration data. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
whatsapp_businessWhether a phone number has a public WhatsApp Business profile, with its business name, photo and official-business badge.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether a phone number has a public WhatsApp Business profile, with its business name, photo and official-business badge. Personal accounts are never exposed. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Only reads 16Show 16 read-only tools
discord_lookupLook up a Discord invite code, or a numeric user, bot or server ID: server name, member counts, server tag, inviter, creation date and invite expiry.Reads text others writeNo findings
Why it is in this group
- The name "discord_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Look up a Discord invite code, or a numeric user, bot or server ID: server name, member counts, server tag, inviter, creation date and invite expiry. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
discord_server_searchFind public Discord servers by name: guild IDs, member counts, tags and invites.Reads text others writeNo findings
Why it is in this group
- The name "discord_server_search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Find public Discord servers by name: guild IDs, member counts, tags and invites. Each page is a separate lookup; request page 2+ only when hasMore is true. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
facebook_name_searchPeople with a given name from Facebook's public directory (about a dozen per name, people only): name, numeric profile ID, profile link and any public details.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "facebook_name_search" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "directory": it reads files.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it People with a given name from Facebook's public directory (about a dozen per name, people only): name, numeric profile ID, profile link and any public details. Pass an ID to facebook_profile for the full public profile. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
google_maps_searchPlaces on Google Maps tied to a person's or business's name or username, searched as typed and as a username and merged: name, address, phone, coordinates, Google place ID and Maps…Reads text others writeNo findings
Why it is in this group
- The name "google_maps_search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Places on Google Maps tied to a person's or business's name or username, searched as typed and as a username and merged: name, address, phone, coordinates, Google place ID and Maps link. Add " near <place>" to the query to pin a location. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
http_getFetch any URL through our proxy and return the status, response headers and body (text bodies up to 128 KB).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "http_get" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "http_get" says "get" and "http": it reads web pages, which anyone can write.
- untrusted-inputThe description's first sentence says "fetch" and "url": it reads web pages, which anyone can write.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it Fetch any URL through our proxy and return the status, response headers and body (text bodies up to 128 KB). The request leaves from the proxy network, not the caller. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
instagram_name_searchInstagram accounts for a name: checks the usernames people usually build from it (johnsmith, john.smith, j.smith, …) and returns those that exist, with display name, follower count…Reads text others writeNo findings
Why it is in this group
- The name "instagram_name_search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Instagram accounts for a name: checks the usernames people usually build from it (johnsmith, john.smith, j.smith, …) and returns those that exist, with display name, follower count and whether the display name matches. Instagram has no logged-out search, so accounts with unrelated usernames are not found. Pass a username to instagram_profile for the full profile. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
ip_lookupNetwork owner, range and country, plus open ports, detected software, hostnames and known CVEs from public internet-scan data.Reads text others writeNo findings
Why it is in this group
- The name "ip_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "internet": it reads web pages, which anyone can write.
Description, as the server wrote it Network owner, range and country, plus open ports, detected software, hostnames and known CVEs from public internet-scan data. Nothing is sent to the address. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
npi_lookupUS healthcare providers by NPI number or name: provider type, specialties, licences, practice addresses and phone numbers.Reads text others writeNo findings
Why it is in this group
- The name "npi_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it US healthcare providers by NPI number or name: provider type, specialties, licences, practice addresses and phone numbers. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
onion_grabFetch a .onion page over Tor and return its status, title, visible text and links (text only, no images).Reads text others writeCan send data outNo findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it Fetch a .onion page over Tor and return its status, title, visible text and links (text only, no images). Given a clearnet URL instead, returns every .onion address that page links to or mentions. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
paypal_usernameResolve a paypal.me handle to the public profile behind it: display name, first and last name, profile and cover photo.Reads text others writeNo findings
Why it is in this group
- The description's first verb is "resolve": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Resolve a paypal.me handle to the public profile behind it: display name, first and last name, profile and cover photo. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
phone_lookupValidate a phone number against its country's numbering plan: validity, number type, region, location and the carrier the range was allocated to (not a live network query).Reads text others writeNo findings
Why it is in this group
- The name "phone_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Validate a phone number against its country's numbering plan: validity, number type, region, location and the carrier the range was allocated to (not a live network query). Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
substack_lookupPublic Substack profile for a handle, profile link or name: bio, photo, follower and subscriber counts, the publications they run, and the ones they subscribe to (paid or free).Reads text others writeNo findings
Why it is in this group
- The name "substack_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Public Substack profile for a handle, profile link or name: bio, photo, follower and subscriber counts, the publications they run, and the ones they subscribe to (paid or free). Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
tiktok_usernameResolve a TikTok handle to its public profile: display name, bio, avatar, verification, follower, like and video counts, and the permanent user ID.Reads text others writeNo findings
Why it is in this group
- The description's first verb is "resolve": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Resolve a TikTok handle to its public profile: display name, bio, avatar, verification, follower, like and video counts, and the permanent user ID. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
uk_company_lookupA UK company from the Companies House register, by company number or name: status, type, incorporation date, registered office, SIC codes, previous names, accounts and confirmation…Reads text others writeNo findings
Why it is in this group
- The name "uk_company_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it A UK company from the Companies House register, by company number or name: status, type, incorporation date, registered office, SIC codes, previous names, accounts and confirmation-statement dates, officers (with month and year of birth, nationality and occupation), persons with significant control, charges and recent filings. A name returns the best match plus other matches. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
uk_officer_searchFind a person on the Companies House register by name: every matching director, secretary or LLP member record, with month and year of birth, appointment count and address, and the…Reads text others writeNo findings
Why it is in this group
- The name "uk_officer_search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Find a person on the Companies House register by name: every matching director, secretary or LLP member record, with month and year of birth, appointment count and address, and the full list of companies each of the first few is or was appointed to (role, dates, company status). An officer ID returns that record's appointments. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
us_company_lookupA US company that files with the SEC, by name, stock ticker or CIK: tickers, EIN, state of incorporation, industry, addresses, former names, headline annual financials, the people …Reads private dataReads text others writeNo findings
Why it is in this group
- The name "us_company_lookup" says "lookup": a word for reading.
What it can reach
- private-dataThe description's first sentence says "file": it reads files.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it A US company that files with the SEC, by name, stock ticker or CIK: tickers, EIN, state of incorporation, industry, addresses, former names, headline annual financials, the people named on its latest Form D private offering with the amount raised, and recent filings. A name returns the best match plus other matches. Without an API key: $0.05 USDC per successful call via x402 (Base or Solana).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
500 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 private-data tools breaks every one.
- Reads private data2
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write50
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out5
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__osint__facebook_name_search",
"mcp__osint__us_company_lookup"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Warnhttp_screenshot
The server marks "http_screenshot" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "http_screenshot" says "screenshot": a word for reading.
- Warnbr_ddd
The server marks "br_ddd" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Infoimage_metadata
The description mentions "credentials".
What this check looks forMatched text
description: "...software, AI-generation traces and C2PA credentials, plus every EXIF, XMP, IPTC and maker-n..."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http osint https://osint.foundation/api/mcp --header 'Authorization: <your-authorization>'claude mcp add --transport http osint https://osint.foundation/api/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__osint__tiktok_username",
"mcp__osint__google_maps_search",
"mcp__osint__facebook_name_search",
"mcp__osint__instagram_name_search",
"mcp__osint__paypal_username",
"mcp__osint__substack_lookup",
"mcp__osint__uk_company_lookup",
"mcp__osint__uk_officer_search",
"mcp__osint__us_company_lookup",
"mcp__osint__discord_lookup",
"mcp__osint__phone_lookup",
"mcp__osint__ip_lookup",
"mcp__osint__npi_lookup",
"mcp__osint__discord_server_search"
],
"ask": [
"mcp__osint__http_get",
"mcp__osint__onion_grab",
"mcp__osint__domain_urls",
"mcp__osint__cve_exploit",
"mcp__osint__domain_ips",
"mcp__osint__http_screenshot",
"mcp__osint__domain_emails",
"mcp__osint__domain_whois",
"mcp__osint__username_scanner",
"mcp__osint__facebook_profile",
"mcp__osint__instagram_profile",
"mcp__osint__snapchat_username",
"mcp__osint__telegram_username",
"mcp__osint__github_user",
"mcp__osint__discord_username",
"mcp__osint__discord_tag",
"mcp__osint__whatsapp_business",
"mcp__osint__gravatar_email",
"mcp__osint__image_metadata",
"mcp__osint__ip_geolocation",
"mcp__osint__ip_reputation",
"mcp__osint__btc_address",
"mcp__osint__eth_address",
"mcp__osint__sol_address",
"mcp__osint__tron_address",
"mcp__osint__steam_profile",
"mcp__osint__vin_decode",
"mcp__osint__br_cnpj",
"mcp__osint__br_cep",
"mcp__osint__br_cpf",
"mcp__osint__br_ddd",
"mcp__osint__buy_credits",
"mcp__osint__osint-email",
"mcp__osint__osint-username",
"mcp__osint__osint-phone",
"mcp__osint__osint-domain",
"mcp__osint__osint-origin"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as osint. Review it before you use it.
Capability tags behind 50 rules
- mcp__osint__tiktok_username untrusted-input
- mcp__osint__http_get untrusted-input, outbound
- mcp__osint__onion_grab untrusted-input, outbound
- mcp__osint__domain_urls untrusted-input
- mcp__osint__cve_exploit untrusted-input
- mcp__osint__domain_ips untrusted-input
- mcp__osint__http_screenshot untrusted-input, outbound
- mcp__osint__domain_emails untrusted-input
- mcp__osint__domain_whois untrusted-input
- mcp__osint__username_scanner untrusted-input
- mcp__osint__google_maps_search untrusted-input
- mcp__osint__facebook_profile untrusted-input
- mcp__osint__facebook_name_search private-data, untrusted-input
- mcp__osint__instagram_name_search untrusted-input
- mcp__osint__instagram_profile untrusted-input
- mcp__osint__snapchat_username untrusted-input
- mcp__osint__telegram_username untrusted-input
- mcp__osint__github_user untrusted-input
- mcp__osint__paypal_username untrusted-input
- mcp__osint__substack_lookup untrusted-input
- mcp__osint__uk_company_lookup untrusted-input
- mcp__osint__uk_officer_search untrusted-input
- mcp__osint__us_company_lookup private-data, untrusted-input
- mcp__osint__discord_lookup untrusted-input
- mcp__osint__discord_username untrusted-input
- mcp__osint__discord_tag untrusted-input
- mcp__osint__phone_lookup untrusted-input
- mcp__osint__whatsapp_business untrusted-input
- mcp__osint__gravatar_email untrusted-input
- mcp__osint__image_metadata untrusted-input, outbound
- mcp__osint__ip_lookup untrusted-input
- mcp__osint__ip_geolocation untrusted-input
- mcp__osint__ip_reputation untrusted-input
- mcp__osint__btc_address untrusted-input
- mcp__osint__eth_address untrusted-input
- mcp__osint__sol_address untrusted-input
- mcp__osint__tron_address untrusted-input
- mcp__osint__steam_profile untrusted-input
- mcp__osint__npi_lookup untrusted-input
- mcp__osint__vin_decode untrusted-input
- mcp__osint__br_cnpj untrusted-input
- mcp__osint__br_cep untrusted-input
- mcp__osint__br_cpf untrusted-input
- mcp__osint__br_ddd untrusted-input
- mcp__osint__discord_server_search untrusted-input
- mcp__osint__osint-email untrusted-input
- mcp__osint__osint-username untrusted-input
- mcp__osint__osint-phone untrusted-input, outbound
- mcp__osint__osint-domain untrusted-input
- mcp__osint__osint-origin untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/foundation.osint/osint/verify?hash=a700e2585447f40a1174042cfd42b51440c7c384285156cd95cadc24e41c6d42" | jq -e '.changed == false'Pinned hash a700e2585447, from Oct 25, 2026, 23:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/foundation.osint/osint/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/foundation.osint/osint)Source: MCP Registry. Synced Oct 25, 2026, 23:17 UTC.