ProWebLook

19 tools for phone, WhatsApp, email, caller ID, IP geo, blacklist, scraping & SERP

我该使用它吗

质量与安全性

A
描述质量
99%
模式完整度
99%
命名质量
95%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,563token 数(工具定义)
~1.2 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.78%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "proweblook": {
      "url": "https://mcp.proweblook.com/mcp"
    }
  }
}

远程端点

https://mcp.proweblook.com/mcpstreamable-http

它能做什么

工具清单

工具(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.

输入模式

{
  "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.

输入模式

{
  "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).

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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).

输入模式

{
  "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.

输入模式

{
  "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).

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "phonevalidation",
        "wavalidation",
        "calleridvalidation",
        "blacklistchecker"
      ],
      "description": "Service to check the credit balance for."
    }
  },
  "required": [
    "service"
  ],
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本19 个工具