ProWebLook
19 tools for phone, WhatsApp, email, caller ID, IP geo, blacklist, scraping & SERP
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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
}社区
证据