wamcp (Lilsmur/wamcp) is an MCP server listed on the M8ven Trust Index. It scores 53 out of 100, grade D. It declares 62 tools. No publisher has claimed this listing.

D
Caution
53/100

wamcp

Integrate WhatsApp with AI agents using a native MCP server that offers tools, resources, and real-time notifications through TypeScript and Docker.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

Lilsmur

Source: github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Known vulnerabilities in dependencies: 2 critical, 1 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
🔐
You'll be asked for 3 credentials: WA_CLOUD_VERIFY_TOKEN, WA_CLOUD_WEBHOOK_SECRET, WA_MCP_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes62 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

wa_reject_call

Reject an incoming voice or video call. The call ID is received via the whatsapp/call.received notification.

wa_archive_chat

Archive or unarchive a chat. Archived chats are hidden from the main chat list.

wa_pin_chat

Pin or unpin a chat. Pinned chats appear at the top of the chat list.

wa_mute_chat

Mute or unmute a chat. When muting, optionally specify muteUntil as a Unix timestamp in milliseconds.

wa_delete_chat

Delete an entire chat for this account. This cannot be undone.

wa_clear_chat

Clear all messages in a chat. The chat remains but all messages are removed.

wa_get_messages

Get recent messages from a chat. Returns messages ordered by most recent first, with sender, content, type, and timestamp.

wa_check_number_exists

Check if a phone number is registered on WhatsApp. Returns the JID if the number exists.

wa_block_contact

Block a WhatsApp contact. Blocked contacts cannot send you messages.

wa_unblock_contact

Unblock a previously blocked WhatsApp contact.

wa_get_business_profile

Fetch the business profile information for a WhatsApp Business contact.

wa_search_contact

Search contacts by name or phone number. Returns matching contacts from the local cache.

wa_create_group

Create a new WhatsApp group with a name and initial participants.

wa_group_add_participants

Add members to a WhatsApp group.

wa_group_remove_participants

Remove members from a WhatsApp group.

wa_group_promote

Promote members to group admin.

wa_group_demote

Demote group admins to regular members.

wa_group_update_subject

Change the name/subject of a WhatsApp group.

wa_group_update_description

Change the description of a WhatsApp group.

wa_group_update_settings

Change group settings (announce: only admins can send, locked: only admins can edit info).

wa_group_leave

Leave a WhatsApp group.

wa_group_get_invite_code

Get the shareable invite link for a WhatsApp group.

wa_group_revoke_invite

Revoke the current invite link for a WhatsApp group, generating a new one.

wa_group_join

Join a WhatsApp group using an invite code or link.

wa_group_toggle_ephemeral

Enable or disable disappearing messages in a group. Duration is in seconds (0 to disable).

wa_group_handle_request

Approve or reject a pending join request for a WhatsApp group.

wa_create_instance

Create a new WhatsApp instance. Specify a name and channel type (baileys for WhatsApp Web protocol, cloud for Meta Cloud API).

wa_connect_instance

Connect a WhatsApp instance. For Baileys instances, this starts the WebSocket connection and generates a QR code for authentication.

wa_disconnect_instance

Gracefully disconnect a WhatsApp instance. The session is preserved for reconnection.

wa_delete_instance

Permanently delete a WhatsApp instance and all its data including auth state, messages, contacts, and queue. This action cannot be undone.

wa_restart_instance

Disconnect and reconnect a WhatsApp instance. Useful for recovering from errors.

wa_get_qr_code

Get the QR code as a base64 image for authenticating a Baileys instance. Returns null if no QR code is available (already authenticated or not yet connecting).

wa_get_pairing_code

Get a numeric pairing code for authenticating a Baileys instance. The code is entered on the phone in WhatsApp > Linked Devices > Link with phone number.

wa_set_cloud_credentials

Configure Meta Cloud API credentials for a Cloud API instance. Required before connecting a Cloud API instance.

wa_send_text

Send a text message to a WhatsApp contact or group. Args: - instanceId: The instance to send from - to: Recipient phone number (e.g. "5511999999999") or group JID - text: Message content (max 65536 chars) - quotedMessageId (optional): Message ID to reply to Returns: { status: "queued", jobId

wa_send_image

Send an image to a WhatsApp contact or group. Image can be provided as a URL or base64-encoded data. Optional caption.

wa_send_video

Send a video to a WhatsApp contact or group. Video can be provided as a URL or base64-encoded data. Optional caption.

wa_send_audio

Send an audio file or voice note to a WhatsApp contact or group. Set ptt=true for voice note (push-to-talk).

wa_send_document

Send a document/file to a WhatsApp contact or group. Requires fileName and mimeType.

wa_send_location

Send a GPS location to a WhatsApp contact or group. Optional name and address.

wa_send_contact

Send a vCard contact to a WhatsApp contact or group.

wa_send_poll

Create and send a poll to a WhatsApp contact or group. Supports 2-12 options.

wa_send_reaction

React to a message with an emoji. Send an empty string emoji to remove a reaction.

wa_send_link_preview

Send a text message with a rich link preview. The URL is used to generate the preview.

wa_forward_message

Forward an existing message to another chat.

wa_edit_message

Edit a previously sent message. Only text messages sent by this instance can be edited.

wa_delete_message

Delete a message for everyone in the chat. Only messages sent by this instance can be deleted.

wa_pin_message

Pin or unpin a message in a chat.

wa_send_view_once

Send a view-once image or video. The media disappears after the recipient views it once.

wa_send_presence

Send a presence status (typing, recording, paused, available, unavailable) to a chat.

wa_mark_read

Mark specific messages as read in a chat.

wa_newsletter_follow

Follow a WhatsApp Channel/Newsletter. Baileys only.

wa_newsletter_unfollow

Unfollow a WhatsApp Channel/Newsletter. Baileys only.

wa_newsletter_send

Send a message to a WhatsApp Channel/Newsletter (must be admin). Baileys only.

wa_update_profile_picture

Change the profile picture for a WhatsApp instance. Image can be provided as base64-encoded data or a URL.

wa_remove_profile_picture

Remove the profile picture for a WhatsApp instance.

wa_update_profile_name

Change the display name for a WhatsApp instance (max 25 characters).

wa_update_profile_status

Change the text status/bio for a WhatsApp instance (max 139 characters).

wa_update_privacy

Update privacy settings (lastSeen, online, profilePic, status, readReceipts, groupAdd).

wa_send_text_status

Post a text status/story update visible to contacts.

wa_send_image_status

Post an image status/story update visible to contacts.

wa_send_video_status

Post a video status/story update visible to contacts.

// known CVEs in dependencies2 critical1 high1 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

critical@whiskeysockets/baileys@7.0.0-rc.9GHSA-qvv5-jq5g-4cgg

Baileys has message upsert / hist sync spoofing and app state corruption when using maliciously crafted protocolMessage payload

criticalvitest@4.0.18GHSA-5xrq-8626-4rwp

When Vitest UI server is listening, arbitrary file can be read and executed

highdrizzle-orm@0.39.3GHSA-gpj5-g38j-94v9

Drizzle ORM has SQL injection via improperly escaped SQL identifiers

lowvitest@4.0.18GHSA-82fw-gwwq-j7x9

Vitest: Path Traversal / Arbitrary File Read via @vitest/mocker Redirect Mock

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configWA_AUTO_RECONNECT
configWA_BAILEYS_RATE_LIMIT
configWA_CLOUD_RATE_LIMIT
🔐 secretWA_CLOUD_VERIFY_TOKEN
🔐 secretWA_CLOUD_WEBHOOK_SECRET
configWA_LOG_LEVEL
🔐 secretWA_MCP_API_KEY
configWA_MCP_PORT
configWA_MEDIA_CACHE_MAX_MB
configWA_MESSAGE_RETENTION_DAYS
configWA_REDIS_URL
configWA_TRANSPORT
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

62/62 tools missing one or more hints — wa_reject_call (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); wa_archive_chat (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); wa_pin_chat (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +59 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool inputs are validated

Only 0/62 tool handlers declare input schemas (0%)

Declare an inputSchema with zod/joi/yup on every tool definition.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tool test coverage

Only 0/62 tools referenced in tests (0%)

Write tests that reference each tool by name so every tool has at least one test.

Production dependencies are patched

1 critical, 1 high severity in production deps — @whiskeysockets/baileys@7.0.0-rc.9 (critical), drizzle-orm@0.39.3 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Dev dependencies

1 critical/high in dev-only deps (does not ship to users)

Upgrade dev dependencies when convenient.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/lilsmur/wamcp?variant=verified)](https://m8ven.ai/mcp/lilsmur/wamcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 28da4e83bf7cd999fbe7da799c8d4f2d8f10d58d
code hash: 191de2fce06ffdf623b8e70f0e3b3307e61d9a54c2f84d9be91e559dff44777b
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client