Website Contact & Social Extractor
Emails, phones, WhatsApp, social profiles and addresses from a website's public pages.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (3)
- HIGH
- MEDIUMin find_social_profiles
- LOWin check_url
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"website-contact-extractor": {
"url": "https://contacts.noahsarch.tech/mcp"
}
}
}Remote-Endpunkte
https://contacts.noahsarch.tech/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢extract_contacts(url, max_pages, region, follow_contact_pages, include_social, ...)
Fetch a site's homepage and up to max_pages-1 contact/about pages and return every email, phone (validated, E.164, type), WhatsApp link, social profile, postal address and organisation field found, with provenance per item. Example: url 'noahsarch.tech', max_pages 3, region 'AE'. Response: result with emails[] (email, source, role), phones[] (e164, international, region, type, source), whatsapp[], social{platform: [url, handle]}, addresses[], organization{}, pages[] (what was fetched, status) and summary{}, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. Charged per page actually fetched; failed fetches are free. URLs are not logged.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"description": "Website URL (scheme optional): 'example.com' or 'https://example.com/about'.",
"title": "Url",
"type": "string"
},
"max_pages": {
"default": 3,
"description": "Homepage plus up to (max_pages-1) contact/about pages found on it. 1 = homepage only.",
"title": "Max Pages",
"type": "integer"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO 3166-1 alpha-2 country used to interpret phone numbers written without a country code (e.g. 'AE', 'GB', 'US'). Omit if unknown.",
"title": "Region"
},
"follow_contact_pages": {
"default": true,
"description": "Also fetch the site's contact/about/impressum pages (same site only).",
"title": "Follow Contact Pages",
"type": "boolean"
},
"include_social": {
"default": true,
"description": "Include social-profile links (Facebook, Instagram, X, LinkedIn, YouTube, TikTok, Telegram, Snapchat, Pinterest, Threads, GitHub…).",
"title": "Include Social",
"type": "boolean"
},
"respect_robots": {
"default": true,
"description": "Honour the site's robots.txt (default). Set false only for sites you own.",
"title": "Respect Robots",
"type": "boolean"
}
},
"required": [
"url"
],
"title": "extract_contactsArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "extract_contactsDictOutput"
}🟢find_social_profiles(url)
Homepage only: Facebook, Instagram, X/Twitter, LinkedIn, YouTube, TikTok, Telegram, Snapchat, Pinterest, Threads, GitHub, TripAdvisor, Google Business links plus WhatsApp chat links, with handles. Share buttons are excluded. Example: url 'https://example.com'. Response: result with emails[] (email, source, role), phones[] (e164, international, region, type, source), whatsapp[], social{platform: [url, handle]}, addresses[], organization{}, pages[] (what was fetched, status) and summary{}, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. Charged per page actually fetched; failed fetches are free. URLs are not logged.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"description": "Website URL.",
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "find_social_profilesArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "find_social_profilesDictOutput"
}🟢extract_contacts_bulk(urls, max_pages, region, include_social)
One call for a lead list: each site gets homepage + contact pages (max_pages), results per site plus a summary (sites with email/phone/WhatsApp, failures). Charged per page fetched across all sites. Example: urls ['a.com','b.ae'], max_pages 2, region 'AE'. Response: result with emails[] (email, source, role), phones[] (e164, international, region, type, source), whatsapp[], social{platform: [url, handle]}, addresses[], organization{}, pages[] (what was fetched, status) and summary{}, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. Charged per page actually fetched; failed fetches are free. URLs are not logged.
Eingabe-Schema
{
"type": "object",
"properties": {
"urls": {
"description": "Up to 50 website URLs (one per company). Duplicate sites are merged.",
"items": {
"type": "string"
},
"title": "Urls",
"type": "array"
},
"max_pages": {
"default": 2,
"description": "Pages per site (homepage + contact pages).",
"title": "Max Pages",
"type": "integer"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO 3166-1 alpha-2 country used to interpret phone numbers written without a country code (e.g. 'AE', 'GB', 'US'). Omit if unknown.",
"title": "Region"
},
"include_social": {
"default": true,
"description": "",
"title": "Include Social",
"type": "boolean"
}
},
"required": [
"urls"
],
"title": "extract_contacts_bulkArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "extract_contacts_bulkDictOutput"
}🟢extract_from_html(html, base_url, region)
Same parser, no fetching: emails (incl. obfuscated 'name [at] domain [dot] com'), phones, WhatsApp, social links, addresses, schema.org organisation data, and the contact-page links present. Free. Example: html '<a href="mailto:[email protected]">'. Response: result with emails[] (email, source, role), phones[] (e164, international, region, type, source), whatsapp[], social{platform: [url, handle]}, addresses[], organization{}, pages[] (what was fetched, status) and summary{}, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. Charged per page actually fetched; failed fetches are free. URLs are not logged.
Eingabe-Schema
{
"type": "object",
"properties": {
"html": {
"description": "HTML (or plain text) you already have.",
"title": "Html",
"type": "string"
},
"base_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Page URL, used to resolve relative links and decide which links are same-site.",
"title": "Base Url"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO 3166-1 alpha-2 country used to interpret phone numbers written without a country code (e.g. 'AE', 'GB', 'US'). Omit if unknown.",
"title": "Region"
}
},
"required": [
"html"
],
"title": "extract_from_htmlArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "extract_from_htmlDictOutput"
}🟢check_url(url, respect_robots)
GET the URL (robots-respecting, public hosts only) and report status, final URL after redirects, content type, title, declared languages and whether a contact page is linked. Use before a bulk job or to clean a URL list. Example: url 'example.com'. Response: result with emails[] (email, source, role), phones[] (e164, international, region, type, source), whatsapp[], social{platform: [url, handle]}, addresses[], organization{}, pages[] (what was fetched, status) and summary{}, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. Charged per page actually fetched; failed fetches are free. URLs are not logged.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"description": "",
"title": "Url",
"type": "string"
},
"respect_robots": {
"default": true,
"description": "",
"title": "Respect Robots",
"type": "boolean"
}
},
"required": [
"url"
],
"title": "check_urlArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "check_urlDictOutput"
}Community
Nachweis