ProWebLook
19 tools for phone, WhatsApp, email, caller ID, IP geo, blacklist, scraping & SERP
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"proweblook": {
"url": "https://mcp.proweblook.com/mcp"
}
}
}Puntos de conexión remotos
https://mcp.proweblook.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (19)
🟢validate_phone(phone_number, country_code)
Validate a phone number and enrich it with carrier, line type (mobile/landline/voip), country, location, timezone, and national/international formatting. Costs 1 phone-validation credit per successful call. Use when you need to know whether a number is real, who operates it, or where it is registered.
Esquema de entrada
{
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "Phone number to validate. When country_code is omitted or set to none, provide the full international number including its country calling code, preferably E.164 (for example, +14155552671). A local or national number requires country_code."
},
"country_code": {
"type": "string",
"maxLength": 4,
"pattern": "^(?:[A-Za-z]{2}|none)$",
"description": "Optional ISO 3166-1 alpha-2 country hint (for example, \"US\" or \"IN\") for a local/national phone_number. This is not a numeric calling prefix such as +91. Omit it, or use the literal \"none\", only with a full international number."
}
},
"required": [
"phone_number"
],
"additionalProperties": false
}🟢caller_id_lookup(phone_number)
Reverse phone lookup: retrieve the registered caller name (CNAM) associated with a phone number. Costs 1 caller-ID credit per call. Use to identify who owns a number.
Esquema de entrada
{
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "Phone number to look up, in E.164 (+14155552671) or local format."
}
},
"required": [
"phone_number"
],
"additionalProperties": false
}🟢check_whatsapp(phone_number, country_code)
Check whether a phone number has an active WhatsApp account (without sending any message or OTP), including whether it is a WhatsApp Business account. Also returns phone enrichment (carrier, line type, country). Costs 1 WA credit per successful call. Response fields: numberstatus (true = on WhatsApp), businessnumber (true = business account).
Esquema de entrada
{
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "Phone number to check, in E.164 (+14155552671) or local format."
},
"country_code": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country hint when phone_number is in local format."
}
},
"required": [
"phone_number"
],
"additionalProperties": false
}🟡whatsapp_batch_submit(phone_numbers)
Submit up to 1,000 phone numbers for asynchronous WhatsApp validation. Deducts 1 WA credit PER NUMBER upfront (the whole batch is rejected if the balance is insufficient), so confirm quantities before submitting large batches. Returns a batch_id immediately with status "processing" — retrieve results with whatsapp_batch_status.
Esquema de entrada
{
"type": "object",
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1000,
"description": "Phone numbers to validate (duplicates are removed automatically). Max 1,000."
}
},
"required": [
"phone_numbers"
],
"additionalProperties": false
}🟢whatsapp_batch_status(batch_id)
Poll the status and results of a WhatsApp batch validation job created with whatsapp_batch_submit. Free to call. Poll every 5-10 seconds for small batches, 30-60 seconds for large ones, until status is "completed"; results are included once done.
Esquema de entrada
{
"type": "object",
"properties": {
"batch_id": {
"type": "string",
"description": "The batch_id (UUID) returned by whatsapp_batch_submit."
}
},
"required": [
"batch_id"
],
"additionalProperties": false
}🟢verify_email(email)
Verify an email address: syntax, MX records, SMTP deliverability, and disposable-address detection. Costs 1 email credit per successful check. Use to validate signup emails or clean mailing lists one address at a time.
Esquema de entrada
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email address to verify."
}
},
"required": [
"email"
],
"additionalProperties": false
}🟢check_blacklist(target, target_type, sources)
Check an IP address, domain, or URL against major global blacklists and spam databases (DNSBL/RBL sources). Returns per-source listed/clean results and an overall summary. Costs 1 blacklist credit per successful check. Use for deliverability debugging, reputation checks, and abuse triage.
Esquema de entrada
{
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "The IP address, domain, or URL to check (e.g. \"192.0.2.1\", \"example.com\", \"https://example.com/page\")."
},
"target_type": {
"type": "string",
"enum": [
"ip",
"domain",
"url",
"auto"
],
"description": "What kind of target this is. Default \"auto\" detects it for you."
},
"sources": {
"type": "string",
"description": "Optional comma-separated list of specific blacklist source identifiers to check instead of the full default set."
}
},
"required": [
"target"
],
"additionalProperties": false
}🟢check_spam_score(subject, content)
Analyze email subject and/or body text for spam trigger words and get a 0-100 spam score, a risk level (Low/Medium/High Risk), and a per-trigger breakdown. Costs 1 spam-checker credit per successful request. Use before sending marketing/transactional email to predict deliverability. At least one of subject or content must be provided.
Esquema de entrada
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"description": "The email subject line to analyze."
},
"content": {
"type": "string",
"description": "The email body text to analyze."
}
},
"additionalProperties": false
}🟢geo_ip(ip)
Look up geolocation, ISP, and organization details for an IPv4 or IPv6 address (country, region, city, coordinates, timezone, ASN). Deducts from your Geo-IP quota. Use for traffic analysis, fraud checks, or localizing users.
Esquema de entrada
{
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IPv4 or IPv6 address to look up (e.g. \"8.8.8.8\")."
}
},
"required": [
"ip"
],
"additionalProperties": false
}🟢scrape_url(url, formats, onlyMainContent, waitFor, timeout)
Scrape any web page: get clean Markdown, rendered/raw HTML, all links, SEO metadata, and/or a full-page screenshot in a single call. Costs 1 scraping credit per successful request regardless of how many formats you ask for. Screenshots use a full Chromium render (~5-15s); other formats are faster (~1-5s). Screenshots are returned as an image attachment. Use for reading article content, extracting page metadata, link discovery, or visual captures.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Full URL to scrape. Must start with http:// or https://."
},
"formats": {
"type": "array",
"items": {
"type": "string",
"enum": [
"markdown",
"html",
"rawHtml",
"links",
"metadata",
"screenshot"
]
},
"description": "Output formats to return. Default [\"markdown\", \"metadata\"]."
},
"onlyMainContent": {
"type": "boolean",
"description": "Strip navigation/footer/ads, keeping only the main article content. Default true."
},
"waitFor": {
"type": "integer",
"minimum": 0,
"maximum": 10000,
"description": "Extra milliseconds to wait after page load (for lazy-loaded content). Default 0."
},
"timeout": {
"type": "integer",
"minimum": 1000,
"maximum": 120000,
"description": "Maximum milliseconds for the entire scrape. Default 30000."
}
},
"required": [
"url"
],
"additionalProperties": false
}🟢search_social(query, platform, sort, time, maxItems, ...)
Search public posts on Reddit, X (Twitter), or LinkedIn by keyword. Returns post items (title/text, author, URL, engagement) plus meta. Costs 1 scraper credit per successful search. Use for social listening, market research, or finding discussions about a topic or brand.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search keywords."
},
"platform": {
"type": "string",
"enum": [
"reddit",
"x",
"linkedin"
],
"description": "Platform to search. Default \"reddit\"."
},
"sort": {
"type": "string",
"description": "Sort order (platform-dependent, e.g. \"new\", \"top\", \"relevance\"). Default \"new\"."
},
"time": {
"type": "string",
"description": "Time window (e.g. \"day\", \"week\", \"month\", \"all\"). Default \"week\"."
},
"maxItems": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Maximum results to return (1-50). Default 10."
},
"subreddits": {
"type": "string",
"description": "Reddit only: comma-separated subreddit names to restrict the search to (e.g. \"webdev,programming\")."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢get_social_post(url, platform)
Fetch the full content of a single public Reddit, X (Twitter), or LinkedIn post by its URL, including replies/comments where available. Costs 1 scraper credit per successful call.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The full URL of the post to fetch."
},
"platform": {
"type": "string",
"enum": [
"reddit",
"x",
"linkedin"
],
"description": "Platform the URL belongs to. Default \"reddit\"."
}
},
"required": [
"url"
],
"additionalProperties": false
}🟢get_x_comments(url, maxItems, maxComments)
Fetch comments/replies for a single X (Twitter) post URL. Costs 1 scraper credit per successful call. Use after finding a post with search_social (platform "x") to read its discussion thread.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The full URL of the X (Twitter) post."
},
"maxItems": {
"type": "integer",
"description": "Maximum top-level items to return. Default 10."
},
"maxComments": {
"type": "integer",
"description": "Maximum comments to return. Default 20."
}
},
"required": [
"url"
],
"additionalProperties": false
}🟢google_serp(query, domain, country, language, start, ...)
Run a Google search and get structured organic results (title, URL, snippet, position) as JSON. Costs 1 SERP credit per successful search. Use for rank tracking, competitor research, or finding sources on a topic. Pagination: start must be a multiple of 10 (0 = first page).
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "The search query (1-2000 characters)."
},
"domain": {
"type": "string",
"enum": [
"google.com",
"google.co.uk",
"google.in",
"google.de",
"google.fr",
"google.es",
"google.it",
"google.com.au",
"google.ca"
],
"description": "Google domain to search on. Default \"google.com\"."
},
"country": {
"type": "string",
"enum": [
"US",
"GB",
"IN",
"DE",
"FR",
"ES",
"IT",
"AU",
"CA"
],
"description": "Country to localize results for (gl)."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"fr",
"de",
"it",
"pt",
"ru",
"ja",
"ko",
"zh-CN"
],
"description": "Result language (hl). Default \"en\"."
},
"start": {
"type": "integer",
"minimum": 0,
"maximum": 990,
"multipleOf": 10,
"description": "Result offset for pagination — must be a multiple of 10. Default 0."
},
"num": {
"type": "integer",
"minimum": 10,
"maximum": 100,
"description": "Number of results to return (10-100). Default 10."
},
"device": {
"type": "string",
"enum": [
"desktop",
"mobile"
],
"description": "Device type to emulate. Default \"desktop\"."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟡run_brand_audit(brand, domain, industry, competitors, queries, ...)
Start an AI Visibility Audit: measures how visible a brand is in AI assistant answers (ChatGPT, Claude, Gemini, Perplexity) across a set of queries, with competitor benchmarking and recommendations. Costs 1 audit credit. Asynchronous — returns an audit_id immediately; audits take several minutes. Poll with get_brand_audit (detail "summary") until job_status is "completed", then fetch detail "full". Identical requests within 24h may return a cached audit.
Esquema de entrada
{
"type": "object",
"properties": {
"brand": {
"type": "string",
"description": "The brand name to audit (e.g. \"ProWebLook\")."
},
"domain": {
"type": "string",
"description": "The brand's bare domain (e.g. \"proweblook.com\" — no scheme or path)."
},
"industry": {
"type": "string",
"description": "Industry/category context (e.g. \"API SaaS\", \"running shoes\")."
},
"competitors": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Up to 5 competitor brand names to benchmark against."
},
"queries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific user queries to test. Leave empty to have relevant queries auto-generated."
},
"llms": {
"type": "array",
"items": {
"type": "string"
},
"description": "Which LLM providers to test against (see the audit docs for supported values). Leave empty for all enabled providers."
},
"sample_size": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Samples per query per LLM (1-10). Default 3."
}
},
"required": [
"brand",
"domain"
],
"additionalProperties": false
}🟢get_brand_audit(audit_id, detail)
Get the status/results of an AI Visibility Audit by audit_id. Free to call. Use detail "summary" (default) while polling — it returns progress and job_status; once job_status is "completed", call again with detail "full" for the complete report (visibility score, per-LLM coverage, competitive benchmarking, query results, recommendations).
Esquema de entrada
{
"type": "object",
"properties": {
"audit_id": {
"type": "string",
"description": "The audit_id returned by run_brand_audit."
},
"detail": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "How much detail to return. Default \"summary\"."
}
},
"required": [
"audit_id"
],
"additionalProperties": false
}🟢list_brand_audits(page, per_page)
List this account's past AI Visibility Audits (paginated, newest first). Free to call. Useful for finding an earlier audit_id instead of re-running (and re-paying for) an audit.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number. Default 1."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page (1-50)."
}
},
"additionalProperties": false
}🟢get_brand_trend(brand, domain)
Get the historical AI-visibility score trend (up to 90 data points) for a brand + domain that has been audited before. Free to call. Use to show visibility change over time.
Esquema de entrada
{
"type": "object",
"properties": {
"brand": {
"type": "string",
"description": "The brand name used in past audits."
},
"domain": {
"type": "string",
"description": "The bare domain used in past audits."
}
},
"required": [
"brand",
"domain"
],
"additionalProperties": false
}🟢get_balance(service)
Check remaining ProWebLook API credits for a service. Free (consumes no credits). Only these services are supported here: phonevalidation, wavalidation, calleridvalidation, blacklistchecker. Most other tools (scraping, spam, SERP, social, audits) return your remaining balance inside their own responses.
Esquema de entrada
{
"type": "object",
"properties": {
"service": {
"type": "string",
"enum": [
"phonevalidation",
"wavalidation",
"calleridvalidation",
"blacklistchecker"
],
"description": "Service to check the credit balance for."
}
},
"required": [
"service"
],
"additionalProperties": false
}Comunidad
Evidencia