WhatsApp OSINT MCP Server
Provides OSINT (Open Source Intelligence) tools for WhatsApp, enabling queries for account status, profile pictures, business verification, privacy settings, linked devices, and user presence information using phone numbers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WhatsApp OSINT MCP Servercheck if +1-555-123-4567 is registered on WhatsApp and get profile visibility"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Whatsapp Osint MCP Server
用于访问 Whatsapp Osint API 的 MCP 服务器。
🚀 使用 EMCP 平台快速体验
EMCP 是一个强大的 MCP 服务器管理平台,让您无需手动配置即可快速使用各种 MCP 服务器!
快速开始:
🌐 访问 EMCP 平台
📝 注册并登录账号
🎯 进入 MCP 广场,浏览所有可用的 MCP 服务器
🔍 搜索或找到本服务器(
bach-whatsapp_osint)🎉 点击 "安装 MCP" 按钮
✅ 完成!即可在您的应用中使用
EMCP 平台优势:
✨ 零配置:无需手动编辑配置文件
🎨 可视化管理:图形界面轻松管理所有 MCP 服务器
🔐 安全可靠:统一管理 API 密钥和认证信息
🚀 一键安装:MCP 广场提供丰富的服务器选择
📊 使用统计:实时查看服务调用情况
立即访问 EMCP 平台 开始您的 MCP 之旅!
Related MCP server: WSAPI WhatsApp MCP Server
简介
这是一个 MCP 服务器,用于访问 Whatsapp Osint API。
PyPI 包名:
bach-whatsapp_osint版本: 1.0.0
传输协议: stdio
安装
从 PyPI 安装:
pip install bach-whatsapp_osint从源码安装:
pip install -e .运行
方式 1: 使用 uvx(推荐,无需安装)
# 运行(uvx 会自动安装并运行)
uvx --from bach-whatsapp_osint bach_whatsapp_osint
# 或指定版本
uvx --from bach-whatsapp_osint@latest bach_whatsapp_osint方式 2: 直接运行(开发模式)
python server.py方式 3: 安装后作为命令运行
# 安装
pip install bach-whatsapp_osint
# 运行(命令名使用下划线)
bach_whatsapp_osint配置
API 认证
此 API 需要认证。请设置环境变量:
export API_KEY="your_api_key_here"环境变量
变量名 | 说明 | 必需 |
| API 密钥 | 是 |
| 不适用 | 否 |
| 不适用 | 否 |
在 Cursor 中使用
编辑 Cursor MCP 配置文件 ~/.cursor/mcp.json:
{
"mcpServers": {
"bach-whatsapp_osint": {
"command": "uvx",
"args": ["--from", "bach-whatsapp_osint", "bach_whatsapp_osint"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}在 Claude Desktop 中使用
编辑 Claude Desktop 配置文件 claude_desktop_config.json:
{
"mcpServers": {
"bach-whatsapp_osint": {
"command": "uvx",
"args": ["--from", "bach-whatsapp_osint", "bach_whatsapp_osint"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}可用工具
此服务器提供以下工具:
business_insights
This endpoint returns business status and verified name for an array of WhatsApp numbers.
端点: POST /bizos
status
Whatsapp user's status info.
端点: GET /about
参数:
phone(number) 必需: Enter phone number with country code and no special characters.
devices
Returns the number of linked devices. Max number of linked devices is 4.
端点: GET /devices
参数:
phone(number) 必需: Provide the phone number in international format without the + sign (as required by Meta/WhatsApp). Use digits only—no spaces or symbols. Example: 34911222333 (ES), 13022612667 (US), 447911123456 (UK). The result will show how many devices are linked to this WhatsApp account (up to 4).
privacy_settings
Fetch user privacy settings
端点: GET /privacy
参数:
phone(number) 必需: Provide the phone number in international format without the + sign and using digits only—no spaces or symbols. Examples: 34911222333 (ES), 13022612667 (US), 447911123456 (UK). The response returns the account’s current privacy settings. Privacy settings depend on the user configuration.
base64_encoded_profile
Fetch the base64 encoded file of a whatsapp number profile picture.
端点: GET /wspic/b64
参数:
phone(number) 必需: Enter phone number with country code, without special characters.
fetch_osint_info
This endpoint adeptly determines whether a given number is registered on WhatsApp. In the affirmative case, it provides insights into the visibility of the profile picture, and if accessible, furnishes the public URL of the image in the response.
端点: GET /wspic/dck
参数:
phone(number) 必需: The whatsapp number must be written as countrycode and number, no special characters.
技术栈
传输协议: stdio
HTTP 客户端: httpx
许可证
MIT License - 详见 LICENSE 文件。
开发
此服务器由 API-to-MCP 工具生成。
版本: 1.0.0
Available Tools
6 toolsbase64_encoded_profileB
Fetch the base64 encoded file of a whatsapp number profile picture.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Enter phone number with country code, without special characters. | 13022612667 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool fetches data, implying a read-only operation, but doesn't mention any behavioral traits such as rate limits, authentication requirements, error conditions, or what happens if the profile picture doesn't exist. This leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core functionality without any wasted words. It is front-loaded with the key action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks context on usage guidelines, behavioral details, and output format (e.g., what the base64 string represents or how to handle errors). For a tool with no annotations or output schema, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'phone' fully documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema, such as format examples beyond 'without special characters' or handling of invalid numbers. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and the resource ('base64 encoded file of a whatsapp number profile picture'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'fetch_osint_info' or 'status', which might also involve WhatsApp data retrieval, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, limitations, or comparisons with sibling tools like 'fetch_osint_info' that might offer overlapping functionality. The agent must infer usage context solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
business_insightsB
This endpoint returns business status and verified name for an array of WhatsApp numbers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns data but doesn't specify whether it's a read-only operation, requires authentication, has rate limits, or details error handling. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'business status' or 'verified name' entail, the format of the returned data, or any behavioral traits. For a tool that likely involves external data retrieval, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description mentions 'array of WhatsApp numbers,' which might imply an input, but since the schema explicitly has no properties, this doesn't add semantic value. Baseline is 4 for zero parameters, as there's nothing to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'returns business status and verified name for an array of WhatsApp numbers.' It specifies the verb ('returns'), resource ('business status and verified name'), and scope ('array of WhatsApp numbers'). However, it doesn't explicitly differentiate from sibling tools like 'status' or 'fetch_osint_info', which might provide overlapping or related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'status' or 'fetch_osint_info', nor does it specify prerequisites, exclusions, or contextual cues for usage. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devicesB
Returns the number of linked devices. Max number of linked devices is 4.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Provide the phone number in international format without the + sign (as required by Meta/WhatsApp). Use digits only—no spaces or symbols. Example: 34911222333 (ES), 13022612667 (US), 447911123456 (UK). The result will show how many devices are linked to this WhatsApp account (up to 4). | 13022612667 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds context about the maximum number of linked devices (4), which is useful beyond the input schema. However, it does not cover other behavioral aspects such as error handling, response format, or performance characteristics (e.g., rate limits), leaving gaps that lower the score to 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of only two sentences that directly convey the tool's function and a key constraint. Every sentence earns its place without redundancy or unnecessary elaboration, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is somewhat complete but has gaps. It explains what the tool returns and a constraint, but lacks details on output format, error cases, or integration with sibling tools. For a simple query tool, this is adequate but not fully comprehensive, warranting a score of 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing detailed documentation for the single parameter (phone). The description adds no additional parameter semantics beyond what the schema already explains (e.g., it does not clarify parameter interactions or usage nuances). According to the rules, with high schema coverage (>80%), the baseline is 3, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Returns the number of linked devices.' It specifies the verb ('returns') and resource ('linked devices'), making the action explicit. However, it does not distinguish this tool from its siblings (e.g., base64_encoded_profile, business_insights), which limits it to a 4 instead of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a constraint ('Max number of linked devices is 4') but does not explain when this tool is appropriate compared to sibling tools like privacy_settings or status, nor does it specify prerequisites or exclusions. This lack of contextual usage information results in a score of 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_osint_infoB
This endpoint adeptly determines whether a given number is registered on WhatsApp. In the affirmative case, it provides insights into the visibility of the profile picture, and if accessible, furnishes the public URL of the image in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | The whatsapp number must be written as countrycode and number, no special characters. | 13022612667 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the core functionality (checking WhatsApp registration and profile picture details) but lacks critical behavioral traits such as authentication requirements, rate limits, error handling, or whether it performs external API calls. For a tool that likely queries external services, this omission is significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the first sentence stating the primary purpose clearly. However, the phrasing 'adeptly determines' and 'furnishes' is slightly verbose, and the second sentence could be more streamlined. Overall, it's efficient but not perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (external verification likely), no annotations, and no output schema, the description is incomplete. It covers the basic purpose but lacks details on behavioral aspects, error responses, or output structure. While it's adequate for understanding what the tool does, it doesn't provide enough context for reliable agent invocation without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'phone' parameter well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't clarify format beyond 'countrycode and number' or explain edge cases). This meets the baseline score of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('determines', 'provides insights', 'furnishes') and resources ('whether a given number is registered on WhatsApp', 'visibility of the profile picture', 'public URL of the image'). It distinguishes itself from sibling tools by focusing specifically on WhatsApp number verification and profile picture information, which is distinct from tools like 'business_insights' or 'privacy_settings'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or compare it to sibling tools like 'base64_encoded_profile' or 'status', which might offer related functionality. The agent must infer usage from the purpose alone without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
privacy_settingsC
Fetch user privacy settings
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Provide the phone number in international format without the + sign and using digits only—no spaces or symbols. Examples: 34911222333 (ES), 13022612667 (US), 447911123456 (UK). The response returns the account’s current privacy settings. Privacy settings depend on the user configuration. | 13022612667 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose whether this requires authentication, has rate limits, returns specific data formats, or has any side effects. The description is minimal and lacks essential context for a tool that accesses potentially sensitive privacy information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core purpose and appropriately sized for a simple fetch operation with well-documented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool accessing privacy settings with no annotations and no output schema, the description is insufficient. It doesn't explain what privacy settings are returned, the format of the response, or any authentication requirements. Given the sensitivity of privacy data and lack of structured context, more descriptive guidance is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter. The description adds no additional parameter information beyond what's in the schema, maintaining the baseline score of 3 where structured data does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch user privacy settings' clearly states the action (fetch) and resource (user privacy settings), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'devices' or 'status' which might also retrieve user-related information, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for fetching privacy settings, or how it differs from sibling tools like 'status' or 'devices' that might provide related user data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusC
Whatsapp user's status info.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Enter phone number with country code and no special characters. | 34600000016 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. 'Whatsapp user's status info' implies a read operation but doesn't specify whether this requires authentication, has rate limits, returns real-time or cached data, or what format the information comes in. For a tool accessing user data with zero annotation coverage, this is inadequate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with no wasted language. However, this brevity comes at the cost of clarity - it's under-specified rather than efficiently informative. The structure is simple but lacks the front-loaded specificity that would make it more helpful to an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that presumably retrieves sensitive user information (WhatsApp status), the description is incomplete. With no annotations, no output schema, and a vague purpose statement, the agent lacks crucial context about what data is returned, privacy implications, authentication requirements, or error conditions. The description fails to compensate for the missing structured information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for its single parameter, providing clear format requirements for the phone number. The description adds no parameter-specific information beyond what's already in the schema. Since schema coverage is high, the baseline score of 3 is appropriate - the description doesn't compensate but doesn't need to given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Whatsapp user's status info' is vague and tautological - it essentially restates the tool name 'status' with minimal elaboration. It doesn't specify what action the tool performs (retrieve? update? monitor?) or what 'status info' encompasses. While it mentions WhatsApp, it doesn't clearly differentiate from sibling tools like 'privacy_settings' or 'business_insights' that might also relate to user information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or comparison with sibling tools like 'fetch_osint_info' or 'devices' that might also retrieve WhatsApp-related data. The agent must infer usage solely from the tool name and single parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
base64_encoded_profile - First observed
business_insights - First observed
devices - First observed
fetch_osint_info - First observed
privacy_settings - First observed
status
TDQS
Scored across 6 tools
Most tools have distinct purposes focused on different aspects of WhatsApp OSINT (profile picture, business info, device count, registration status, privacy settings, and status info). However, there is some potential overlap between 'base64_encoded_profile' and 'fetch_osint_info' since both provide profile picture information, which could cause minor confusion.
The naming is mixed with some tools using snake_case (e.g., 'base64_encoded_profile', 'fetch_osint_info') and others using simpler forms (e.g., 'devices', 'status'). While readable, there's inconsistency in verb usage and structure, such as 'business_insights' versus 'privacy_settings'.
With 6 tools, the count is well-scoped for an OSINT server focused on WhatsApp. Each tool appears to serve a specific function in gathering intelligence, making the set manageable and purposeful without being overwhelming or too sparse.
The tool set covers key OSINT aspects like registration verification, profile data, business insights, device info, privacy, and status. A minor gap might be the lack of tools for message or group-related intelligence, but the core surface for WhatsApp number analysis is largely complete.
Maintenance
Related MCP Connectors
Give your AI agents a real WhatsApp number to send and receive messages.
WhatsApp tools: wa.me links, QR codes, share widgets, phone validation, API rate card & limits.
WhatsApp: The WhatsApp Profile Data API lets you programmatically fetch a user’s profile picture.
Let Claude or ChatGPT search, read and send your WhatsApp messages over MCP. OAuth sign-in.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with your personal WhatsApp account, allowing them to search messages and contacts, retrieve chat history, and send messages to individuals or groups. Uses WhatsApp Web API with local data storage for privacy and security.12 npmISC
- AlicenseCqualityCmaintenanceEnables AI assistants to interact with WhatsApp through the WSAPI service, supporting comprehensive messaging, contact management, group operations, and account management functionality. Allows sending various media types, managing chats, and controlling WhatsApp sessions through natural language.10020 npm3MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with WhatsApp through the Uazapi API, allowing users to send text and media messages, manage contacts, and list conversations through natural language.-
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to send WhatsApp messages, templates, and retrieve media through the WhatsApp Cloud API. Provides webhook handling and seamless integration with Meta's WhatsApp Business platform.23-