Statistics from your own WhatsApp chat analysis as numbers only, plus free WhatsApp text tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Show a synthetic WhatsApp recap without an account, upload or private conversation access. Use only for a demo or example, never to answer questions about the user's real conversation. All numbers are fictional and fixed; no relationship diagnosis. Returns a text and structured recap, without image export.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http le-confidant https://leconfidant.ai/api/mcp
Show a synthetic WhatsApp recap without an account, upload or private conversation access. Use only for a demo or example, never to answer questions about the user's real conversation. All numbers are fictional and fixed; no relationship diagnosis. Returns a text and structured recap, without image export.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use only when the user explicitly asks to disconnect or revoke this connection. Permanently revoke its current OAuth grant immediately; the revoked credential cannot be restored. Fresh explicit consent creates a new grant while the original session is eligible. Stops future reads without deleting the source session or results already in this conversation. Other connections can be revoked on the website. This tool changes access and is destructive access revocation; it does not retrieve statistics or answer period comparisons.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Convert the user's Markdown source to text ready to paste into WhatsApp. Before calling, copy the supplied source unchanged into text: do not Markdown-escape it or pre-convert it. Example: source **Meeting tomorrow** must be passed as **Meeting tomorrow**; the tool returns *Meeting tomorrow*. Preserve backslashes the user actually supplied, but never insert extra ones. After calling, display structuredContent.formattedText verbatim in a plain-text fenced code block, without escaping or reformatting it. Supports # headings, bold, italics, strikethrough, lists and links. Preserves URL destinations, literal text and fenced/inline code. Unsupported blocks remain literal; does not render HTML, summarize or translate. Inputs are processed by this server to return the result; this tool does not store or log phone numbers or text. It does not access an account or send messages.
| Argument | Type | Description |
|---|---|---|
| text* | string | The user's original Markdown source, up to 12,000 UTF-16 code units. Copy it unchanged: do not render it, pre-convert formatting, or add backslashes before Markdown punctuation. For **Meeting tomorrow**, pass exactly **Meeting tomorrow** as the decoded text value. Preserve backslashes only when present in the user's source; normal JSON string encoding must not change the decoded text. |
| locale | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 12000,
"minLength": 1,
"description": "The user's original Markdown source, up to 12,000 UTF-16 code units. Copy it unchanged: do not render it, pre-convert formatting, or add backslashes before Markdown punctuation. For **Meeting tomorrow**, pass exactly **Meeting tomorrow** as the decoded text value. Preserve backslashes only when present in the user's source; normal JSON string encoding must not change the decoded text."
},
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Create a wa.me URL with an optional prefilled message for copying or sharing. Requires a valid phone number; does not verify WhatsApp registration. Inputs are processed by this server to return the result; this tool does not store or log phone numbers or text. It does not access an account or send messages.
| Argument | Type | Description |
|---|---|---|
| phone* | string | International phone number beginning with +, or a national number with defaultCountry. |
| locale | string | |
| message | string | |
| defaultCountry | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"phone"
],
"properties": {
"phone": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "International phone number beginning with +, or a national number with defaultCountry."
},
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
},
"message": {
"type": "string",
"maxLength": 4000
},
"defaultCountry": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
},
"additionalProperties": false
}Use only to retrieve or explain WHOLE-SESSION numerical statistics from the user's explicitly authorized WhatsApp export analysis. DO NOT call for date-window, month-to-month, trend or period-comparison requests, even to check available data. For example, 'Compare September and November in my own connected WhatsApp analysis' needs NO tool call: explain that period comparison is unavailable. This tool returns only stored whole-session totals and cannot answer that request. For supported requests, returns neutral A/B labels, counts/shares, starts, reply timing/sample sizes, mean message length, definitions, limitations and expiry from the OAuth-selected session. No raw messages, names, excerpts, paid insights or new analysis. Set locale to the user's supported language.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Validate up to 100 phone numbers and return E.164 numbers and wa.me links with per-row status and duplicate positions. National numbers require defaultCountry. Never guess a country from language. Does not check WhatsApp registration or contact people. Inputs are processed by this server to return the result; this tool does not store or log phone numbers or text. It does not access an account or send messages.
| Argument | Type | Description |
|---|---|---|
| locale | string | |
| numbers* | array | |
| defaultCountry | string | Country for national numbers; never inferred from locale. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"numbers"
],
"properties": {
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
},
"numbers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 100,
"minItems": 1
},
"defaultCountry": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Country for national numbers; never inferred from locale."
}
},
"additionalProperties": false
}Rewrite the user's text in one decorative Unicode style to paste into WhatsApp. Styles: bold, italic, monospace, bubble, gothic, double (double-struck), strikethrough, upside-down. Call it once the user has picked a style from this list. These are lookalike characters, not real fonts: accented letters and digits usually stay plain, and screen readers can read the result badly. After calling, display structuredContent.styledText verbatim in a plain-text fenced code block. Inputs are processed by this server to return the result; this tool does not store or log phone numbers or text. It does not access an account or send messages.
| Argument | Type | Description |
|---|---|---|
| text* | string | The user's text, copied unchanged. |
| style* | string | The style the user chose. |
| locale | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"style"
],
"properties": {
"text": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The user's text, copied unchanged."
},
"style": {
"enum": [
"bold",
"italic",
"monospace",
"bubble",
"gothic",
"double",
"strikethrough",
"upside-down"
],
"type": "string",
"description": "The style the user chose."
},
"locale": {
"enum": [
"en",
"es",
"pt-br",
"de",
"fr",
"it"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 1, 2026.