find_privacy_url
Locate the privacy-policy URL for a given website domain.
Read utilities
Returns data. Calling it changes nothing, so it is safe in an unattended loop.
What it does
Locate the privacy-policy URL for a given website domain.
Uses a waterfall strategy for maximum reliability:
1. robots.txt → extract Sitemap directives
2. sitemap.xml → search for privacy-related URLs in <loc> entries
3. Page scrape → footer / page body links (most reliable fallback)
USE FOR:
- Find a company's privacy policy URL before creating Lead Gen offers
- Auto-populate privacyUrl field in create_update_offer
- Verify privacy URL exists for GDPR/CCPA compliance checks
- Look up privacy page for any domain
WHEN TO USE:
- User asks "find the privacy URL for example.com"
- User wants to create an offer but doesn't know the privacy URL
- Before calling create_update_offer to auto-fill privacyUrl
- User asks "does this site have a privacy policy?"
RETURNS:
{
"privacy_url": "https://example.com/privacy-policy",
"source": "footer",
"link_text": "Privacy Policy",
"steps_tried": ["robots.txt + sitemap", "playwright-footer"],
"success": true
}
EXAMPLE: find_privacy_url(domain="metadata.io")Arguments
| Argument | Type | Notes | |
|---|---|---|---|
domain |
string | required | Company website URL or domain. Examples: 'metadata.io', 'www.bloomreach.com', 'https://example.com' |
Request
curl
curl -s -X POST https://mcp-server.metadata.io/mcp \
-H "Authorization: $METADATA_PAT" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"find_privacy_url","arguments":{"domain":"<domain>"}}}'
Response
Recorded with these arguments. Enum values are the first the tool's own schema
declares; ids were fetched live from a list_ call immediately before.
arguments used
{
"domain": "metadata.io"
}
Real, from the production server, in 10140 ms. Values that identify a customer or disclose money are replaced with typed placeholders; keys, types and nesting are exactly as returned.
recorded response
{
"success": true,
"domain": "[domain redacted]",
"privacy_url": "[privacy_url redacted]",
"source": "footer",
"link_text": "[link_text redacted]",
"steps_tried": [
"sitemap",
"footer-scrape",
"direct-probe",
"subdomain"
]
}
Related
Other utilities tools: