Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Kaption WhatsApp

NPM · @KAPTIONAI/MCP-EXTENSION

Read and manage your WhatsApp conversations through the KaptionAI browser extension.

−22 this week 59 Trust /100

Last scanned (55 minutes ago)

Scores higher than 36% of npm servers

Category Communication

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security13
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: the version this server declares is not published in its registry.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: the version this server declares is not published in its registry.Unverified
Provenance & Transparency87
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Kaption-AI/mcp-extension). View diagnostics → Pass
  • License check failed: the license (BUSL-1.1) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5620 tokens (~281/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management60
  • Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 24 Oct 26 −25
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → unverified ▼ security
    • Malware scan: pass → unverified ▼ security
    • Known CVEs: pass → fail ▼ security
    • Dependency health: 0.85 → unverified ▼ functional
    • Destructive annotations: pass → 100 functional
    • Package version: 0.5.6 → 0.5.11 functional
    • Package version: 0.5.6 → 0.5.10 functional
  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 +4
    • Stability: unverified → 0.30 ▲ functional
  • 12 Oct 26 0
    • Security disclosure: unverified → pass ▲ functional
  • 11 Oct 26 0
    • Security disclosure: pass → unverified ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Oct 2026 · Analysed npm/@kaptionai/mcp-extension@0.5.11

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Kaption-AI/mcp-extension
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Kaption-AI/mcp-extension/.github/workflows/publish.yml@refs/tags/v0.5.11
Rekor log index 3431242340
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:3d8b4d1b6b34de5500f95b49fcef88816923fae72ad22d7e94090254a56c6689101a10bfeb622d0cbda6a089ba7d3fc3e443ab8c069d99c4dc532a067

Background: How many MCP packages publish verified provenance →

MCP tools · 20 exposed · ~5,620 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
call_recordings ~408

Read WhatsApp call recordings made by the Kaption extension and their transcripts, with every word timed. Each recording names its conversation (the other person, or the group for a group call), so it links to query, get_contact and get_group. Recordings of locked chats are never returned. Actions: list - Recordings, newest first (optional conversation_id, date_from, date_to, limit) get - One recording and its transcript: turns by speaker ("you" or "contact") with start/end seconds (requires id; include_words adds each word's timing) search - Recordings whose name or transcript matches the search text, with the matching lines (requires search; same filters as list) Examples: Recent calls: { action: "list", limit: 10 } Calls with one person: { action: "list", conversation_id: "5491157390064@c.us" } Read a transcript: { action: "get", id: "1790000000000-a1b2c3d4" } What was said about the budget: { action: "search", search: "budget" }

NameTypeReqDescription
actionstringyesCall recordings action to perform
conversation_idstring–Only recordings of this conversation (a contact or group ID)
date_fromstring–Only recordings started on or after this date (ISO 8601)
date_tostring–Only recordings started on or before this date (ISO 8601)
idstring–Recording ID (required for get)
include_wordsboolean–For get: include each word with its start and end in seconds (default false)
limitnumber–Max recordings to return (default 20, max 100)
searchstring–Text to find in names and transcripts (required for search)
target_sessionstring–Session ID for multi-account routing

No output schema declared.

No examples provided.

create_attachment_upload ~188

Create a one-time attachment upload slot, authorized by your connected Kaption account and owner-only MCP_LOCAL_SEND. Returns uploadUrl, attachmentRef and expiresAt. PUT the raw file bytes to uploadUrl within 15 minutes (e.g. curl -T file.pdf), then pass attachment: {ref: attachmentRef} to send_message or a local schedule create/update within one hour. The extension consumes the ref once and stores the bytes locally. No third-party URLs. Requires a connected Rust extension; target_session selects the account.

NameTypeReqDescription
mimestringyesAllowed image, document, audio or video MIME type
namestringyesFilename without paths or control characters, max 200 characters
sizeintegeryesExact file size in bytes, maximum 8 MiB
target_sessionstring–Session ID of the Kaption account that will send the attachment

No output schema declared.

No examples provided.

download_media ~129

Download media content (image, video, audio, document, sticker) from a WhatsApp message. Returns base64-encoded media data with metadata. Get message_id from query results. The message must be a media message. Examples: Download an image: { message_id: "true_123@c.us_3EB0...", conversation_id: "123@c.us" }

NameTypeReqDescription
conversation_idstringyesThe conversation ID containing the message
message_idstringyesThe message ID (from query results)
target_sessionstring–Session ID for multi-account routing

No output schema declared.

No examples provided.

export_contacts ~266

Export all WhatsApp contacts as CSV (RFC 4180) or JSON. Deduped, sorted alphabetically by display name. Default format is CSV. JSON projects the requested fields. Available fields: jid, phone, name, pushname, is_my_contact, is_business. WhatsApp "@lid" privacy identifiers (opaque, non-dialable) are always excluded — only real phone-backed contacts are returned. Examples: CSV all fields: { format: "csv" } JSON name + phone: { format: "json", fields: ["name", "phone"] } Filtered CSV: { format: "csv", query: "Argentina" } Saved contacts only: { format: "csv", is_my_contact: true }

NameTypeReqDescription
fieldsarray–Whitelist of fields to include. Defaults to all six: jid, phone, name, pushname, is_my_contact, is_business
formatstring–Output format. Default "csv"
is_my_contactboolean–If true, only contacts saved in the user address book. If false, only un-saved. Omit to include both.
querystring–Optional case-insensitive substring filter (matches name, pushname, phone, JID)

No output schema declared.

No examples provided.

get_analytics ~743

Get WhatsApp analytics data: KPIs, activity patterns, rankings, response times, call stats, labels, emojis, words, countries, and more. Supports section-based drill-down, date range filtering, chat/label/community filters, pagination, and chat/contact exports. Start with section="overview" (default) for a compact summary, then drill into specific sections. Sections: overview — High-level summary with top 5 chats (~5KB) kpis — Core + account KPIs + account overview activity — Daily/hourly/weekday/monthly + sent/received + message types rankings — Top chats/groups/DMs/senders (paginated) response_times — Avg/median/fastest/slowest + by-hour + by-chat calls — Call statistics (total/answered/missed/video/voice) labels — Labels (business) or Lists (personal) with chat counts emojis — Top emojis (paginated) words — Top words (paginated) countries — Contact country distribution silences — Longest-inactive chats channels — Newsletter/channel details + subscriber counts communities — Community details + sub-groups conversation_starters — Who starts conversations, night msgs, unanswered streaks — Current/longest streak + last active date gaps — Conversation gaps (>1 day silence periods) organization — Pinned/archived/muted/unread chat lists chat_detail — Full analytics for ONE specific chat (requires chat_id) export_chat — Export chat messages in format (requires chat_id + format) export_contacts — Export contacts in format (requires format) community_growth — Community member count history over time channel_growth — Channel subscriber count history over time Examples: Overview: {} Rankings: { section: "rankings", chat_type: "group", limit: 5 } Filter by label: { section: "act…

NameTypeReqDescription
chat_idstring–Filter to specific chat. Required for chat_detail/export_chat
chat_typestring–Filter rankings by chat type
communitystring–Filter by community name or ID
date_fromstring–Custom start date (ISO 8601) — overrides date_range
date_rangestring–Preset date range (default: "30d")
date_tostring–Custom end date (ISO 8601) — overrides date_range
formatstring–Export format (required for export_chat/export_contacts)
include_transcriptionsboolean–Include audio transcriptions in exports (default true)
labelstring–Filter by label/list name or ID
limitnumber–Max items for paginated sections (default 20, max 500)
offsetnumber–Skip N items for pagination
querystring–Search keyword — filter analytics to only messages containing this text. Shows activity patterns for conversations mentioning a topic.
sectionstring–Analytics section to retrieve
target_sessionstring–Session ID for multi-account routing

No output schema declared.

No examples provided.

get_api_info ~33

Get HTTP REST API connection info for programmatic access without MCP overhead. Returns URL, auth token, and available endpoints.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_contact ~146

Look up a single WhatsApp contact by JID or phone number. Pass either parameter — both work. If multiple raw contacts share the same phone (label dupes), the saved variant wins. Examples: By JID: { jid: "5491155550001@c.us" } By phone with +: { phone: "+5491155550001" } By phone bare: { phone: "5491155550001" }

NameTypeReqDescription
jidstring–Full WhatsApp JID (e.g. "5491155550001@c.us")
phonestring–Phone number — leading "+" and "00" are stripped during matching

No output schema declared.

No examples provided.

get_contact_groups ~75

List the WhatsApp groups a specific contact participates in. Reads from cached chat metadata — no network. Examples: Groups for contact: { jid: "5491155550001@c.us" }

NameTypeReqDescription
jidstringyesContact JID — must be the full @c.us form (phone alone not accepted here)

No output schema declared.

No examples provided.

get_group ~96

Fetch a single group with a LIVE participant list. Forces `Store.GroupMetadata.update()` against the WA backend before reading, so the result reflects current membership including recent joins/leaves. Use this when accuracy matters; use `list_groups` for browsing. Examples: Live group fetch: { jid: "120363421729019499@g.us" }

NameTypeReqDescription
jidstringyesGroup JID — must end in "@g.us"

No output schema declared.

No examples provided.

list_contacts ~228

List WhatsApp contacts from the encrypted DBR3 cache (no network). Results are deduplicated by phone number — the same person across multiple labels collapses to one row. Saved contacts sort before unsaved, then alphabetically by display name. WhatsApp "@lid" privacy identifiers (opaque, non-dialable) are always excluded — only real phone-backed contacts are returned. Examples: All contacts: {} Saved contacts only: { is_my_contact: true } Search by name: { query: "Maria" } Page 2 of 50: { limit: 50, offset: 50 }

NameTypeReqDescription
is_my_contactboolean–If true, only contacts saved in the user address book. If false, only un-saved contacts. Omit to include both.
limitnumber–Max contacts to return (default 50, max 500)
offsetnumber–Skip N contacts for pagination (default 0)
querystring–Case-insensitive substring matched against name, pushname, phone, and JID

No output schema declared.

No examples provided.

list_groups ~114

List all WhatsApp groups the user belongs to. Reads from the cache — no network. For a live snapshot of a single group, use `get_group` (it forces a fresh GroupMetadata.update). Examples: All groups: {} Search by group name: { query: "family" } Top 10: { limit: 10 }

NameTypeReqDescription
limitnumber–Max groups to return (default 50, max 500)
querystring–Case-insensitive substring match against group name

No output schema declared.

No examples provided.

manage_chat ~232

Manage chat state: archive, unarchive, mark as read/unread, pin, unpin, mute, unmute, set/clear draft. Actions: archive - Archive a conversation unarchive - Unarchive a conversation mark_read - Mark a conversation as read mark_unread - Mark a conversation as unread pin - Pin a conversation (max 3 pinned) unpin - Unpin a conversation mute - Mute notifications (use mute_duration for duration) unmute - Unmute notifications set_draft - Set a draft message in the compose box (requires text) clear_draft - Clear the draft message

NameTypeReqDescription
actionstringyesChat action to perform
conversation_idstringyesThe conversation ID
mute_durationstring–Mute duration (only for "mute" action). Default: "forever"
target_sessionstring–Session ID for multi-account routing
textstring–Draft text (required for "set_draft" action)

No output schema declared.

No examples provided.

manage_labels ~153

Manage WhatsApp Business labels. Requires a WhatsApp Business account. Actions: add - Add a label to a conversation (requires label_name/label_id + conversation_id) remove - Remove a label from a conversation (requires label_name/label_id + conversation_id) create - Create a new label (requires label_name) delete - Delete a label (requires label_name or label_id)

NameTypeReqDescription
actionstringyesLabel action to perform
conversation_id––Conversation ID or array of IDs (required for add/remove)
label_idstring–Label ID (alternative to label_name for add/remove/delete)
label_namestring–Label name (for add/remove/create/delete)

No output schema declared.

No examples provided.

manage_lists ~326

Manage personal chat lists (custom lists). These are the personal account equivalent of Business labels. Lists allow organizing chats into custom categories like "Family", "Work", etc. Not available on all accounts — check with action "list" first to see if lists are enabled. Actions: list - List all custom lists (also shows if feature is enabled) get - Get a list and its associated chats (requires id or name) create - Create a new list (requires name, optional conversation_id for initial chats) edit - Edit a list name or replace its chats (requires id or name) delete - Delete a list (requires id or name) add_chat - Add conversation(s) to a list (requires id/name + conversation_id) remove_chat - Remove conversation(s) from a list (requires id/name + conversation_id) Examples: List all: { action: "list" } Create: { action: "create", name: "Family", conversation_id: ["number@c.us"] } Add chat: { action: "add_chat", name: "Family", conversation_id: "number@c.us" }

NameTypeReqDescription
actionstringyesList action to perform
conversation_id––Chat ID or array of IDs to add/remove
idstring–List ID (for get/edit/delete/add_chat/remove_chat)
namestring–List name (for create/edit, or to resolve by name)
target_sessionstring–Session ID for multi-account routing

No output schema declared.

No examples provided.

manage_notes ~83

Manage contact notes. Requires a WhatsApp Business account with notes enabled. Actions: get - Read the note for a contact set - Write/update the note for a contact

NameTypeReqDescription
actionstringyesNote action to perform
contact_idstringyesThe contact ID
notestring–Note text (required for "set" action)

No output schema declared.

No examples provided.

manage_reminders ~306

Manage personal reminders. Reminders are stored in the cloud and trigger notifications via the Kaption extension. Actions: list - List all reminders get - Get a specific reminder by ID create - Create a new reminder (requires title + datetime) update - Update a reminder (requires id, optional title/datetime) delete - Delete a reminder (requires id) complete - Mark a reminder as completed (requires id) uncomplete - Mark a reminder as not completed (requires id) Examples: List all: { action: "list" } Create: { action: "create", title: "Follow up with client", datetime: "2026-03-07T14:00:00Z" } Complete: { action: "complete", id: "rem_abc123" }

NameTypeReqDescription
actionstringyesReminder action to perform
datetimestring–ISO 8601 datetime for the reminder (required for create, optional for update)
filterstring–Filter for list action. Default: "active" (non-completed only)
idstring–Reminder ID (required for get/update/delete/complete/uncomplete)
notification_typestring–How to notify. Default: "automatic"
target_sessionstring–Session ID for multi-account routing
titlestring–Reminder text (required for create, optional for update)

No output schema declared.

No examples provided.

manage_scheduled_messages ~958

Schedule WhatsApp messages to be sent automatically at a specific time, in one of two modes: bot (default) - sent from Kaption's WhatsApp number, not the user's own. Stored in Kaption's cloud and sent even when this computer is off. One-to-one chats only (no groups); one line, max 800 characters. local ("From this computer") - sent from the user's own WhatsApp number, as them, while this computer and WhatsApp are open. Stays on this device. Kaption keeps it within safe limits automatically (a few messages an hour and a day, minutes apart, only to chats where the other person has written, at most 3 a day to groups) and refuses what does not fit. The only mode that can send to groups (ones the user can post in and posted in within 30 days). Supports one image, document, audio or video attachment (8 MiB max), behind MCP_LOCAL_SEND and Rust core; audio captions are refused. A message whose time passes while this computer is off is missed, never sent late on its own. The local mode must first be turned on by the user in Kaption (its "From this computer" option, after reading the risks); an assistant cannot turn it on. A refused local request says why and ends with a reason code, e.g. "(reason: per-day)". Actions: list - List scheduled messages of both modes (each has "mode"); pass mode to list only one get - Get a specific scheduled message by ID create - Schedule a new message (requires message + datetime + conversation_id) update - Change the message and/or datetime (requires id) delete - Cancel/delete a scheduled message (requires id); in local mode it cancels a waiting message and removes a finished one cancel - Local mode only: cancel a waiting, missed or failed message remove - Local mode only: remove a finished message from the list send_now - Local mode only: send a missed or failed message now (still within the limits) Pass mode "local" for every action on a local message. Examples: List all: { action: "list" } Sched…

NameTypeReqDescription
actionstringyesScheduled message action to perform (cancel, remove and send_now need mode "local")
attachment––Local create/update only. One attachment; null removes it on update. Omit message for attachment-only sends
conversation_idstring–Chat to send the message to (required for create): a person, or a group with mode "local"
datetimestring–ISO 8601 datetime when the message should be sent (required for create, optional for update)
filterstring–Filter for list action. Default: "pending" (not sent yet; in local mode also missed or failed ones waiting for the user)
idstring–Scheduled message ID (required for get/update/delete/cancel/remove/send_now)
messagestring–Message text to send (required for create, optional for update). Bot: one line, max 800 characters. Local: text or caption up to 2000 characters; omit with an attachment
modestring–"bot" (default): sent from Kaption's WhatsApp number. "local": sent from the user's own WhatsApp number while this computer and WhatsApp are open, within safe limits kept automatically; needed for gr…
notification_typestring–Bot mode only. Notification type. Default: "automatic"
target_sessionstring–Session ID for multi-account routing

No output schema declared.

No examples provided.

query ~836

Query WhatsApp data: conversations, contacts, messages, transcriptions, labels, and communities. Supports listing, searching, filtering, and looking up by ID. IMPORTANT: Multiple WhatsApp accounts may be connected (e.g. personal + business). Always query entity="session" FIRST to see all connected accounts and their session IDs. Then use target_session to route queries to the correct account. Each account has different conversations, contacts, and messages. HOW TO READ MESSAGES: To get messages from a specific conversation, pass its id (e.g. "5491157390064@c.us"). This returns the conversation info WITH its messages. Use limit to control how many. Do NOT use entity="messages" for this — that is for global text search only. AUDIO TRANSCRIPTIONS: To get audio transcriptions, use entity="transcriptions" with an optional query. Or pass a conversation id to see messages (audio messages include transcription text). Examples: List sessions: { entity: "session" } List conversations: {} Target specific account: { entity: "conversations", target_session: "sess_abc123" } Read messages: { id: "5491157390064@c.us" } Read last 100 msgs: { id: "5491157390064@c.us", limit: 100 } Search globally: { query: "meeting" } Search in chat: { id: "5491157390064@c.us", query: "meeting" } Unread conversations: { unread: true } Search contacts: { query: "Alice", entity: "contacts" } List labels: { entity: "labels" } Filter by label: { label: "Important", entity: "conversations" } List communities: { entity: "communities" } Filter by community: { community: "My Community", entity: "conversations" } Find which groups a contact is in: { id: "5491157390064@c.us", entity: "contacts", include_participants: true } List members of a group: { entity: "contacts", group: "120363421729019499@g.us" }

NameTypeReqDescription
afterstring–Return messages after this ISO 8601 datetime (e.g. "2026-03-01T12:00:00.000Z") for incremental sync
beforestring–Return messages before this ISO 8601 datetime (e.g. "2026-03-01T12:00:00.000Z") for cursor-based pagination backward
communitystring–Filter conversations by community name or ID
entitystring–Entity type to query. Defaults to "conversations" when listing, or all when searching. Use "session" to list all connected WhatsApp accounts.
exclude_archivedboolean–Exclude archived conversations from listings (default true)
exclude_mutedboolean–Exclude muted conversations from listings (default false)
groupstring–Filter contacts by group ID — only return contacts that are members of this group
idstring–Look up a specific conversation, contact, or label by ID
include_participantsboolean–Include group participants in results. Useful when looking up a contact by ID to see which groups they belong to, or when querying a group to see its members.
labelstring–Filter conversations by label name or ID (Business accounts)
limitnumber–Max results (default 25, max 5000)
liststring–Filter conversations by list name or ID (Personal accounts)
querystring–Text to search for (names, messages, transcriptions)
target_sessionstring–Session ID to target a specific WhatsApp account. Get session IDs from entity="session". If omitted, routes to the most recently active account.
unreadboolean–Only return conversations with unread messages

No output schema declared.

No examples provided.

send_message ~230

Queue a WhatsApp message from this computer for the earliest permitted delivery. Requires the owner-only MCP_LOCAL_SEND flag, Rust core, and user consent in Kaption. Supports an existing person chat or eligible group (@g.us) and one image, document, audio or video attachment (8 MiB max). Message is optional with an attachment; audio cannot have captions. Returns queued plus a schedule ID, not proof of delivery. Existing ask-first prompts, 8/hour, 20/day, group limits and delays apply. An assistant cannot accept consent or confirmation. Computer and WhatsApp must remain open. Use manage_scheduled_messages with mode local to inspect or cancel the returned ID.

NameTypeReqDescription
attachment––Exactly one attachment source: dataB64, uploaded ref, or absolute local path; max 8 MiB. Requires MCP_LOCAL_SEND and local delivery
conversation_idstringyesExisting person chat ID or eligible group ID ending @g.us
messagestring–Message or attachment caption; omit for attachment-only sends
target_sessionstring–Session ID for multi-account routing

No output schema declared.

No examples provided.

summarize_conversation ~70

Get or generate a summary of a conversation

NameTypeReqDescription
conversation_idstringyesThe conversation ID
message_countnumber–Number of messages to use for summary generation (default 50, max 500)
target_sessionstring–Session ID to target a specific WhatsApp account

No output schema declared.

No examples provided.

Install

How do I install the Kaption WhatsApp MCP server?

Kaption WhatsApp runs locally as an npm package, launched with npx -y @kaptionai/mcp-extension. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @kaptionai/mcp-extension

# add to Claude Code
claude mcp add kaption-ai-mcp-extension -- npx -y @kaptionai/mcp-extension
Common questions

What is the Kaption WhatsApp MCP server?

Kaption WhatsApp is an MCP server listed in the public MCP registry as io.github.Kaption-AI/mcp-extension. Read and manage your WhatsApp conversations through the KaptionAI browser extension. This page covers its npm package (@kaptionai/mcp-extension).

Is the Kaption WhatsApp MCP server safe to use?

Kaption WhatsApp scores 59 out of 100 on VerifyMCP. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Kaption WhatsApp MCP server expose?

Kaption WhatsApp exposes 20 tools: query, summarize_conversation, manage_labels, manage_notes, download_media, and 15 more. Their descriptions and schemas cost roughly 5,620 tokens of context every time the server is loaded.

Is the Kaption WhatsApp MCP server still maintained?

Kaption WhatsApp is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Kaption WhatsApp MCP server under?

Kaption WhatsApp declares the BUSL-1.1 licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.